IPrintDialogCallback::HandleMessage

[Acest lucru este documenta?ia preliminare și subiect pentru a schimba].

Funcția PrintDlgEx apelurile metoda HandleMessage pentru a da aplicația o oportunitate de a gestiona mesajele trimise copil caseta de dialog în partea de jos a paginii generale de Imprimare foaia de proprietăți. Caseta de dialog copil conține controale similare cu cele din caseta de dialog Imprimare.

(HRESULT HandleMessage HWNDhDlg,UINTuMsg,WPARAMwParam,LPARAMlParam,LRESULT* pResult);
 

Parametrii

hDlg
Mâner pentru caseta de dialog copil în partea de jos a paginii generale.
uMsg
Identifică mesajul primite.
wParam
Specifică informații suplimentare despre mesajul. Sensul exact depinde de valoarea parametrului uMsg.
lParam
Specifică informații suplimentare despre mesajul. Sensul exact depinde de valoarea parametrului uMsg.

Dacă parametrul uMsg indică mesajul WM_INITDIALOG , lParam este un indicator spre o structură PRINTDLGEX care conțin valorile specificate când a fost creată foaia de proprietăți.

pResult
Indicatorul pentru o variabilă care ar trebui să setați pentru a indica rezultatul să fie returnate de caseta de dialog de mesaj.

Valorile întroarse

Return S_OK dacă punerea în aplicare dumneavoastră HandleMessage manipulate mesajul. În acest caz, funcția PrintDlgEx nu efectuează orice manipulare de mesaj implicit.

Return S_FALSE dacă doriți PrintDlgEx pentru a efectua sale manipularea de mesaj implicit.

Observații

Pentru mesajele de notificare a trecut WM_NOTIFY mesaj, trebuie să utilizați funcția SetWindowLong cu valoarea DWL_MSGRESULT pentru a seta o valoare returnată. Atunci când apelați SetWindowLong, utilizați GetParent (hDlg) pentru a seta valoarea DWL_MSGRESULT a paginii generale , care este părintele fereastra copil.

Dialog implicit caseta procedura pentru fereastra copil în partea de jos a paginii generale procesează mesajul WM_INITDIALOG înainte de a trece la metoda HandleMessage . Pentru toate celelalte mesajele trimise la fereastra copil, HandleMessage primește primul mesaj. Apoi HandleMessage întoarce valoarea determină dacă procedura de dialog implicită procesează mesajul sau se ignoră.

Dacă HandleMessage procesează mesajul WM_CTLCOLORDLG , aceasta trebuie să returneze un mâner de pensulă valabile pentru pictura fundal din caseta de dialog. În general, dacă HandleMessage procesele orice mesaj WM_CTLCOLOR *, aceasta trebuie să returneze un mâner de pensulă valabile pentru pictura fundal controlului specificat.

Nu apela funcția EndDialog metoda HandleMessage . În schimb, HandleMessage puteți apela funcția PostMessage pentru a publica un mesaj WM_COMMAND cu valoarea IDABORT la procedura de caseta de dialog. Înregistrare IDABORT închide foaia de proprietăți de Imprimare și cauzele PrintDlgEx pentru a reveni PD_RESULT_CANCEL membru dwResultAction de structura PRINTDLGEX . Dacă aveți nevoie să știți ce HandleMessage închis caseta de dialog, trebuie să furnizați propriul mecanism de comunicare între metoda HandleMessage și aplicația.

Puteți subclasă controalele standard de dialog copil caseta din partea de jos a paginii generale . Aceste controale standard sunt similare cu cele găsite în caseta de dialog Imprimare . Cu toate acestea, regimul caseta de dialog implicită poate, de asemenea, subclasă controalele. Din acest motiv, ar trebui să subclasă controale atunci când HandleMessage procese WM_INITDIALOG mesajul. Acest lucru asigură că vă procedura subclasă primește mesaje de control specifice înainte de procedura subclasă prin procedura de caseta de dialog.

QuickInfo

nbsp; Windows &NT: necesită versiunea 5.0 sau o versiune ulterioară.
Windows:Neacceptat.
Windows CE:Neacceptat.
Antet:A declarat în commdlg.h.

A se vedea, de asemenea

Comune Dialog casetă de prezentare biblioteca, IPrintDialogCallback, EndDialog, PostMessage, PrintDlgEx, PRINTDLGEX, SetWindowLong, WM_COMMAND, WM_CTLCOLORDLG, WM_INITDIALOG, WM_NOTIFY

Index