CFHookProc

En CFHookProc Bindingsprosedyren er en Programdefinert eller bibliotek-definert tilbakeringing prosedyren som brukes med funksjonen ChooseFont . Bindingsprosedyren mottar meldinger eller meldinger som er ment for standard dialogboksen boksen prosedyre av den felles dialogboksen Skrift.

LPCFHOOKPROC -typen definerer en peker til denne tilbakeringingsfunksjonen for. CFHookProc er en plassholder for navnet på programdefinert funksjonen.

() UINT TILBAKERINGING CFHookProc HWND  hdlg, / / håndtere til boksen dialogvindaugetUINTuiMsg, / / message identifikatorWPARAMwParam, / / message parameterenLPARAMlParam / / message parameteren);
 

Parametere

hdlg
Håndtere til Skrift -boksen dialogvindauget som meldingen er ment.
uiMsg
Identifiserer meldingen mottas.
wParam
Angir tilleggsinformasjon om meldingen. Den eksakte betydningen er avhengig av verdien for parameteren uiMsg.
lParam
Angir tilleggsinformasjon om meldingen. Den eksakte betydningen er avhengig av verdien for parameteren uiMsg.

Hvis parameteren uiMsg angir meldingen som er WM_INITDIALOG , er lParam en peker til en CHOOSEFONT struktur med verdiene som er angitt når dialogboksen felles ble opprettet.

Returverdier

Hvis Bindingsprosedyren returnerer null, standard dialogboksen boksen fremgangsmåten, behandler meldingen.

Hvis Bindingsprosedyren returnerer en ikke-nullverdi, ignorerer standard dialogboksen boksen prosedyre meldingen.

Merknader

Når du bruker ChooseFont -funksjonen til å opprette en Skrift -dialogboksen, kan du gi en CFHookProc hook-prosedyre for å behandle meldinger eller meldinger som er ment for dialogboksen boksen prosedyre. Bruk CHOOSEFONT -strukturen som du sendes til dialogboksen oppretting av funksjonen for å aktivere hook-prosedyre. Angi adressen til Bindingsprosedyren i lpfnHook -medlem og angi flagget CF_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.

Hurtiginformasjon

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.

Se også

Felles biblioteket dialogboksoversikt, felles dialogboksen fungerer, ChooseFont, CHOOSEFONT, EndDialog, PostMessage, WM_INITDIALOG, WM_CTLCOLORDLG

Index