DialogBoxIndirect

Makro DialogBoxIndirect tworzy modalnego okna dialogowego z szablonu pole dialogowe w pamięci. DialogBoxIndirect zwraca kontroli, aż funkcja wywołania zwrotnego określonego kończy modalnego okna dialogowego przez wywołanie funkcji EndDialog . Makro DialogBoxIndirect używa funkcji DialogBoxIndirectParam.

int DialogBoxIndirect ( Wystąpienie HINSTANCE  wystąpienie hInstance, / / dojście do instancji aplikacjiLPDLGTEMPLATElpTemplate, / / identyfikuje okna dialogowego pole szablonuHWNDhWndParent, / / dojście do okna właścicielaDLGPROClpDialogFunc / / wskaźnik, aby oknie dialogowym pole procedury);
 

Parametry

wystąpienie hInstance
Identyfikuje wystąpienie modułu, który tworzy okno dialogowe.
lpTemplate
Wskaźnik do obiektu globalnej pamięci zawierającej szablon, który DialogBoxIndirect używa do tworzenia okna dialogowego. Szablon pola dialogowe składa się z nagłówka, który opisuje okna dialogowego, a następnie przez jedną lub więcej dodatkowych bloki danych, które zawierają opisy poszczególnych formantów w oknie dialogowym. Szablon można użyć standardowego formatu lub rozszerzony format.

W szablonie standardowym okna dialogowego nagłówek jest strukturą DLGTEMPLATE następuje dodatkowe o zmiennej długości tablic. Dane dla każdego formantu składa się z konstrukcji DLGITEMTEMPLATE następuje dodatkowe o zmiennej długości tablic.

W szablonie rozszerzone okna dialogowego nagłówka używa formatu DLGTEMPLATEEX i definicje kontroli użyj formatu DLGITEMTEMPLATEEX.

hWndParent
Identyfikuje okno, w którym posiada okno dialogowe.
lpDialogFunc
Wskaźnik do procedury pole dialogowe. Aby uzyskać więcej informacji na temat procedury pole dialogowe zobacz DialogProc.

Zwraca wartości

Jeśli funkcja, wartość zwracany jest parametr nResult w wywołaniu funkcji EndDialog , który został użyty do zakończenia okno dialogowe.

Jeśli funkcja zawiedzie, wartość zwracany jest –1. Aby uzyskać rozszerzonych informacji o błędach, należy wywołać GetLastError.

Uwagi

Makro DialogBoxIndirect używa funkcji funkcji CreateWindowEx , aby utworzyć okna dialogowego. DialogBoxIndirect następnie wysyła wiadomość WM_INITDIALOG procedurze pole dialogowe. Jeśli szablon określa styl DS_SETFONT, funkcja również wysyła komunikat WM_SETFONT procedurze pole dialogowe. Funkcja wyświetla okno dialogowe (niezależnie od o czy szablonu określa styl WS_VISIBLE), wyłącza okno właściciela i uruchamia własny Pętla wiadomości do pobierania i wysyłania wiadomości w oknie dialogowym.

Gdy procedura pole dialogowe wywołuje funkcję EndDialog , DialogBoxIndirect niszczy okno dialogowe, kończy się pętla komunikatów, umożliwia okno właściciela (jeśli wcześniej włączony) i zwraca parametr nResult , określony zgodnie z procedurą pole dialogowe po wywołaniu EndDialog.

W szablonie pole standardowe okno dialogowe struktura DLGTEMPLATE i poszczególnych struktur DLGITEMTEMPLATE muszą być dostosowane do granic DWORD . Tablicy danych tworzenie, znajdujący się w strukturze DLGITEMTEMPLATE musi być również dostosowane na granicy DWORD . Wszystkie inne tablice o zmiennej długości w szablonie muszą muszą przybierać na granice programu WORD.

W szablonie pole dialogowe rozszerzone nagłówka DLGTEMPLATEEX i każdej z definicji formantu DLGITEMTEMPLATEEX muszą być dostosowane do granic DWORD . Tworzenie danych tablicy, jeżeli istnieją, znajdujący się w strukturze DLGITEMTEMPLATEEX również muszą być dostosowane do granicy DWORD . Wszystkie inne tablice o zmiennej długości w szablonie muszą być dostosowane do programu WORD granice.

Wszystkie ciągi znaków w szablonie pole dialogowe, takie jak tytuły okno dialogowe i przyciski, musi być ciągów Unicode. Aby utworzyć kod, który działa w systemie Windows i Windows NT, należy użyć funkcji MultiByteToWideChar do generowania tych ciągów Unicode.

Systemu Windows 95 lub nowszym:System może obsługiwać maksymalnie 255 formanty na okno dialogowe pole szablonu. Aby umieścić więcej niż 255 formantów w oknie dialogowym, należy utworzyć formanty obsługi wiadomości WM_INITDIALOG, zamiast wprowadzania ich w szablonie.

Systemu Windows CE: Nie wszystkie style są obsługiwane w strukturze DLGTEMPLATE w szablonie okno dialogowe określone przez parametr lpTemplate .

Skrócone informacje

nbsp; Windows &NT: wymagana wersja 3.1 lub nowsza.
Systemu Windows:Wymaga systemu Windows 95 lub nowszego.
Systemu Windows CE:Wymaga wersja 1.0 lub nowsza.
Nagłówka:Zadeklarowane w pliku winuser.h.
Importowanie biblioteki:Należy użyć user32.lib.
Unicode:Implementowane jako wersje Unicode i ANSI w systemie Windows NT.

Zobacz też

Omówienie pola dialogowego, okno dialogowe pole funkcje, funkcji CreateWindowEx, DialogBox, DialogBoxIndirectParam, DialogBoxParam, DialogProc, DLGITEMTEMPLATE, DLGITEMTEMPLATEEX, DLGTEMPLATE, DLGTEMPLATEEX, EndDialog, MultiByteToWideChar, WM_INITDIALOG, WM_SETFONT

Index