Procedura haka PrintHookProc jest funkcją zwrotne definiowane przez aplikację lub biblioteki, który jest używany przez funkcję PrintDlg . Funkcja odbiera wiadomości lub zgłoszeń przeznaczonych do procedury pole dialogowe domyślne wspólne okno dialogowe Drukuj.
Typ LPPRINTHOOKPROC określa wskaźnik do funkcji wywołania zwrotnego. PrintHookProc jest symbolem zastępczym nazwy funkcji zdefiniowanych przez aplikację lub zdefiniowany biblioteki.
(UINT wywołania zwrotnego PrintHookProc HWND hdlg, / / dojście do okna dialogowego poleUINTuiMsg, / / wiadomości identyfikatorWPARAMwParam, / / wiadomości parametrFIKCYJNYMIfikcyjnymi / / wiadomości parametr);
Jeżeli parametr uiMsg określa komunikat WM_INITDIALOG , fikcyjnymi jest wskaźnik do struktury PRINTDLG zawierających wartości określone podczas tworzenia wspólne okno dialogowe.
Jeśli procedura haka zwraca zero, procedury pole dialogowe domyślne przetwarza wiadomość.
Jeśli procedura haka zwraca wartość różną od zera, procedury pole dialogowe domyślne ignoruje wiadomości.
Podczas korzystania z funkcji PrintDlg utworzyć wspólne okno dialogowe Drukuj , można zapewnić procedura haka PrintHookProc do przetwarzania wiadomości lub zgłoszeń przeznaczonych do procedury pole dialogowe. Aby włączyć procedura haka, użyj struktury PRINTDLG , który zostanie przekazany do funkcji Tworzenie okna dialogowego. Określ adres procedura haka członka lpfnPrintHook i określić flagi PD_ENABLEPRINTHOOK Członkowskich flagi.
Procedury pole dialogowe domyślne przetwarza wiadomość WM_INITDIALOG przed przekazaniem go do procedura haka. Dla wszystkich innych wiadomości procedura haka odbierze komunikat po raz pierwszy. Następnie wartość zwracany procedura haka określa, czy procedury okna dialogowego domyślnie przetwarza wiadomość zignoruje ją.
Jeśli procedura haka przetwarza wiadomość WM_CTLCOLORDLG , musi ona zwracać do malowania tła okna dialogowego uchwytu ważne pędzla. Ogólnie jeśli procedura haka przetwarza wiadomości WM_CTLCOLOR *, to musi zwracać obsługę pędzla prawidłowy obraz tła określonych kontroli.
Nie wywołuj funkcję EndDialog z procedura haka. Zamiast tego procedura haka może wywołać funkcję PostMessage , aby ogłosić wiadomość WM_COMMAND z wartością IDABORT procedurze pole dialogowe. Księgowanie IDABORT zamyka okno dialogowe i powoduje, że funkcja pole dialogowe zwraca FALSE. Jeśli użytkownik chce wiedzieć, dlaczego procedura haka zamknięte okno dialogowe, należy podać swój własny mechanizm komunikacji między procedura haka i aplikacji.
Możesz podklas formantów standardowych wspólne okno dialogowe. Jednakże wspólnej procedurze pole dialogowe może również podklas formantów. Z tego powodu należy podklas formantów podczas procedura haka przetwarza wiadomość WM_INITDIALOG. Gwarantuje to, że procedura podklasy odbiera wiadomości specyficzne dla kontroli przed procedury podklasy ustala procedury pole dialogowe.
nbsp; Windows &NT: wymagana wersja 3.1 lub nowsza.
Systemu Windows:Wymaga systemu Windows 95 lub nowszego.
Systemu Windows CE:Wymaga w wersji 2.0 lub nowszej.
Nagłówka:Zadeklarowane w commdlg.h.
Importowanie biblioteki:Zdefiniowane przez użytkownika.
Wspólny omówienie biblioteki okna dialogowego, wspólne funkcje pole dialogowe, EndDialog, PostMessage, PrintDlg, PRINTDLG, WM_INITDIALOG, WM_CTLCOLORDLG