Kombinationsfeldfeatures
In diesem Dokument werden Die Features des Kombinationsfelds erläutert. Weitere Informationen finden Sie in den folgenden Themen:
Sonderfunktionen
Es gibt spezielle Nachrichten und Funktionen, die es einer Anwendung ermöglichen, eine Verzeichnisauflistung in einem Kombinationsfeld anzuzeigen, Daten listenelementen in einem Kombinationsfeld zuzuordnen und die Tastaturschnittstelle für ein Dropdown-Kombinationsfeld oder Dropdown-Listenfeld zu ändern.
Verzeichnislisten
Eine Anwendung kann die Namen von Dateien oder Unterverzeichnissen zu einem Kombinationsfeld hinzufügen, indem sie die CB_DIR Nachricht an dieses senden. Der wParam--Parameter für diese Nachricht gibt die Attribute der hinzuzufügenden Dateien an, und der lParam Parameter ist ein Zeiger auf die Textzeichenfolge, die die Dateispezifikation definiert.
Sie können die funktion DlgDirListComboBox verwenden, um den Inhalt eines Kombinationsfelds in einem Dialogfeld zu ersetzen. Die Funktion füllt das Kombinationsfeld mit den Namen von Laufwerken, Verzeichnissen und Dateien, die einer bestimmten Gruppe von Kriterien entsprechen. Die funktion DlgDirSelectComboBoxEx ruft die aktuelle Auswahl in einem Kombinationsfeld ab, das von DlgDirListComboBoxinitialisiert wird. Diese Funktionen ermöglichen es dem Benutzer, ein Laufwerk, ein Verzeichnis oder eine Datei aus einem Kombinationsfeld auszuwählen, ohne den Speicherort und den Namen der Datei einzugeben.
Die funktionen DlgDirListComboBox und DlgDirSelectComboBoxEx funktionen und die CB_DIR Nachricht ähneln den funktionen DlgDirList und DlgDirSelectEx und der mit Listenfeldern verwendeten LB_DIR Nachricht.
Mit Listenelementen verknüpfte Daten
Eine Anwendung kann Daten mit den Listenelementen in einem Kombinationsfeld verknüpfen. Die CB_SETITEMDATA Nachricht ordnet einem Listenelement einen DWORD-wert zu, und die CB_GETITEMDATA ruft den einem Listenelement zugeordneten Wert ab.
Das Beispiel in Erstellen eines gezeichneten Kombinationsfelds "Besitzer" verwendet Elementdaten, um jedem Element in einem Dropdown-Listenfeld eine Konstante zuzuordnen. Ein solcher eindeutiger Wert identifiziert jedes Element unabhängig von seiner sortierten Position.
Andere Anwendungen können Elementdaten verwenden, um einem Listenelement ein Handle oder Zeiger zuzuordnen. Wenn ja, kann eine Anwendung eine WM_DELETEITEM Nachricht verarbeiten, um das angegebene Objekt zu löschen oder freizugeben, wenn das Listenelement gelöscht wird.
Die erweiterte Benutzeroberfläche
Dropdown-Kombinationsfelder und Dropdownlistenfelder unterstützen eine alternative Tastaturschnittstelle, die als erweiterte Benutzeroberflächebezeichnet wird. Standardmäßig öffnet oder schließt die F4-TASTE die Liste, und die NACH-UNTEN-TASTE ändert die aktuelle Auswahl. In einem Kombinationsfeld mit der erweiterten Benutzeroberfläche ist die F4-TASTE jedoch deaktiviert und durch Drücken der NACH-UNTEN-TASTE wird die Dropdownliste geöffnet. Darüber hinaus verfügt das Mausrad, das normalerweise durch die Elemente in der Liste scrollt, keine Funktion, wenn die erweiterte Benutzeroberfläche festgelegt wird.
Um die Benutzeroberfläche für ein Kombinationsfeld auszuwählen, kann eine Anwendung die CB_SETEXTENDEDUI Nachricht an das Kombinationsfeld senden. Ein TRUE- Wert für den wParam- Parameter ermöglicht die erweiterte Benutzeroberfläche; ein FALSE Wert legt die Standardbenutzeroberfläche fest. Um festzustellen, ob ein Kombinationsfeld die erweiterte Benutzeroberfläche verwendet, kann eine Anwendung die CB_GETEXTENDEDUI Nachricht an das Kombinationsfeld senden.
Hinweisbanner
Cue Banner sind ein neues Feature für Bearbeitungssteuerelemente und Kombinationsfelder. Der Zweck eines Hinweisbanners besteht darin, dem Benutzer einen Hinweis zum Zweck eines Bearbeitungssteuerelements oder Kombinationsfelds bereitzustellen. Der folgende Screenshot zeigt ein Bearbeitungssteuerelement mit dem Hinweistext "Suchen".
Der Text eines Hinweisbanners wird angezeigt, wenn ein Bearbeitungssteuerelement keinen Text aufweist oder ein Kombinationsfeld keine Auswahl hat. Wenn der Benutzer Text in das Bearbeitungssteuerelement eingibt oder eine Auswahl in einem Kombinationsfeld vorgibt, wird das Hinweisbanner ausgeblendet. Standardmäßig wird das Markerbanner auch ausgeblendet, wenn das Bearbeitungssteuerelement oder Kombinationsfeld den Fokus erhält.
Kombinationsfeldbenachrichtigungen
Nachrichten aus Kombinationsfeldern werden als Benachrichtigungscodes in Form von WM_COMMAND Nachrichten gesendet. Der Benachrichtigungscode wird im hohen Wort des wParam--Parameters gespeichert, und eine Anwendung kann die folgenden Kombinationsfeld-Benachrichtigungscodes verarbeiten.
Benachrichtigungscode | Beschreibung |
---|---|
CBN_CLOSEUP | Gibt die Liste in einem Dropdown-Kombinationsfeld oder Dropdown-Listenfeld an, das geschlossen werden soll. |
CBN_DBLCLK | Gibt an, dass der Benutzer in einem einfachen Kombinationsfeld auf ein Listenelement doppelklicken hat. |
CBN_DROPDOWN | Gibt an, dass die Liste in einem Dropdown-Kombinationsfeld oder Dropdown-Listenfeld geöffnet werden soll. |
CBN_EDITCHANGE | Gibt an, dass der Benutzer den Text im Bearbeitungssteuerelement eines einfachen oder Dropdown-Kombinationsfelds geändert hat. Dieser Benachrichtigungscode wird gesendet, nachdem der geänderte Text angezeigt wird. |
CBN_EDITUPDATE | Gibt an, dass der Benutzer den Text im Bearbeitungssteuerelement eines einfachen oder Dropdown-Kombinationsfelds geändert hat. Dieser Benachrichtigungscode wird gesendet, bevor der geänderte Text angezeigt wird. |
CBN_ERRSPACE | Gibt an, dass das Kombinationsfeld nicht genügend Arbeitsspeicher zuweisen kann, um eine Anforderung auszuführen, z. B. das Hinzufügen eines Listenelements. |
CBN_KILLFOCUS | Gibt an, dass das Kombinationsfeld den Eingabefokus verliert. |
CBN_SELCHANGE | Gibt an, dass sich die aktuelle Auswahl geändert hat. |
CBN_SELENDCANCEL | Gibt an, dass die in der Dropdownliste getroffene Auswahl, während sie gelöscht wurde, ignoriert werden soll. |
CBN_SELENDOK | Gibt an, dass die getroffene Dropdownliste, während sie gelöscht wurde, akzeptiert werden soll. |
CBN_SETFOCUS | Gibt an, dass das Kombinationsfeld den Eingabefokus erhalten hat. |
Standardverhalten des Kombinationsfelds
In dieser folgenden Tabelle werden die Meldungen beschrieben, die speziell von der vordefinierten COMBOBOX-Klassenfensterprozedur behandelt werden.
Nachricht | Beschreibung |
---|---|
CB_ADDSTRING | Sendet eine LB_ADDSTRING Nachricht an das Listenfenster, um ein Listenelement hinzuzufügen. |
CB_DELETESTRING | Sendet eine LB_DELETESTRING Nachricht an das Listenfenster, um ein Listenelement zu löschen. |
CB_DIR | Fügt die Dateinamen hinzu, die den angegebenen Attributen und Pfad zur Liste entsprechen. |
CB_FINDSTRING | Sendet eine LB_FINDSTRING Nachricht an das Listenfenster. Diese Nachricht gibt den Index des ersten Listenelements zurück, das mit dem angegebenen Text beginnt. |
CB_FINDSTRINGEXACT | Sendet eine LB_FINDSTRING Nachricht an das Listenfenster. Diese Nachricht gibt den Index des ersten Listenelements zurück, das exakt dem angegebenen Text entspricht. |
CB_GETCOUNT | Sendet eine LB_GETCOUNT Nachricht an das Listenfenster. Sie gibt die Anzahl der Listenelemente zurück. |
CB_GETCURSEL | Sendet eine LB_GETCURSEL Nachricht an das Listenfenster. Wenn vorhanden, wird der Index des aktuell ausgewählten Elements zurückgegeben. |
CB_GETDROPPEDCONTROLRECT | Füllt die angegebene Rechteckstruktur mit den Bildschirmkoordinaten einer Dropdownliste. |
CB_GETDROPPEDSTATE | Gibt TRUE- zurück, wenn eine Dropdownliste geöffnet ist; andernfalls wird FALSE-zurückgegeben. |
CB_GETDROPPEDWIDTH | Gibt die zulässige Mindestbreite der Dropdownliste in Pixel zurück. |
CB_GETEDITSEL | Sendet eine EM_GETSEL Nachricht an das Bearbeitungssteuerelement und gibt die Anfangs- und Endposition der aktuellen Auswahl zurück. In Dropdownlistenfeldern gibt die Fensterprozedur CB_ERR zurück. |
CB_GETEXTENDEDUI | Gibt TRUE- zurück, wenn das Kombinationsfeld ein Dropdown-Kombinationsfeld oder Dropdown-Listenfeld ist und das Flag für die Erweiterung der Benutzeroberfläche festgelegt ist; andernfalls wird FALSE-zurückgegeben. |
CB_GETHORIZONTALEXTENT | Sendet eine LB_GETHORIZONTALEXTENT Nachricht an das Listenfenster. Sie gibt die bildlauffähige Breite der Dropdownliste in Pixel zurück. |
CB_GETITEMDATA | Sendet eine LB_GETITEMDATA Nachricht an das Listenfenster. Der Wert, der dem angegebenen Listenelement zugeordnet ist, wird zurückgegeben. |
CB_GETITEMHEIGHT | Sendet eine LB_GETITEMHEIGHT Nachricht an das Listenfenster. Es gibt die Höhe des angegebenen vom Besitzer gezeichneten Listenelements in Pixeln zurück. |
CB_GETLBTEXT | Sendet eine LB_GETTEXT Nachricht an das Listenfenster. Er kopiert den angegebenen Listentext in den angegebenen Puffer. |
CB_GETLBTEXTLEN | Sendet eine LB_GETTEXTLEN Nachricht an das Listenfenster. Sie gibt die Länge des angegebenen Listentexts in TCHARszurück. |
CB_GETLOCALE | Sendet eine LB_GETLOCALE Nachricht an das Listenfenster. Es gibt das aktuelle Gebietsschema für die Liste zurück. |
CB_GETMINVISIBLE | Ruft die Mindestanzahl der sichtbaren Elemente in der Dropdownliste eines Kombinationsfelds ab. |
CB_GETTOPINDEX | Sendet eine LB_GETTOPINDEX Nachricht an das Listenfenster. Der Index des ersten sichtbaren Elements in der Dropdownliste wird zurückgegeben. |
CB_INITSTORAGE | Sendet eine LB_INITSTORAGE Nachricht an das Listenfenster. Er initialisiert platz für die angegebene Anzahl von Elementen und die angegebene Anzahl von Bytes für Elementzeichenfolgen. |
CB_INSERTSTRING | Sendet eine LB_INSERTSTRING Nachricht an das Listenfenster. Es fügt ein Listenelement an der angegebenen Position ein. |
CB_LIMITTEXT | Sendet eine EM_LIMITTEXT Nachricht an das Bearbeitungssteuerelement. Sie legt die maximale Anzahl von Zeichen fest, die ein Benutzer im Bearbeitungssteuerelement eingeben kann. In Dropdownlistenfeldern gibt die Fensterprozedur CB_ERR zurück. |
CB_RESETCONTENT | Sendet eine LB_RESETCONTENT Nachricht an das Listenfenster und entfernt den Inhalt der Liste. |
CB_SELECTSTRING | Sendet eine LB_SELECTSTRING Nachricht an das Listenfenster. Wenn vorhanden, wird das erste Listenelement markiert, das mit den Zeichen im angegebenen Text beginnt. |
CB_SETCURSEL | Sendet eine LB_SETCURSEL Nachricht an das Listenfenster und legt die aktuelle Auswahl fest. |
CB_SETDROPPEDWIDTH | Legt die minimale zulässige Breite in Pixel der Dropdownliste fest. |
CB_SETEDITSEL | Sendet eine EM_SETSEL Nachricht an das Bearbeitungssteuerelement. Er markiert den angegebenen Textbereich. In Dropdownlistenfeldern gibt die Fensterprozedur CB_ERR zurück. |
CB_SETEXTENDEDUI | Legt das erweiterte Benutzeroberflächen-Flag fest oder löscht es. Dieses Kennzeichen ändert die Tasten, die die Liste in einem Dropdown-Kombinationsfeld oder Dropdown-Listenfeld öffnen und schließen. Wenn das Kombinationsfeld ein einfaches Kombinationsfeld ist, gibt die Fensterprozedur CB_ERR zurück. |
CB_SETHORIZONTALEXTENT | Sendet eine LB_SETHORIZONTALEXTENT Nachricht an das Listenfenster. Sie legt die bildlauffähige Breite der Dropdownliste in Pixel fest. |
CB_SETITEMDATA | Sendet eine LB_SETITEMDATA Nachricht an das Listenfenster. Er ordnet den angegebenen Wert einem Listenelement zu. |
CB_SETITEMHEIGHT | Sendet eine LB_SETITEMHEIGHT Nachricht an das Listenfenster. Es legt die Höhe des angegebenen besitzergezeichneten Listenelements oder des Auswahlfelds fest. |
CB_SETLOCALE | Sendet eine LB_SETLOCALE Nachricht an das Listenfenster und legt das aktuelle Gebietsschema für die Liste fest. Das Gebietsschema wirkt sich darauf aus, wie die Liste sortiert wird, wenn die CBS_SORT Formatvorlage und Zeichenfolgen mithilfe von CB_ADDSTRINGhinzugefügt werden. |
CB_SETMINVISIBLE | Legt die Mindestanzahl der sichtbaren Elemente in der Dropdownliste eines Kombinationsfelds fest. |
CB_SETTOPINDEX | Sendet eine LB_SETTOPINDEX Nachricht an das Listenfenster. Es führt einen Bildlauf in der Dropdownliste durch, sodass sich das angegebene Element am oberen Rand des sichtbaren Bereichs befindet. |
CB_SHOWDROPDOWN | Blendet die Dropdownliste ein oder aus. Diese Meldung wirkt sich nicht auf einfache Kombinationsfelder aus. |
WM_CHAR | Verarbeitet Zeicheneingaben. In Dropdownlistenfeldern wird diese Nachricht an das Listenfenster übergeben, das die Auswahl an das erste Element verschiebt, das mit dem angegebenen Zeichen beginnt. In einfachen und Dropdown-Kombinationsfeldern wird diese Meldung an das Bearbeitungssteuerelement übergeben. |
WM_CLEAR | Löscht die Bearbeitungsauswahl. In einfachen und Dropdown-Kombinationsfeldern verarbeitet das Bearbeitungssteuerelement diese Nachricht. In Dropdownlistenfeldern gibt die Fensterprozedur CB_ERR zurück. |
WM_COMMAND | Verarbeitet Benachrichtigungen aus dem Bearbeitungssteuerelement und Listenfenster und sendet entsprechende Kombinationsfeld-Benachrichtigungscodes an das übergeordnete Fenster. |
Bei Bearbeitungssteuerelementbenachrichtigungen kann die Fensterprozedur die aktuelle Auswahl, den Caretindex und den obersten Index des Listenfensters aktualisieren. Bei Listenbenachrichtigungen kann die Fensterprozedur den Inhalt des Auswahlfelds aktualisieren. | |
WM_COMPAREITEM | Übergibt die Nachricht an das übergeordnete Fenster, sodass die Anwendung die relative Sortierposition von zwei vom Besitzer gezeichneten Listenelementen angeben kann. Das Kombinationsfeldfenster empfängt diese Nachricht aus dem Listenfenster. |
WM_COPY | Kopiert die Bearbeitungsauswahl in die Zwischenablage. In einfachen und Dropdown-Kombinationsfeldern verarbeitet das Bearbeitungssteuerelement diese Nachricht. In Dropdownlistenfeldern gibt die Fensterprozedur CB_ERR zurück. |
WM_CREATE | Initialisiert das Kombinationsfeld. |
WM_CUT | Löscht die Bearbeitungsauswahl und platziert sie in der Zwischenablage. In einfachen und Dropdown-Kombinationsfeldern verarbeitet das Bearbeitungssteuerelement diese Nachricht. In Dropdownlistenfeldern gibt die Fensterprozedur CB_ERR zurück. |
WM_DELETEITEM | Übergibt die Nachricht an das übergeordnete Fenster, und benachrichtigt die Anwendung, dass ein Listenelement gelöscht wurde. Das Kombinationsfeldfenster empfängt diese Nachricht aus dem Listenfenster. |
WM_DRAWITEM | Übergibt die Nachricht an das übergeordnete Fenster, mit dem die Anwendung das angegebene Listenelement zeichnen kann. Das Kombinationsfeldfenster empfängt diese Nachricht aus dem Listenfenster. Die Fensterprozedur kann auch aus dieser Meldung stammen, damit die Anwendung das Auswahlfeld eines Dropdown-Listenfelds zeichnet. |
WM_ENABLE | Legt den Zustand fest, um Maus- und Tastatureingaben zu aktivieren oder zu verbieten. |
WM_ERASEBKGND | Gibt 1 zurück, der angibt, dass der Hintergrund gelöscht wird. |
WM_GETDLGCODE | Gibt eine Kombination der werte DLG_WANTCHARS und DLGC_WANTARROWS zurück. |
WM_GETFONT | Gibt das Handle an die aktuelle Schriftart zurück, mit der das Kombinationsfeld seinen Text zeichnet. |
WM_GETTEXT | Kopiert den Inhalt des Auswahlfelds in den angegebenen Puffer. In einfachen und Dropdown-Kombinationsfeldern verarbeitet das Bearbeitungssteuerelement diese Nachricht. |
WM_GETTEXTLENGTH | Gibt die Länge des Texts im Auswahlfeld in Zeichen zurück. In einfachen und Dropdown-Kombinationsfeldern verarbeitet das Bearbeitungssteuerelement diese Nachricht. |
WM_KEYDOWN | Verarbeitet nicht character Tastatureingaben. In Dropdown-Listenfeldern wird diese Nachricht an das Listenfenster gesendet, das sich selbst ein- oder ausblenden kann, oder die aktuelle Auswahl oder den Caretindex ändern. In einfachen und Dropdown-Kombinationsfeldern wird diese Meldung an das Bearbeitungssteuerelement übergeben. Das Bearbeitungssteuerelement übergibt bestimmte Tasten an das Listenfenster, z. B. die NACH-OBEN- und NACH-UNTEN-TASTE und die F4-TASTE. |
WM_KILLFOCUS | Blendet die Hervorhebung im Auswahlfeld aus und schließt die Dropdownliste bei Bedarf. Wenn das Fenster, das den Eingabefokus empfängt, Teil des Kombinationsfelds ist (z. B. das Bearbeitungssteuerelement), wird diese Meldung ignoriert. |
WM_LBUTTONDBLCLK | Identisch mit WM_LBUTTONDOWN. |
WM_LBUTTONDOWN | Legt den Fokus auf das Kombinationsfeld fest, und für Dropdown-Kombinationsfelder und Dropdownlisten kann die Liste geöffnet oder geschlossen werden. Wenn die Liste geöffnet wird, erfasst die Fensterprozedur die Maus, um die Auswahl durch Ziehen und Loslassen der Maustaste zu aktivieren. |
WM_LBUTTONUP | Gibt die Mausaufnahme frei, wenn die Maus die Liste geöffnet hat. |
WM_MEASUREITEM | Sendet die Nachricht in das übergeordnete Fenster, sodass die Anwendung den Inhalt der angegebenen MEASUREITEMSTRUCT Struktur ändern kann. Das Kombinationsfeldfenster empfängt diese Nachricht aus dem Listenfenster. |
WM_MOUSEMOVE | Sendet die Nachricht in das Listenfenster, wenn die Maus die Liste geöffnet hat und die Maustaste noch gedrückt ist. Auf diese Weise kann ein Benutzer ein Element auswählen, indem er den Mauszeiger auf ein Listenelement zieht und dann die Schaltfläche loslässt. |
WM_NCCREATE | Weist eine interne Datenstruktur zu, die von der Kombinationsfeld-Fensterprozedur verwendet wird. |
WM_NCDESTROY | Gibt Ressourcen frei, die als Reaktion auf die WM_NCCREATE Nachricht zugeordnet sind. |
WM_PAINT | Zeichnet den ungültigen Bereich des Kombinationsfelds. Wenn wParam- nicht NULL-ist, wird davon ausgegangen, dass es sich um ein Von einer Unterklassenfunktion übergebenes Handle (Device Context, DC) handelt. Die Fensterprozedur verwendet den angegebenen DC statt BeginPaint- und EndPaint-aufzurufen. |
WM_PASTE | Ersetzt die Bearbeitungsauswahl durch den Inhalt der Zwischenablage. In einfachen und Dropdown-Kombinationsfeldern verarbeitet das Bearbeitungssteuerelement diese Nachricht. In Dropdownlistenfeldern gibt die Fensterprozedur CB_ERR zurück. |
WM_SETFOCUS | Legt den Fokus auf das Bearbeitungssteuerelement fest, oder in Dropdown-Listenfeldern wird das Auswahlfeld invertiert und das Caret im Listenfenster aktiviert. |
WM_SETFONT | Speichert den angegebenen Schriftpunkt in einer internen Struktur, passt die Abmessungen des Auswahlfelds und der Liste an und macht das Kombinationsfeldfenster ungültig. Text im Auswahlfeld und die Liste werden in der gespeicherten Schriftart angezeigt. |
WM_SETREDRAW | Legt die Kennzeichnung für das Neuzeichnen fest oder löscht sie. Wenn das Kennzeichen erneut gezeichnet wird, wird das Kombinationsfeld erst aktualisiert, wenn die Kennzeichnung erneut festgelegt wird. |
WM_SETTEXT | Legt den Inhalt des Bearbeitungssteuerelements fest. In einfachen und Dropdown-Kombinationsfeldern verarbeitet das Bearbeitungssteuerelement diese Nachricht. In Dropdownlistenfeldern gibt die Fensterprozedur CB_ERR zurück. |
WM_SIZE | Ändert bei Bedarf die Größe der untergeordneten Fenster. |
WM_SYSKEYDOWN | Öffnet oder schließt die Dropdownliste, je nachdem, welche Pfeiltaste der Benutzer gedrückt hat. |
Alle anderen Nachrichten werden zur Standardverarbeitung an die DefWindowProc--Funktion übergeben.