Procedure di gancio di tipo Esplora risorse

possibile personalizzare una finestra di dialogo stile Explorer aperte o Salva con nome , fornendo una routine di hook, un modello personalizzato o entrambi. Se si fornisce una procedura di gancio per una finestra di dialogo 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 di bambino. Questa finestra di dialogo del bambino si basa sul modello personalizzato, o su un modello predefinito se nessuno viene fornito. Per ulteriori informazioni, vedere Modelli personalizzati di tipo Esplora risorse.

Per attivare una procedura di gancio per un dialogo aperto tipo Esplora risorse o Salva con nome , utilizzare la struttura OPENFILENAME quando si crea la finestra di dialogo. Impostare il flag OFN_ENABLEHOOK e OFN_EXPLORER nel membro flag e specificare l'indirizzo di una routine di hook OFNHookProc nel membro lpfnHook . Se si fornisce una routine di hook e omettere il flag OFN_EXPLORER, necessario utilizzare una procedura di gancio OFNHookProcOldStyle ed otterrete l'interfaccia utente di vecchio stile. Per ulteriori informazioni, vedere Personalizzazione di finestre di dialogo vecchio stile.

Una routine di hook di tipo Esplora risorse riceve una variet di messaggi mentre nella finestra di dialogo aperta. Questi includono i seguenti:

Inoltre, c' un insieme di messaggi che possibile inviare a una finestra di dialogo tipo Esplora risorse per ottenere informazioni o per controllare il comportamento e l'aspetto della finestra di dialogo.

Se si fornisce una procedura di gancio per una finestra di dialogo tipo Esplora risorse, la procedura di casella di dialogo predefinita crea una finestra di dialogo bambino quando la procedura di dialogo predefinita sta elaborando il messaggio WM_INITDIALOG . La routine di hook agisce come la procedura di dialogo per la finestra di dialogo di bambino. In questo momento, la routine di hook riceve il proprio messaggio WM_INITDIALOG con il parametro lParam impostato sull'indirizzo della struttura OPENFILENAME utilizzata per inizializzare la finestra di dialogo. Dopo la finestra di dialogo bambino termina l'elaborazione di un proprio messaggio WM_INITDIALOG, la routine di finestra di dialogo predefinita si trasferisce i controlli standard, se necessario, per dare spazio ad eventuali ulteriori controlli figlio nella finestra di dialogo. La procedura di dialogo predefinita quindi invia il messaggio di notifica CDN_INITDONE la routine di hook.

La routine di hook riceve WM_NOTIFY i messaggi di notifica che indica le azioni intraprese dall'utente nella finestra di dialogo. possibile utilizzare alcuni di questi messaggi per controllare il comportamento della finestra di dialogo. Ad esempio, la routine di hook riceve il messaggio CDN_FILEOK, quando l'utente sceglie un nome di file e fa clic sul pulsante OK . In risposta a questo messaggio, la routine di hook possibile utilizzare la funzione SetWindowLong per rifiutare il nome selezionato e forzare la finestra di dialogo di rimanere aperti.

Il parametro lParam per ciascun messaggio WM_NOTIFY un puntatore a una struttura OFNOTIFY che definisce l'azione. Il membro del codice dell'intestazione per la struttura OFNOTIFY contiene uno dei seguenti codici di notifica.

CDN_FILEOK L'utente fa clic sul pulsante OK ; nella finestra di dialogo sta per chiudere.
CDN_FOLDERCHANGE L'utente ha aperto una nuova cartella o directory.
CDN_HELP L'utente fa clic sul pulsante Guida.
CDN_INITDONE Il sistema ha terminato l'inizializzazione nella finestra di dialogo e nella finestra di dialogo ha terminato l'elaborazione del messaggio WM_INITDIALOG . Inoltre, il sistema ha finito di organizzare i controlli nella finestra di dialogo comune per fare spazio per i controlli figlio nella finestra di dialogo (se presente).
CDN_SELCHANGE L'utente selezionato un nuovo file o una cartella nell'elenco di file.
CDN_SHAREVIOLATION Nella finestra di dialogo comune ha rilevato una violazione di condivisione sul file sta per essere restituiti.
CDN_TYPECHANGE L'utente ha selezionato un nuovo tipo di file dall'elenco dei tipi di file.

Questi messaggi WM_NOTIFY sostituiscono la FILEOKSTRING, LBSELCHSTRING, SHAREVISTRINGe HELPMSGSTRING registrati messaggi utilizzati da versioni precedenti delle finestre di dialogo Apri e Salva con nome . Tuttavia, la routine di hook riceve anche il messaggio sostituito dopo il messaggio WM_NOTIFY se l'elaborazione WM_NOTIFY non utilizza SetWindowLong per impostare un valore diverso da zero DWL_MSGRESULT.

Per recuperare le informazioni sullo stato della finestra di dialogo o di controllare il comportamento e l'aspetto della finestra di dialogo, la routine di hook pu inviare i seguenti messaggi di dialogo.

CDM_GETFILEPATH Recupera il percorso e il nome del file selezionato.
CDM_GETFOLDERIDLIST Recupera l'elemento identificativo elenco corrispondente alla cartella corrente che la finestra di dialogo ha aperto. Per ulteriori informazioni sugli elenchi di elementi di identificatore, vedere identificatori e identificatore elenca.
CDM_GETFOLDERPATH Recupera il percorso della cartella corrente o directory per la finestra di dialogo.
CDM_GETSPEC Recupera il nome del file (non compreso il percorso) del file attualmente selezionato nella finestra di dialogo.
CDM_HIDECONTROL Nasconde il controllo specificato.
CDM_SETCONTROLTEXT Imposta il testo nel controllo specificato.
CDM_SETDEFEXT Imposta l'estensione predefinita per il dialogo.

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

Index