Udostępnij za pośrednictwem


Rozszerzone style okien

Poniżej przedstawiono rozszerzone style okien.

Przykład


virtual    BOOL    Create(HWND hWndParent, WCHAR* pwszClassName,
                            WCHAR* pwszWindowName, UINT uID, HICON hIcon,
                            DWORD dwStyle = WS_OVERLAPPEDWINDOW,
                            DWORD dwExStyle = WS_EX_APPWINDOW,
                            int x = CW_USEDEFAULT, int y = CW_USEDEFAULT,
                            int cx = CW_USEDEFAULT, int cy = CW_USEDEFAULT);

Ten kod został pobrany z przykładu w klasycznym repozytorium Windows repozytorium GitHub.

Stała/wartość Opis
WS_EX_ACCEPTFILES
0x00000010L
Okno akceptuje pliki przeciągania i upuszczania.
WS_EX_APPWINDOW
0x00040000L
Wymusza okno najwyższego poziomu na pasku zadań, gdy okno jest widoczne.
WS_EX_CLIENTEDGE
0x00000200L
Okno ma obramowanie ze zatopiętą krawędzią.
WS_EX_COMPOSITED
0x020000000L
Maluje wszystkie elementy potomne okna w kolejności malowania od dołu do góry przy użyciu podwójnego buforowania. Kolejność malowania od dołu do góry pozwala okno malejąco mieć efekty przezroczystości (alfa) i przezroczystości (color-key), ale tylko wtedy, gdy okno malejąco ma również zestaw WS_EX_TRANSPARENT bitów. Buforowanie podwójne umożliwia malowanie okna i jego malejących bez migotania. Nie można tego użyć, jeśli okno ma styl klasy CS_OWNDC, CS_CLASSDClub CS_PARENTDC.
Windows 2000: Ten styl nie jest obsługiwany.
WS_EX_CONTEXTHELP
0x00000400L
Pasek tytułu okna zawiera znak zapytania. Gdy użytkownik kliknie znak zapytania, kursor zmieni się na znak zapytania ze wskaźnikiem. Jeśli użytkownik kliknie okno podrzędne, element podrzędny otrzyma komunikat WM_HELP. Okno podrzędne powinno przekazać komunikat do procedury okna nadrzędnego, która powinna wywołać funkcję WinHelp przy użyciu polecenia HELP_WM_HELP. Aplikacja Pomoc wyświetla okno podręczne, które zwykle zawiera pomoc dla okna podrzędnego.
WS_EX_CONTEXTHELP nie można używać ze stylami WS_MAXIMIZEBOX ani WS_MINIMIZEBOX.
WS_EX_CONTROLPARENT
0x00010000L
Samo okno zawiera okna podrzędne, które powinny wziąć udział w nawigacji okna dialogowego. Jeśli ten styl zostanie określony, menedżer okna dialogowego powraca do elementów podrzędnych tego okna podczas wykonywania operacji nawigacji, takich jak obsługa TAB, strzałki lub mnemonic klawiatury.
WS_EX_DLGMODALFRAME
0x00000001L
Okno ma podwójne obramowanie; okno można opcjonalnie utworzyć przy użyciu paska tytułu, określając styl WS_CAPTION w parametrze dwStyle.
WS_EX_LAYERED
0x00080000
Okno to okno warstwowe. Nie można użyć tego stylu, jeśli okno ma styl klasy CS_OWNDC lub CS_CLASSDC.
Windows 8: Styl WS_EX_LAYERED jest obsługiwany dla okien najwyższego poziomu i okien podrzędnych. Poprzednie wersje systemu Windows obsługują WS_EX_LAYERED tylko w przypadku okien najwyższego poziomu.
WS_EX_LAYOUTRTL
0x00400000L
Jeśli język powłoki to hebrajski, arabski lub inny język, który obsługuje wyrównanie kolejności odczytu, poziome źródło okna znajduje się na prawej krawędzi. Zwiększanie wartości poziomych przechodzi do lewej strony.
WS_EX_LEFT
0x000000000L
Okno ma ogólne właściwości wyrównane do lewej. Jest to wartość domyślna.
WS_EX_LEFTSCROLLBAR
0x00004000L
Jeśli język powłoki to hebrajski, arabski lub inny język, który obsługuje wyrównanie kolejności odczytu, pionowy pasek przewijania (jeśli istnieje) znajduje się po lewej stronie obszaru klienta. W przypadku innych języków styl jest ignorowany.
WS_EX_LTRREADING
0x000000000L
Tekst okna jest wyświetlany przy użyciu właściwości kolejności odczytu od lewej do prawej. Jest to wartość domyślna.
WS_EX_MDICHILD
0x00000040L
Okno jest oknem podrzędnym MDI.
WS_EX_NOACTIVATE
0x080000000L
Okno najwyższego poziomu utworzone za pomocą tego stylu nie staje się oknem pierwszego planu po kliknięciu go przez użytkownika. System nie wprowadza tego okna na pierwszy plan, gdy użytkownik minimalizuje lub zamyka okno pierwszego planu.
Okno nie powinno być aktywowane za pośrednictwem dostępu programowego lub nawigacji za pomocą klawiatury przez dostęp do technologii, takiej jak Narrator.
Aby aktywować okno, użyj funkcji SetActiveWindow lub SetForegroundWindow.
Okno nie jest domyślnie wyświetlane na pasku zadań. Aby wymusić wyświetlenie okna na pasku zadań, użyj stylu WS_EX_APPWINDOW.
WS_EX_NOINHERITLAYOUT
0x00100000L
Okno nie przekazuje układu okna do okien podrzędnych.
WS_EX_NOPARENTNOTIFY
0x00000004L
Okno podrzędne utworzone za pomocą tego stylu nie wysyła komunikatu WM_PARENTNOTIFY do okna nadrzędnego podczas jego tworzenia lub zniszczenia.
WS_EX_NOREDIRECTIONBITMAP
0x00200000L
Okno nie jest renderowane na powierzchni przekierowania. Dotyczy to okien, które nie mają widocznej zawartości lub używają mechanizmów innych niż powierzchnie w celu udostępnienia ich wizualizacji.
WS_EX_OVERLAPPEDWINDOW
(WS_EX_WINDOWEDGE | WS_EX_CLIENTEDGE)
Okno jest nakładanym oknem.
WS_EX_PALETTEWINDOW
(WS_EX_WINDOWEDGE | WS_EX_TOOLWINDOW | WS_EX_TOPMOST)
Okno to okno palety, które jest bez moderowym oknem dialogowym, które przedstawia tablicę poleceń.
WS_EX_RIGHT
0x00001000L
Okno ma ogólne właściwości "wyrównane do prawej". Zależy to od klasy okna. Ten styl ma wpływ tylko wtedy, gdy język powłoki jest hebrajski, arabski lub inny język, który obsługuje wyrównanie kolejności czytania; w przeciwnym razie styl jest ignorowany.
Użycie stylu WS_EX_RIGHT dla kontrolek statycznych lub edycji ma taki sam efekt jak użycie odpowiednio stylu SS_RIGHT lub ES_RIGHT. Użycie tego stylu z kontrolkami przycisków ma taki sam efekt jak używanie stylów BS_RIGHT i BS_RIGHTBUTTON.
WS_EX_RIGHTSCROLLBAR
0x000000000L
Pionowy pasek przewijania (jeśli istnieje) znajduje się po prawej stronie obszaru klienta. Jest to wartość domyślna.
WS_EX_RTLREADING
0x00002000L
Jeśli język powłoki to hebrajski, arabski lub inny język, który obsługuje wyrównanie kolejności odczytu, tekst okna jest wyświetlany przy użyciu właściwości porządku odczytu od prawej do lewej. W przypadku innych języków styl jest ignorowany.
WS_EX_STATICEDGE
0x00020000L
Okno ma styl obramowania trójwymiarowego, który ma być używany dla elementów, które nie akceptują danych wejściowych użytkownika.
WS_EX_TOOLWINDOW
0x00000080L
Okno ma być używane jako przestawny pasek narzędzi. Okno narzędzia ma pasek tytułu krótszy niż normalny pasek tytułu, a tytuł okna jest rysowany przy użyciu mniejszej czcionki. Okno narzędzia nie jest wyświetlane na pasku zadań lub w oknie dialogowym wyświetlanym po naciśnięciu ALT+TAB przez użytkownika. Jeśli w oknie narzędzi znajduje się menu systemowe, jego ikona nie jest wyświetlana na pasku tytułu. Można jednak wyświetlić menu systemowe, klikając prawym przyciskiem myszy lub wpisując ALT+SPACJA.
WS_EX_TOPMOST
0x000000008L
Okno powinno zostać umieszczone nad wszystkimi oknami nienależące do góry i powinny pozostać nad nimi, nawet jeśli okno jest dezaktywowane. Aby dodać lub usunąć ten styl, użyj funkcji SetWindowPos.
WS_EX_TRANSPARENT
0x00000020L
Okno nie powinno być malowane, dopóki rodzeństwo pod oknem (utworzone przez ten sam wątek) zostało malowane. Okno wydaje się przezroczyste, ponieważ bity podstawowych okien równorzędnych zostały już malowane.
Aby uzyskać przezroczystość bez tych ograniczeń, użyj funkcji SetWindowRgn.
WS_EX_WINDOWEDGE
0x00000100L
Okno ma obramowanie z podniesioną krawędzią.

Wymagania

Wymaganie Wartość
Minimalny obsługiwany klient
Windows 2000 Professional [tylko aplikacje klasyczne]
Minimalny obsługiwany serwer
Windows 2000 Server [tylko aplikacje klasyczne]
Nagłówek
Winuser.h (uwzględnij windows.h)