OFNHookProc

Procedura OFNHookProc cârlig este o funcție de apel invers definite de aplicarea sau definite de biblioteca, care este utilizată cu Explorer-stil Deschidere și Salvare ca comune casetele de dialog. Funcția primește mesajele de notificare trimise din caseta de dialog comune. Func?ia, de asemenea, primește mesaje pentru orice controale suplimentare pe care ați definit-specificând un șablon de dialog copil.

Tip LPOFNHOOKPROC definește un indicator pentru această funcție de apel invers. OFNHookProc este un substituent pentru numele funcției definită de aplicarea sau definite de biblioteca.

Dacă nu specificați pavilion OFN_EXPLORER atunci când creați o Deschidere sau Salvare ca comune casetă de dialog, și doriți o procedură cârlig, trebuie să utilizați un stil vechi OFNHookProcOldStyle cârlig procedura. În acest caz, caseta de dialog va avea interfața cu utilizatorul de stil vechi.

(UINT OFNHookProc de apel INVERS HWND  hdlg, / / ocupa în fereastra de dialog copilUINTuiMsg, / / mesaj identificatorWPARAMwParam, / / mesaj parametruLPARAMlParam / / mesaj parametru);
 

Parametrii

hdlg
Mâner pentru caseta de dialog copil din caseta de dialog Deschidere sau Salvare ca . Utilizați funcția GetParent pentru a obține ghidajul de la fereastra de caseta de dialog Deschidere sau Salvare ca.
uiMsg
Identifică mesajul primite.
wParam
Specifică informații suplimentare despre mesajul. Sensul exact depinde de valoarea parametrului uiMsg.
lParam
Specifică informații suplimentare despre mesajul. Sensul exact depinde de valoarea parametrului uiMsg.

Dacă parametrul uiMsg indică mesajul WM_INITDIALOG , lParam este un indicator spre o structură OPENFILENAME care conțin valorile specificate când a fost creată în caseta de dialog.

Valorile întroarse

Dacă procedura cârlig returnează zero, regimul caseta de dialog implicită procesează mesajul.

Dacă procedura cârlig returnează o valoare nenul, regimul caseta de dialog implicită ignoră mesajul.

Pentru mesajele de notificare a CDN_SHAREVIOLATION și CDN_FILEOK , cârlig procedura ar trebui să întoarcă o valoare diferită de zero pentru a indica faptul că acesta a utilizat funcția SetWindowLong pentru a seta o valoare nenul DWL_MSGRESULT.

Observații

Când utilizați funcții GetOpenFileName sau GetSaveFileName pentru a crea un stil Explorer Deschidere sau Salvare ca comune casetă de dialog, ave?i posibilitatea să furniza?i o procedură de cârlig OFNHookProc . Pentru a activa regimul de cârlig, utilizarea OPENFILENAME structura care ați trecut la funcția de crearea dialog. Specificați indicatorul pentru a cârlig procedura membru lpfnHook și specificați pavilion OFN_ENABLEHOOK membru steaguri.

Dacă furnizați o procedură cârlig pentru o casetă de dialog comun de Explorer-stil, sistemul creează o casetă de dialog care este un copil din caseta de dialog implicită. Procedura cârlig acționează ca procedura dialog de dialog copil. Acest dialog copil se bazează pe șablonul specificat în structura OPENFILENAME , sau este un dialog de copil implicit dacă nu este specificat nici un șablon. Caseta de dialog copil este creat atunci când procedura de dialog implicită este prelucrare mesajul său WM_INITDIALOG . După dialog copil procedeele propriul mesaj WM_INITDIALOG, procedura de dialog implicită deplasează controalele standard, dacă este necesar, pentru a face loc pentru orice controale suplimentare din dialogul de copil. Sistemul apoi trimite mesajul de notificare CDN_INITDONE procedura cârlig.

Procedura cârlig nu primesc mesaje destinate controalele standard din caseta de dialog implicită. Puteți subclasă controalele standard, dar acest lucru este descurajat pentru că poate face aplicația incompatibile cu versiunile viitoare ale casetei de dialog comune. Cu toate acestea, dialoguri comune Explorer-stil furnizează un set de mesaje care procedura cârlig poate utiliza pentru a monitoriza ?i controla caseta de dialog. Acestea includ un set de mesajele de notificare trimise din caseta de dialog, precum și mesajele pe care aveți posibilitatea să trimiteți pentru a regăsi informații din caseta de dialog. Pentru o listă completă a acestor mesaje, consultați Explorer-stil cârlig procedurile.

Dacă procedura cârlig procesează mesajul WM_CTLCOLORDLG , aceasta trebuie să returneze un mâner de pensulă valabile pentru pictura fundal din caseta de dialog. În general, în cazul în care se prelucrează orice mesaj WM_CTLCOLOR *, aceasta trebuie să returneze un mâner de pensulă valabile pentru pictura fundal controlului specificat.

Nu apela funcția EndDialog din procedura de cârlig. În schimb, procedura cârlig puteți apela funcția PostMessage pentru a publica un mesaj WM_COMMAND cu valoarea IDABORT la procedura de caseta de dialog. IDABORT de înregistrare se închide caseta de dialog și provoacă funcția de caseta de dialog pentru a întoarce FALSE. Dacă aveți nevoie să știți ce procedura cârlig închis caseta de dialog, trebuie să furnizați propriul mecanism de comunicare între procedura cârlig și aplicația.

QuickInfo

nbsp; Windows &NT: necesită versiunea 3.1 sau mai târziu.
Windows:Necesită Windows 95 sau o versiune ulterioară.
Windows CE:Neacceptat.
Antet:A declarat în commdlg.h.
Import Biblioteca:Definite de utilizator.

A se vedea, de asemenea

Comune Dialog Box biblioteca prezentare generală, funcții comune de caseta de Dialog, GetOpenFileName, GetSaveFileName, OFNHookProcOldStyle, OPENFILENAME

Index