CCHookProc

Die CCHookProc -Hook-Prozedur ist eine anwendungsdefinierte oder Bibliothek definierte Callback-Funktion, die mit der ChooseColor -Funktion verwendet wird. Die Hook-Prozedur empfängt Nachrichten oder Mitteilungen, die für die Standard-Dialogfeldprozedur im Dialogfeld gemeinsame Farbe bestimmt.

Der LPCCHOOKPROC -Typ definiert einen Zeiger auf diese Callback-Funktion. CCHookProc ist ein Platzhalter für den Namen der Anwendung definierte Funktion.

(UINT Rückruf CCHookProc HWND  Hdlg,, / / handle auf das Dialogfenster FeldUINTuiMsg, / / message IDWPARAMwParam, / / message ParameterLPARAMlParam / / message Parameter);
 

Parameter

hdlg
Handle für das Fenster Farbe Dialogfeld Feld für das die Nachricht bestimmt ist.
uiMsg
Identifiziert die Nachricht empfangen wird.
wParam
Gibt zusätzliche Informationen über die Nachricht. Die genaue Bedeutung hängt vom Wert des Parameters uiMsg.
lParam
Gibt zusätzliche Informationen über die Nachricht. Die genaue Bedeutung hängt vom Wert des Parameters uiMsg .

Wenn der UiMsg -Parameter die WM_INITDIALOG -Meldung angibt, ist lParam ein Zeiger auf eine CHOOSECOLOR Struktur enthält die Werte angegeben, wenn das Dialogfeld erstellt wurde.

Rückgabewerte

Wenn die Hook-Prozedur gibt NULL zurück, verarbeitet die Standard-Dialogfeldprozedur die Nachricht.

Wenn die Hook-Prozedur einen Wert ungleich NULL zurückgibt, ignoriert die Standard-Dialogfeldprozedur die Nachricht.

Bemerkungen

Wenn Sie die ChooseColor -Funktion verwenden, um ein Dialogfeld zu erstellen, erhalten Sie eine CCHookProc -Hook-Prozedur zum Verarbeiten von Nachrichten oder Mitteilungen für die Dialogfeldprozedur bestimmt. Verwenden Sie zum Aktivieren der Hook-Prozedur der CHOOSECOLOR -Struktur, die Sie an das Dialogfeld Schaffung Funktion übergeben. Geben Sie die Adresse der die Hook-Prozedur in den LpfnHook und geben das CC_ENABLEHOOK-Flag in den Flags an.

Die Standard-Dialogfeldprozedur verarbeitet die WM_INITDIALOG-Meldung vor der Übergabe an die Hook-Prozedur. Für alle anderen Nachrichten empfängt die Hook-Prozedur die Nachricht zuerst. Dann, die Hook-Prozedur der Rückgabewert bestimmt, ob das Standard-Dialogfeld-Verfahren die Nachricht verarbeitet oder ignoriert.

Wenn die Hook-Prozedur die WM_CTLCOLORDLG -Nachricht verarbeitet, muss einen gültiger Pinsel-Handle für den Hintergrund im Dialogfeld zurückgegeben. Im Allgemeinen wenn die Hook-Prozedur jede Nachricht WM_CTLCOLOR * verarbeitet, muss einen gültiger Pinsel-Handle für den Hintergrund des angegebenen Steuerelements zurückgeben.

Rufen Sie nicht die EndDialog -Funktion von der Hook-Prozedur. Stattdessen kann die Hook-Prozedur die PostMessage -Funktion eine WM_COMMAND-Meldung mit der IDABORT-Wert, der die Dialogfeldprozedur Post aufrufen. IDABORT schließt das Dialogfeld und bewirkt, dass die Dialogfeld Feld Funktion FALSE zurück. Wenn Sie müssen wissen, warum die Hook-Prozedur das Dialogfeld geschlossen, müssen Sie Ihre eigenen Kommunikationsmechanismus zwischen die Hook-Prozedur und Ihre Anwendung bereitstellen.

Sie können eine Unterklasse der Standardsteuerelemente im Dialogfeld gemeinsame. Allerdings kann die gemeinsamen Dialogfeldprozedur auch Unterklasse der Steuerelemente. Aus diesem Grund sollten Sie Unterklasse Steuerelemente, wenn die Hook-Prozedur die WM_INITDIALOG-Meldung verarbeitet. Dies stellt sicher, dass Ihre Unterklasse-Prozedur die Steuerelement-spezifische Nachrichten vor der Unterklasse-Prozedur festlegen, indem das Dialogfeld im Feld Prozedur empfängt.

QuickInfo

&Nbsp; Windows NT: Version 3.1 oder höher erforderlich.
Windows:Erfordert Windows 95 oder höher.
Windows CE:Version 2.0 oder höher erforderlich.
Header:In commdlg.h deklariert.
Importieren Bibliothek:Benutzerdefinierte.

Siehe auch

Übersicht über common Dialog Box Library, allgemeine Dialogfeld Feld Funktionen, ChooseColor, CHOOSECOLOR, EndDialog, PostMessage, WM_INITDIALOG, WM_CTLCOLORDLG

Index