Condividi tramite


Funzione di callback LPPAGESETUPHOOK (commdlg.h)

Riceve messaggi o notifiche destinati alla finestra di dialogo predefinita della finestra di dialogo Imposta pagina . La routine hook PageSetupHook è una funzione di callback definita dall'applicazione o definita dalla libreria usata con la funzione PageSetupDlg .

Il tipo LPPAGESETUPHOOK definisce un puntatore a questa funzione di callback. PageSetupHook è un segnaposto per il nome della funzione definita dall'applicazione o definita dalla libreria.

Sintassi

LPPAGESETUPHOOK Lppagesetuphook;

UINT_PTR Lppagesetuphook(
  HWND unnamedParam1,
  UINT unnamedParam2,
  WPARAM unnamedParam3,
  LPARAM unnamedParam4
)
{...}

Parametri

unnamedParam1

Handle per la finestra di dialogo Imposta pagina per cui è previsto il messaggio.

unnamedParam2

Identificatore del messaggio ricevuto.

unnamedParam3

Ulteriori informazioni sul messaggio. Il significato esatto dipende dal valore del parametro unnamedParam2 .

unnamedParam4

Ulteriori informazioni sul messaggio. Il significato esatto dipende dal valore del parametro unnamedParam2 .

Se il parametro unnamedParam2 indica il messaggio WM_INITDIALOG , unnamedParam4 è un puntatore a una struttura PAGESETUPDLG contenente i valori specificati al momento della creazione della finestra di dialogo.

Valore restituito

Se la routine hook restituisce zero, la routine della finestra di dialogo predefinita elabora il messaggio.

Se la routine hook restituisce un valore diverso da zero, la procedura predefinita della finestra di dialogo ignora il messaggio.

Commenti

Quando si usa la funzione PageSetupDlg per creare una finestra di dialogo Imposta pagina, è possibile fornire una routine hook PageSetupHook per elaborare messaggi o notifiche destinati alla procedura della finestra di dialogo. Per abilitare la routine hook, utilizzare la struttura PAGESETUPDLG passata alla funzione di creazione del dialogo. Specificare il puntatore alla routine hook nel membro lpfnPageSetupHook e specificare il flag PSD_ENABLEPAGESETUPHOOK nel membro Flags .

La procedura predefinita della finestra di dialogo elabora il messaggio WM_INITDIALOG prima di passarlo alla routine hook. Per tutti gli altri messaggi, la routine hook riceve prima il messaggio. Il valore restituito della routine hook determina quindi se la routine di dialogo predefinita elabora il messaggio o la ignora.

Se la routine hook elabora il messaggio WM_CTLCOLORDLG , deve restituire un handle di pennello valido per disegnare lo sfondo della finestra di dialogo. In generale, se la routine hook elabora qualsiasi messaggio WM_CTLCOLOR* , deve restituire un handle di pennello valido per disegnare lo sfondo del controllo specificato.

Non chiamare la funzione EndDialog dalla routine hook. La routine hook può invece chiamare la funzione PostMessage per pubblicare un messaggio di WM_COMMAND con il valore IDABORT nella routine della finestra di dialogo. La pubblicazione di IDABORT chiude la finestra di dialogo e fa sì che la funzione della finestra di dialogo restituisca FALSE. Se è necessario sapere perché la procedura hook ha chiuso la finestra di dialogo, è necessario fornire il proprio meccanismo di comunicazione tra la procedura hook e l'applicazione.

È possibile sottoclasse i controlli standard di una finestra di dialogo comune. Tuttavia, la routine della finestra di dialogo può anche sottoclasse i controlli. Per questo motivo, è consigliabile eseguire controlli sottoclasse quando la routine hook elabora il messaggio WM_INITDIALOG . In questo modo, la routine della sottoclasse riceve i messaggi specifici del controllo prima della routine della sottoclasse impostata dalla routine della finestra di dialogo.

Requisiti

Requisito Valore
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)

Vedi anche

Libreria delle finestre di dialogo comuni

Informazioni concettuali

EndDialog

PAGESETUPDLG

PageSetupDlg

PostMessage

Riferimento

WM_CTLCOLORDLG

WM_INITDIALOG