[Questo è documentazione preliminare e soggetto a cambiare].
La funzione PrintDlgEx chiama il metodo HandleMessage per dare applicazione la possibilità di gestire i messaggi inviati al dialogo bambino nella parte inferiore della pagina generale della finestra delle proprietà Print . Nella finestra di dialogo bambino contiene controlli simili a quelle della finestra di dialogo stampa.
(HRESULT HandleMessage HWNDhDlg,UINTuMsg,WPARAMwParam,LPARAMlParam,LRESULT* pResult);
Se il parametro uMsg indica il messaggio WM_INITDIALOG , lParam è un puntatore a una struttura PRINTDLGEX contenente che i valori specificati quando fu creata la finestra delle proprietà.
Restituiscono S_OK se l'implementazione HandleMessage gestito il messaggio. In questo caso, la funzione PrintDlgEx non esegue alcuna gestione di messaggi predefiniti.
Restituiscono S_FALSE se volete PrintDlgEx per eseguire la sua gestione del messaggio predefinito.
Per i messaggi di notifica che passati il WM_NOTIFY messaggio, è necessario utilizzare la funzione SetWindowLong con il valore DWL_MSGRESULT per impostare un valore restituito. Quando si chiama SetWindowLong, utilizzare GetParent (hDlg) per impostare il valore DWL_MSGRESULT della pagina generale , che è padre della finestra secondaria.
La procedura di casella di dialogo predefinite per la finestra secondaria nella parte inferiore della pagina generale elabora il messaggio WM_INITDIALOG prima di passarlo al metodo HandleMessage . Per tutti gli altri i messaggi inviati alla finestra del bambino, HandleMessage riceve il messaggio in primo luogo. Poi la HandleMessage ritorno valore determina se la procedura di dialogo predefinita elabora il messaggio o ignora.
Se HandleMessage elabora il messaggio WM_CTLCOLORDLG , deve restituire un handle di pennello validi per lo sfondo della finestra di dialogo. In generale, se HandleMessage elabora qualsiasi messaggio WM_CTLCOLOR *, deve restituire un handle di pennello validi per lo sfondo del controllo specificato.
Non chiamare la funzione EndDialog dal metodo HandleMessage . Invece, HandleMessage possibile chiamare la funzione PostMessage per inviare un messaggio WM_COMMAND con il valore IDABORT per la procedura di casella di dialogo. Distacco IDABORT chiude la finestra delle proprietà Print e causa PrintDlgEx restituire PD_RESULT_CANCEL nel membro dwResultAction della struttura PRINTDLGEX . Se avete bisogno di sapere perché HandleMessage chiuso la finestra di dialogo, è necessario fornire il proprio meccanismo di comunicazione tra il metodo di HandleMessage e l'applicazione.
È possibile sottoclasse i controlli standard della finestra di dialogo bambino casella nella parte inferiore della pagina generale . Questi controlli standard sono simili a quelle che si trovano nella finestra di dialogo stampa . Tuttavia, la procedura di casella di dialogo predefinita può anche sottoclasse dei controlli. A causa di questo, si dovrebbero controlli sottoclasse quando HandleMessage elabora il messaggio WM_INITDIALOG . Questo assicura che la routine di sottoclasse riceve messaggi specifici del controllo prima della procedura di sottoclasse impostata dalla procedura di dialogo casella.
nbsp; Windows &NT: richiede una versione 5.0 o successive.
Windows:Non supportato.
Windows CE:Non supportato.
Intestazione:Dichiarata in commdlg.h.
Comune di dialogo casella libreria panoramica, IPrintDialogCallback, EndDialog, PostMessage, PrintDlgEx, PRINTDLGEX, SetWindowLong, WM_COMMAND, WM_CTLCOLORDLG, WM_INITDIALOG, WM_NOTIFY
Rimedio: Inserire il CD-ROM CD di MSDN Library.