LPCFHOOKPROC-Rückruffunktion (commdlg.h)
Empfängt Nachrichten oder Benachrichtigungen, die für die Standarddialogfeldprozedur des Dialogfelds Schriftart vorgesehen sind. Dies ist eine anwendungsdefinierte oder bibliotheksdefinierte Rückrufprozedur, die mit der ChooseFont-Funktion verwendet wird.
Der LPCFHOOKPROC-Typ definiert einen Zeiger auf diese Rückruffunktion. CFHookProc ist ein Platzhalter für den anwendungsdefinierte Funktionsnamen.
Syntax
LPCFHOOKPROC Lpcfhookproc;
UINT_PTR Lpcfhookproc(
HWND unnamedParam1,
UINT unnamedParam2,
WPARAM unnamedParam3,
LPARAM unnamedParam4
)
{...}
Parameter
unnamedParam1
Ein Handle für das Dialogfeld Schriftart , für das die Nachricht vorgesehen ist.
unnamedParam2
Der Bezeichner der empfangenen Nachricht.
unnamedParam3
Zusätzliche Informationen zur Meldung. Die genaue Bedeutung hängt vom Wert des unnamedParam2-Parameters ab.
unnamedParam4
Zusätzliche Informationen zur Meldung. Die genaue Bedeutung hängt vom Wert des unnamedParam2-Parameters ab. Wenn der unnamedParam2-Parameter die WM_INITDIALOG Meldung angibt, ist unnamedParam4 ein Zeiger auf eine CHOOSEFONT-Struktur , die die Werte enthält, die beim Erstellen des Dialogfelds angegeben wurden.
Rückgabewert
Wenn die Hookprozedur null zurückgibt, verarbeitet die Standarddialogfeldprozedur die Nachricht.
Wenn die Hookprozedur einen Wert ungleich null zurückgibt, ignoriert die Standarddialogfeldprozedur die Meldung.
Hinweise
Wenn Sie die ChooseFont-Funktion verwenden, um ein Dialogfeld Schriftart zu erstellen, können Sie eine CFHookProc-Hookprozedur zum Verarbeiten von Nachrichten oder Benachrichtigungen bereitstellen, die für die Dialogfeldprozedur vorgesehen sind. Verwenden Sie zum Aktivieren der Hookprozedur die CHOOSEFONT-Struktur , die Sie an die Dialogerstellungsfunktion übergeben haben. Geben Sie die Adresse der Hookprozedur im lpfnHook-Member an, und geben Sie das flag CF_ENABLEHOOK im Flags-Element an.
Die Standarddialogfeldprozedur verarbeitet die WM_INITDIALOG Meldung, bevor sie an die Hookprozedur übergeben wird. Bei allen anderen Nachrichten empfängt die Hookprozedur zuerst die Nachricht. Der Rückgabewert der Hookprozedur bestimmt, ob die Standarddialogfeldprozedur die Nachricht verarbeitet oder ignoriert.
Wenn die Hookprozedur die WM_CTLCOLORDLG Nachricht verarbeitet, muss ein gültiger Pinselhandle zurückgegeben werden, um den Hintergrund des Dialogfelds zu zeichnen. Wenn die Hookprozedur eine WM_CTLCOLOR*- Nachricht verarbeitet, muss sie im Allgemeinen einen gültigen Pinselziehpunkt zurückgeben, um den Hintergrund des angegebenen Steuerelements zu zeichnen.
Rufen Sie die EndDialog-Funktion nicht aus der Hookprozedur auf. Stattdessen kann die Hookprozedur die PostMessage-Funktion aufrufen, um eine WM_COMMAND Nachricht mit dem IDABORT-Wert in der Dialogfeldprozedur zu posten. Die Veröffentlichung von IDABORT schließt das Dialogfeld und bewirkt, dass die Dialogfeldfunktion FALSE zurückgibt. Wenn Sie wissen müssen, warum die Hookprozedur das Dialogfeld geschlossen hat, müssen Sie Einen eigenen Kommunikationsmechanismus zwischen der Hookprozedur und Ihrer Anwendung bereitstellen.
Sie können die Standardsteuerelemente eines allgemeinen Dialogfelds unterklassen. Die Dialogfeldprozedur kann die Steuerelemente jedoch auch unterklassieren. Aus diesem Hintergrund sollten Sie Unterklassensteuerelemente steuern, wenn Ihre Hookprozedur die WM_INITDIALOG Nachricht verarbeitet. Dadurch wird sichergestellt, dass Ihre Unterklassenprozedur die steuerelementspezifischen Nachrichten vor der durch die Dialogfeldprozedur festgelegten Unterklassenprozedur empfängt.
Anforderungen
Unterstützte Mindestversion (Client) | Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | commdlg.h (windows.h einschließen) |
Weitere Informationen
CHOOSEFONT
Allgemeine Dialogfeldbibliothek
Konzept
Referenz