Wenn das Dialogfeld Farben anpassen möchten, können Sie eine der folgenden Methoden:
Sie können die Darstellung und das Verhalten im Dialogfeld Farbe ändern, indem Sie Flaggen in den Flags der CHOOSECOLOR -Struktur. Beispielsweise können Sie das CC_SOLIDCOLOR-Flag, das das Dialogfeld anzuzeigende nur Volltonfarben direkt festlegen. Um das Dialogfeld zunächst eine Farbe als schwarz auswählen, legen Sie das CC_RGBINIT-Flag und geben Sie eine Farbe an, in der RgbResult -member.
Sie können eine benutzerdefinierte Vorlage für das Dialogfeld Farbe , z. B. bereitstellen möchten Sie zusätzliche Steuerelemente enthalten, die nur in Ihrer Anwendung sind. Die ChooseColor -Funktion verwendet die benutzerdefinierte Vorlage statt der Standardvorlage.
- Oder -
Sie können eine CCHookProc -Hook-Prozedur für das Dialogfeld Farbe angeben. Die Hook-Prozedur kann Nachrichten gesendet, um das Dialogfeld verarbeiten. Es können auch registrierte Nachrichten, das Verhalten des Dialogfelds gesteuert. Wenn Sie eine benutzerdefinierte Vorlage verwenden, um zusätzliche Steuerelemente definieren, müssen Sie eine Hook-Prozedur zu verarbeiten für Ihre Steuerelemente bereitstellen.
Nach der Verarbeitung der WM_INITDIALOG -Meldung, sendet die Dialogfeldprozedur eine WM_INITDIALOG-Meldung an die Hook-Prozedur. Dieser Nachricht der lParam -Parameter ist ein Zeiger auf der CHOOSECOLOR -Struktur verwendet, um das Dialogfeld zu initialisieren.
Das Dialogfeld sendet die COLOROKSTRING registrierten Nachricht an die Hook-Prozedur, wenn der Benutzer auf die Schaltfläche OK klickt. Die Hook-Prozedur kann die ausgewählte Farbe ablehnen und zwingen das Dialogfeld weiterhin geöffnet von 0 (null) zurück, wenn sie diese Nachricht erhält. Die Hook-Prozedur können Sie das Dialogfeld um eine bestimmte Farbe auswählen, indem die SETRGBSTRING registrierte Meldung an das Dialogfeld erzwingen. Um diese registrierten Nachrichten verwenden, müssen Sie die Konstanten COLOROKSTRING und SETRGBSTRING an die RegisterWindowMessage Funktion um eine Meldungs-ID übergeben. Dann können Sie den Bezeichner zum erkennen und Verarbeiten von Nachrichten im Dialogfeld oder das Dialogfeld Nachrichtenversand.