Procedurile de cârlig Explorer-stil

Aveți posibilitatea să particularizați o casetă de dialog Explorer-stil Deschidere sau Salvare ca oferind un cârlig, un șablon particularizat, sau ambele. Dacă furnizați o procedură cârlig pentru o casetă de dialog 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 pentru caseta de dialog copil. Această casetă de dialog copil se bazează pe șablonul particularizat sau pe un ?ablon implicit dacă nu este furnizat. Pentru mai multe informații, consultați Explorer-stil particularizat șabloane.

Pentru a permite o procedură cârlig pentru o casetă de dialog Explorer-stil Deschidere sau Salvare ca , utilizați structura OPENFILENAME atunci când creați o casetă de dialog. Semnalizatoarele OFN_ENABLEHOOK și OFN_EXPLORER în membre steaguri și specificați adresa o procedură de cârlig OFNHookProc în membre lpfnHook . Dacă furnizează o procedură cârlig și omite pavilion OFN_EXPLORER, trebuie să utilizați o procedură de cârlig OFNHookProcOldStyle și tu vei a lua stil vechi-interfața cu utilizatorul. Pentru mai multe informații, consultați Personalizarea casetele de Dialog stil vechi.

O procedură de cârlig Explorer-stil primește o varietate de mesaje în timp ce este deschisă caseta de dialog. Acestea includ următoarele:

În plus, există un set de mesaje că aveți posibilitatea să trimiteți o casetă de dialog Explorer-stil pentru a obține informații sau pentru a controla comportamentul și aspectul casetei de dialog.

Dacă furnizați o procedură cârlig pentru o casetă de dialog Explorer-stil, regimul caseta de dialog implicită creează o casetă de dialog copil la regimul de dialog implicită este prelucrarea mesajul său WM_INITDIALOG . Procedura cârlig acționează ca procedura dialog pentru caseta de dialog copil. În acest moment, procedura cârlig primește propriul mesaj WM_INITDIALOG cu parametrul lParam setată la adresa din structura de OPENFILENAME folosite pentru a initializa caseta de dialog. După ce dialogul copil se termină procesarea propriul mesaj WM_INITDIALOG, procedura de dialog implicită deplasează controalele standard, dacă este necesar, pentru a face loc pentru orice controale suplimentare din caseta de dialog copil. Procedura de dialog implicită apoi trimite mesajul de notificare CDN_INITDONE procedura cârlig.

Procedura cârlig primește WM_NOTIFY mesajele de notificare indicând măsurile luate de către utilizator în caseta de dialog. Unele dintre aceste mesaje se poate utiliza pentru a controla comportamentul caseta de dialog. De exemplu, procedura cârlig prime?te mesajul CDN_FILEOK atunci când utilizatorul alege un nume de fișier și a face clic pe butonul OK . Ca răspuns la acest mesaj, procedura cârlig utilizați funcția SetWindowLong pentru a respinge numele selectat și forța rămâne deschisă caseta de dialog.

Parametrul lParam pentru fiecare mesaj de WM_NOTIFY este un indicator spre o structură OFNOTIFY care definește acțiunea. Membre de Cod în antetul pentru structura OFNOTIFY conține unul dintre următoarele coduri de notificare.

CDN_FILEOK Utilizatorul a făcut clic pe butonul OK ; caseta de dialog este pe cale să închideți.
CDN_FOLDERCHANGE Utilizatorul a deschis un nou pliant sau sincer.
CDN_HELP Utilizatorul a făcut clic pe butonul Ajutor.
CDN_INITDONE Sistemul a terminat inițializarea caseta de dialog, și caseta de dialog a terminat procesarea mesaj WM_INITDIALOG . De asemenea, sistemul a terminat organizarea de controale în caseta de dialog comune pentru a face loc pentru controalele din caseta de dialog copil (dacă există).
CDN_SELCHANGE Utilizatorul selectat un nou fișier sau un folder din lista de fișiere.
CDN_SHAREVIOLATION Caseta de dialog comune întâlnite unei violări de partajare pe fișierul să fie returnate.
CDN_TYPECHANGE Utilizatorul selectat un nou tip de fișier din lista tipuri de fișier.

Aceste mesaje WM_NOTIFY substituie FILEOKSTRING, LBSELCHSTRING, SHAREVISTRINGși HELPMSGSTRING înregistrat mesaje utilizat de versiunile anterioare din casetele de dialog Deschidere și Salvare ca . Cu toate acestea, procedura cârlig, de asemenea, primește mai vechi mesaj după mesajul WM_NOTIFY dacă prelucrarea WM_NOTIFY nu utilizați SetWindowLong pentru a seta o valoare nenul DWL_MSGRESULT.

Pentru a prelua informații despre starea de caseta de dialog sau pentru a controla comportamentul și aspectul casetei de dialog, procedura cârlig poate trimite următoarele mesaje în caseta de dialog.

CDM_GETFILEPATH Preia calea și numele de fișier al fișierului selectat.
CDM_GETFOLDERIDLIST Preia lista identificator de articol corespunzătoare în folderul curent a deschide caseta de dialog. Pentru mai multe informa?ii despre listele de identificator de articol, consultați identificatori articol și liste de identificator.
CDM_GETFOLDERPATH Preia calea folderului curent sau director pentru caseta de dialog.
CDM_GETSPEC Preia numele fișierului (incluzând nu calea) din fișierul selectat în caseta de dialog.
CDM_HIDECONTROL Ascunde controlul specificat.
CDM_SETCONTROLTEXT Setează textul din control specificată.
CDM_SETDEFEXT Setează numele fișierului extensia implicită pentru caseta de dialog.

Index