Metodo IPrintDialogCallback::HandleMessage (commdlg.h)
Chiamato da PrintDlgEx per consentire all'applicazione di gestire i messaggi inviati alla finestra di dialogo figlio nella parte inferiore della pagina Generale della finestra delle proprietà di stampa. La finestra di dialogo figlio contiene controlli simili a quelli della finestra di dialogo Stampa .
Sintassi
HRESULT HandleMessage(
HWND hDlg,
UINT uMsg,
WPARAM wParam,
LPARAM lParam,
LRESULT *pResult
);
Parametri
hDlg
Tipo: HWND
Handle per la finestra di dialogo figlio nella parte inferiore della pagina Generale .
uMsg
Tipo: UINT
Identificatore del messaggio ricevuto.
wParam
Tipo: WPARAM
Ulteriori informazioni sul messaggio. Il significato esatto dipende dal valore del parametro uMsg .
lParam
Tipo: LPARAM
Ulteriori informazioni sul messaggio. Il significato esatto dipende dal valore del parametro uMsg .
Se il parametro uMsg indica il messaggio WM_INITDIALOG , lParam è un puntatore a una struttura PRINTDLGEX contenente i valori specificati al momento della creazione della finestra delle proprietà.
pResult
Tipo: LRESULT*
Indica il risultato da restituire dalla procedura della finestra di dialogo per il messaggio. Il valore a cui punta deve essere TRUE se si elabora il messaggio; in caso contrario, deve essere FALSE o qualsiasi valore appropriato in base al tipo di messaggio.
Valore restituito
Tipo: HRESULT
Restituisce S_OK se l'implementazione IPrintDialogCallback::HandleMessage ha gestito il messaggio. In questo caso, la funzione PrintDlgEx non esegue alcuna gestione predefinita dei messaggi.
Restituisce S_FALSE se si desidera che PrintDlgEx esegua la gestione predefinita dei messaggi.
Commenti
Per i messaggi di notifica passati dal messaggio WM_NOTIFY , è necessario usare la funzione SetWindowLong con il valore DWL_MSGRESULT per impostare un valore restituito. Quando chiami SetWindowLong, usa GetParent(hDlg) per impostare il valore DWL_MSGRESULT della pagina Generale , che è l'elemento padre della finestra figlio.
La procedura predefinita della finestra di dialogo per la finestra figlio nella parte inferiore della pagina Generale elabora il messaggio WM_INITDIALOG prima di passarlo al metodo HandleMessage . Per tutti gli altri messaggi inviati alla finestra figlio, HandleMessage riceve prima il messaggio. Il valore restituito HandleMessage determina quindi se la routine della finestra di dialogo predefinita elabora il messaggio o la ignora.
Se HandleMessage elabora il messaggio WM_CTLCOLORDLG , deve restituire un handle di pennello valido per disegnare lo sfondo della finestra di dialogo. In generale, se HandleMessage elabora un messaggio WM_CTLCOLOR* , deve restituire un handle di pennello valido per disegnare lo sfondo del controllo specificato.
Non chiamare la funzione EndDialog dal metodo HandleMessage . HandleMessage può invece chiamare la funzione PostMessage per pubblicare un messaggio WM_COMMAND con il valore IDABORT alla routine della finestra di dialogo. L'inserimento di IDABORT chiude la finestra delle proprietà di stampa e fa sì che PrintDlgEx restituisca PD_RESULT_CANCEL nel membro dwResultAction della struttura PRINTDLGEX . Se è necessario sapere perché HandleMessage ha chiuso la finestra di dialogo, è necessario fornire il proprio meccanismo di comunicazione tra il metodo HandleMessage e l'applicazione.
È possibile sottoclassare i controlli standard della finestra di dialogo figlio nella parte inferiore della pagina Generale . Questi controlli standard sono simili a quelli disponibili nella finestra di dialogo Stampa . Tuttavia, la routine della finestra di dialogo predefinita può anche sottoclasse i controlli. Per questo motivo, è consigliabile sottoclasse i controlli quando HandleMessage elabora il messaggio WM_INITDIALOG . In questo modo, la routine della sottoclasse riceve messaggi specifici del controllo prima della routine della sottoclasse impostata dalla routine della finestra di dialogo.
Requisiti
Client minimo supportato | Windows 2000 Professional [solo app desktop] |
Server minimo supportato | Windows 2000 Server [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | commdlg.h (include Windows.h) |
DLL | Comdlg32.dll |
Vedi anche
Libreria delle finestre di dialogo comuni
Informazioni concettuali
Altre risorse
Riferimento