Explorer-stil Hook prosedyrer

Du kan tilpasse en Explorer-stil Åpne eller Lagre som -dialogboksen ved å tilby en hook-prosedyre, en egendefinert mal, eller begge deler. Hvis du legger en Bindingsprosedyren dialogboksen en Explorer-stil, oppretter programmet en dialogboks som er underordnet dialogboksen standard. Bindingsprosedyren fungerer som dialogboksen fremgangsmåten for dialogboksen for barn. Denne dialogboksen barn er basert på den egendefinerte malen, eller på en standardmal for Hvis ingen er angitt. Hvis du vil ha mer informasjon, se Explorer-stil egendefinert Templates.

Bruk OPENFILENAME -strukturen for å aktivere en Bindingsprosedyren for en Explorer-stil Åpne eller Lagre som -dialogboksen når du oppretter dialogboksen. Angi flagg for OFN_ENABLEHOOK og OFN_EXPLORER i flaggene -medlem og angi adressen til en OFNHookProc hook-prosedyre i lpfnHook -medlem. Hvis du gir en Bindingsprosedyren og utelater OFN_EXPLORER-flagg, må du bruke en OFNHookProcOldStyle hook-prosedyre, og du vil få gammeldagse-brukergrensesnittet. Hvis du vil ha mer informasjon, kan du se Tilpasse gammeldagse-dialogbokser.

Et Explorer-stil Bindingsprosedyren får en rekke meldinger mens dialogboksen er åpen. Disse inkluderer følgende:

I tillegg er det et sett med meldinger som er at du kan sende til en Explorer-stil-dialogboksen for å få informasjon, eller til å kontrollere virkemåten og utseendet til dialogboksen.

Hvis du legger en Bindingsprosedyren dialogboksen en Explorer-stil, oppretter standard dialogboksen boksen prosedyren en dialogboks for barn når standard dialogboksen prosedyren behandler sin WM_INITDIALOG -melding. Bindingsprosedyren fungerer som dialogboksen fremgangsmåten for dialogboksen for barn. På dette tidspunktet mottar Bindingsprosedyren sin egen WM_INITDIALOG-melding med lParam -parameteren angitt til adressen til OPENFILENAME -strukturen som brukes til å initialisere dialogboksen. Etter at dialogboksen barn fullfører behandlingen av sin egen WM_INITDIALOG-melding, flytter standard dialogboksen prosedyren standardkontroller, om nødvendig, for å gjøre plass for eventuelle ekstra kontroller i dialogboksen for barn. Standard dialogboksen fremgangsmåten sender deretter varslingsmelding CDN_INITDONE til Bindingsprosedyren.

Bindingsprosedyren mottar WM_NOTIFY varselmeldinger som angir handlinger utført av brukeren i dialogboksen. Du kan bruke noen av disse meldingene til å kontrollere virkemåten i dialogboksen. For eksempel mottar Bindingsprosedyren meldingen CDN_FILEOK når brukeren velger et filnavn og klikker på OK -knappen. Svar på denne meldingen, kan Bindingsprosedyren bruke SetWindowLong -funksjonen til å forkaste det merkede navnet og tvinge dialogboksen for å forbli åpen.

LParam -parameteren for hver WM_NOTIFY-melding er en peker til en OFNOTIFY struktur som definerer handlingen. Kode -medlem i toppteksten for OFNOTIFY -strukturen inneholder ett av følgende Meldingskoder.

CDN_FILEOK Brukeren klikket knappen OK ; dialogboksen er i ferd med å lukke.
CDN_FOLDERCHANGE Brukeren åpnet en ny mappe eller katalog.
CDN_HELP Brukeren klikket knappen Hjelp.
CDN_INITDONE Systemet har fullført initialiseringen dialogboksen vises, og dialogboksen har fullført behandling WM_INITDIALOG meldingen. Også, systemet er ferdig til å ordne kontroller i dialogboksen felles for å gjøre plass til kontrollene i dialogboksen barn (Hvis noen).
CDN_SELCHANGE Brukeren har valgt en ny fil eller mappe fra fillisten.
CDN_SHAREVIOLATION Den felles dialogboksen oppdaget et brudd på delingstillatelsen på filen ferd med å bli returnert.
CDN_TYPECHANGE Brukeren har valgt en ny filtype fra listen over filtyper.

Disse meldingene WM_NOTIFY erstatter FILEOKSTRING, LBSELCHSTRING, SHAREVISTRINGog HELPMSGSTRING registrert meldinger som er brukt i tidligere versjoner av dialogboksene Åpne og Lagre som . Imidlertid mottar Bindingsprosedyren også erstattede meldingen etter WM_NOTIFY meldingen hvis behandlingen WM_NOTIFY ikke bruker SetWindowLong til å angi en annen DWL_MSGRESULT-verdi.

Til å hente informasjon om status i dialogboksen, eller for å kontrollere virkemåten og utseendet til dialogboksen kan Bindingsprosedyren sende følgende meldinger i dialogboksen.

CDM_GETFILEPATH Henter banen og filnavnet til den valde fila.
CDM_GETFOLDERIDLIST Henter listen for element-ID svarer til den gjeldende mappen at dialogboksen har åpne. Hvis du vil ha mer informasjon om elementlister identifikator, se vare-IDer og identifikator viser.
CDM_GETFOLDERPATH Henter banen til gjeldende mappe- eller katalogikon for dialogboksen.
CDM_GETSPEC Henter filnavnet (inkludert banen ikke) av filen som er valgt i dialogboksen.
CDM_HIDECONTROL Skjuler den angitte kontrollen.
CDM_SETCONTROLTEXT Angir teksten i den angitte kontrollen.
CDM_SETDEFEXT Angir standard filtype for dialogboksen.

Index