Niemodalny okien dialogowych

Okno dialogowe niemodalny powinny być okno wyskakujące menu systemowe, pasek tytułu i cienkie obramowanie; oznacza to, że szablon pole dialogowe należy określić style WS_POPUP, WS_CAPTION, WS_BORDER i WS_SYSMENU. System wykonuje nie automatycznie wyświetla okno dialogowe, chyba że szablonu określa styl WS_VISIBLE.

Aplikacja tworzy okno dialogowe niemodalny przy użyciu funkcji CreateDialog lub CreateDialogIndirect . CreateDialog wymaga nazwa lub identyfikator zasobu zawierającego szablon pole dialogowe; CreateDialogIndirect wymaga uchwyt obiektu pamięci zawierającego szablon pole dialogowe. Dwa inne funkcje, CreateDialogParam i CreateDialogIndirectParam, również utworzyć niemodalny okien dialogowych; gdy tworzony jest okno dialogowe przechodzą one określony parametr procedurze pole dialogowe.

CreateDialog i inne funkcje tworzenia zwraca uchwyt okna dialogowego. Stosowanie i procedury pole dialogowe służy to dojście do zarządzania okna dialogowego. Na przykład jeśli WS_VISIBLE nie jest określony w szablonie pole dialogowe, aplikacji można wyświetlić okno dialogowe przekazując dojście do okna do funkcji ShowWindow.

Okno dialogowe niemodalny nie wyłącza okno właściciela ani wysyła wiadomości do niego. Tworząc okno dialogowe, system czyni go aktywnego okna, ale użytkownik lub aplikacja może zmienić aktywnego okna w dowolnym momencie. Jeśli okno dialogowe stają się nieaktywne, pozostaje powyżej okna właściciela w kolejności z nawet wtedy, gdy okno właściciel jest aktywny.

Aplikacja jest odpowiedzialne za pobieranie i wysyłanie komunikaty wejściowe do okna dialogowego. Większość aplikacji używa pętli głównej wiadomości w tym celu. Pozwala użytkownikowi przejście do i zaznacz formanty za pomocą klawiatury, jednak aplikacja musi wywołać funkcję IsDialogMessage . Aby uzyskać więcej informacji o tej funkcji zobacz Okno dialogowe pole klawiatury interfejs.

Okno dialogowe niemodalny nie może zwrócić wartości do stosowania, jak jest modalne okno dialogowe, ale procedura pole dialogowe można wysyłać informacje do okna właściciela przy użyciu funkcji SendMessage.

Aplikacja musi zniszczyć wszystkie niemodalny okna dialogowe przed zakończeniem. Go zniszczyć okno dialogowe niemodalny przy użyciu funkcji DestroyWindow . W większości przypadków procedury pole dialogowe wywołuje DestroyWindow w odpowiedzi na dane wprowadzone przez użytkownika, takie jak wybierając przycisk Anuluj. Jeśli użytkownik nigdy nie zamyka okno dialogowe w ten sposób, aplikacja musi wywołać DestroyWindow.

DestroyWindow unieważnia dojście do okna dialogowego, aby wszelkie kolejne wywołania funkcji, które Użyj uchwytu zwracają wartości błędów. Aby zapobiec błędom, procedury pole dialogowe powinny powiadamiać właściciela aby oknie dialogowym zostały zniszczone. Wiele aplikacji utrzymują zmienną globalną, zawierającą dojście do okna dialogowego. Podczas procedury pole dialogowe niszczy okno dialogowe, również ustawia zmienną globalną wartość null, wskazując, że okno dialogowe nie jest już prawidłowy.

Procedury pole dialogowe nie musi wywołać funkcję EndDialog , aby zniszczyć okno dialogowe niemodalny.

Index