OFNHookProc

La routine di hook OFNHookProc è una funzione di callback definito dall'applicazione o libreria definita che viene utilizzata con le finestre di dialogo comuni tipo Esplora risorse aperte e Salva con nome . La funzione riceve i messaggi di notifica inviati nella finestra di dialogo comune. La funzione anche riceve i messaggi per tutti i controlli aggiuntivi definiti specificando un modello di dialogo bambino.

Il tipo LPOFNHOOKPROC definisce un puntatore a questa funzione di richiamata. OFNHookProc è un segnaposto per il nome della funzione definito dall'applicazione o libreria definita.

Se non si specifica il flag OFN_EXPLORER quando si crea un comune finestra di dialogo Apri o Salva con nome , e si desidera che una routine di hook, è necessario utilizzare una routine di hook OFNHookProcOldStyle vecchio stile. In questo caso, nella finestra di dialogo avrà l'interfaccia utente di vecchio stile.

(UINT CALLBACK OFNHookProc HWND  hdlg, / / handle di finestra di dialogo di bambinoUINTuiMsg, / / identificatore il messaggioWPARAMwParam, / / messaggio di parametroLPARAMlParam / / messaggio di parametro);
 

Parametri

hdlg
Handle per la finestra di dialogo figlio della finestra di dialogo Apri o Salva con nome . Utilizzare la funzione GetParent per ottenere l'handle per la finestra di dialogo casella Apri o Salva con nome.
uiMsg
Identifica il messaggio viene ricevuto.
wParam
Specifica le informazioni aggiuntive sul messaggio. Il significato esatto dipende dal valore del parametro uiMsg.
lParam
Specifica le informazioni aggiuntive sul messaggio. Il significato esatto dipende dal valore del parametro uiMsg.

Se il parametro uiMsg indica che il messaggio WM_INITDIALOG , lParam è un puntatore a una struttura OPENFILENAME contenente che i valori specificati quando fu creata la finestra di dialogo.

Valori restituiti

Se la routine di hook restituisce zero, la procedura di casella di dialogo predefinita elabora il messaggio.

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

Per i messaggi di notifica CDN_SHAREVIOLATION e CDN_FILEOK , la routine di hook deve restituire un valore diverso da zero per indicare che ha utilizzato la funzione SetWindowLong per impostare un valore diverso da zero DWL_MSGRESULT.

Osservazioni

Quando si utilizzano le funzioni GetOpenFileName o GetSaveFileName per creare una casella di dialogo comune tipo Esplora risorse aperte o Salva con nome , è possibile fornire una routine di hook OFNHookProc . Per abilitare la routine di hook, utilizzare la struttura OPENFILENAME che è passato alla funzione creazione di dialogo. Specificare il puntatore per la routine di hook nel membro lpfnHook e specificare il flag OFN_ENABLEHOOK nel membro Flags.

Se si fornisce una procedura di gancio per una finestra di dialogo comune tipo Esplora risorse, il sistema crea una finestra di dialogo che è figlio della finestra di dialogo predefinita. La routine di hook agisce come la procedura di dialogo per la finestra di dialogo del bambino. Questa finestra di dialogo del bambino è basato sul modello specificato nella struttura OPENFILENAME , o è una finestra di dialogo del bambino di predefinito se non viene specificato alcun modello. Quando la procedura di dialogo predefinita sta elaborando il messaggio WM_INITDIALOG , viene creata la finestra di dialogo del bambino. Dopo la finestra di dialogo bambino elabora un proprio messaggio WM_INITDIALOG, la routine di finestra di dialogo predefinita si muove i controlli standard, se necessario, per dare spazio ad eventuali ulteriori controlli della finestra di dialogo del bambino. Il sistema quindi invia il messaggio di notifica CDN_INITDONE per la routine di hook.

La routine di hook non riceve i messaggi destinati a controlli standard della finestra di dialogo predefinita. È possibile sottoclasse controlli standard, ma questo è scoraggiato perché può rendere l'applicazione incompatibile con le versioni future della finestra di dialogo comune. Tuttavia, le finestre di dialogo comuni tipo Esplora risorse forniscono un insieme di messaggi che la routine di hook può utilizzare per monitorare e controllare la finestra di dialogo. Questi includono una serie di messaggi di notifica inviati dalla finestra di dialogo, come pure i messaggi che è possibile inviare per recuperare le informazioni dalla finestra di dialogo. Per un elenco completo di questi messaggi, vedere Procedure gancio di tipo Esplora risorse.

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

Non chiamare la funzione EndDialog la routine di hook. Invece, la routine di hook può 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 di dialogo e provoca la funzione della casella di dialogo restituire FALSE. Se avete bisogno di sapere perché la routine di hook chiuso la finestra di dialogo, è necessario fornire il proprio meccanismo di comunicazione tra la routine di hook e l'applicazione.

Descrizione

nbsp; Windows &NT: richiede 3.1 o versione successiva.
Windows:Richiede Windows 95 o versioni successive.
Windows CE:Non supportato.
Intestazione:Dichiarati in commdlg.h.
Importare librerie:Definito dall'utente.

Vedi anche

Comune di dialogo casella libreria panoramica, funzioni di Box di dialogo comuni, GetOpenFileName, GetSaveFileName, OFNHookProcOldStyle, OPENFILENAME

Rimedio: Inserire il CD-ROM CD di MSDN Library.

Index