OFNHookProcOldStyle hook-prosedyre er en Programdefinert eller bibliotek-definert tilbakeringingsfunksjonen som brukes med de Åpne og Lagre som vanlige dialogboksene. Funksjonen mottar meldinger eller meldinger som er ment for dialogboksen boksen prosedyre.
LPOFNHOOKPROC -typen definerer en peker til denne tilbakeringingsfunksjonen for. OFNHookProcOldStyle er en plassholder for program- eller bibliotek-definert funksjonsnavnet.
Hvis du angir OFN_EXPLORER-flagget når du oppretter en dialogboksen Åpne eller Lagre som vanlig, og du vil bruke en hook-prosedyre, må du bruke en Explorer-stil OFNHookProc hook-prosedyre.
() UINT TILBAKERINGING OFNHookProcOldStyle HWND hdlg, / / håndtere til boksen dialogvindaugetUINTuiMsg / / message identifikatorWPARAMwParam, / / message parameterenLPARAMlParam / / message parameteren);
Hvis parameteren uiMsg angir meldingen som er WM_INITDIALOG , er lParam en peker til en OPENFILENAME struktur med verdiene som er angitt når dialogboksen felles ble opprettet.
Hvis Bindingsprosedyren returnerer null, standard dialogboksen boksen fremgangsmåten, behandler meldingen.
Hvis Bindingsprosedyren returnerer en ikke-nullverdi, ignorerer standard dialogboksen boksen prosedyre meldingen.
Når du bruker GetOpenFileName eller GetSaveFileName -funksjonene til å opprette en gammel stil Åpne eller Lagre som dialogboksen, kan du gi en OFNHookProcOldStyle hook-prosedyre. Bruk OPENFILENAME -strukturen som du sendes til dialogboksen oppretting av funksjonen for å aktivere hook-prosedyre. Angi pekeren til Bindingsprosedyren i lpfnHook -medlem og angi flagget OFN_ENABLEHOOK i flaggene -medlem.
Standard dialogboksen boksen prosedyre behandler meldingen WM_INITDIALOG før den sendes til hook-prosedyre. For alle andre meldinger mottar Bindingsprosedyren meldingen først. Deretter, returverdien for Bindingsprosedyren bestemmer om standard dialogboksen fremgangsmåten, behandler meldingen eller ignorerer den.
Hvis Bindingsprosedyren behandler WM_CTLCOLORDLG meldingen, må den returnere et gyldig pensel håndtak for å male bakgrunnen i dialogboksen. Generelt, hvis Bindingsprosedyren behandler meldinger WM_CTLCOLOR *, må den returnere et gyldig pensel håndtak for å male bakgrunnen for den angitte kontrollen.
Ikke kall funksjonen EndDialog fra hook-prosedyre. I stedet, Bindingsprosedyren kan kalle funksjonen PostMessage til å legge inn en WM_COMMAND-melding med IDABORT-verdien i dialogboksen boksen prosedyren. Postering av IDABORT lukker dialogboksen og fører til at dialogboksen boksen funksjonen returnerer USANN. Hvis du trenger å vite hvorfor Bindingsprosedyren lukket dialogboksen, må du gi din egen mekanisme for kommunikasjon mellom Bindingsprosedyren og programmet.
Du kan underklasse standardkontroller av den felles dialogboksen. Men kan den felles dialogboks boksen prosedyren også underklasse kontrollene. På grunn av dette bør du underklasse kontroller når din Bindingsprosedyren behandler meldingen WM_INITDIALOG. Dette sikrer at din underklasse prosedyren mottar kontroll-spesifikke meldinger før underklasse prosedyren angitt av dialogboksen boksen prosedyre.
nbsp; Windows &NT: krever versjon 3.1 eller senere.
Windows:Krever Windows 95 eller senere.
Windows CE:Som ikke støttes.
Topptekst:Deklarert i commdlg.h.
Importere biblioteket:Brukerdefinerte.
Felles biblioteket dialogboksoversikt, felles dialogboksen fungerer, GetOpenFileName, GetSaveFileName, OFNHookProc, OPENFILENAME, WM_INITDIALOG