Um ein Item einzufügen, benötigen wir das
mask-Variable, der wir die notwendigen Flags übergeben. Wir wollen einen Text in der ComboBoxEx sehen, der Text soll u.U. eingerückt sein, und er soll eine Grafik anzeigen. Die Festlegung der Attribute lautet daher also
cbei.mask := CBEIF_TEXT or CBEIF_INDENT or CBEIF_IMAGE or CBEIF_SELECTEDIMAGE;
Dann geben wir den Index des Items an. Im Beispielprogramm wird hier eine Schleife durchlaufen, und der jeweilige Schleifenwert wird als Index übergeben. Wenn Sie stattdessen jedes neue Item generell an das Ende anhängen wollen, dann benutzen Sie den Wert -1
cbei.iItem := -1;
Danach geben wir den gewünschten Text und dessen Länge an. Im Beispielprogramm kommen diese Angaben aus einem Array, dessen Elemente durch die Schleife nacheinander abgearbeitet werden. Hier soll ein Wert aus dem Array das Prinzip verdeutlichen:
cbei.pszText := 'Peter'; cbei.cchTextMax := lstrlen('Peter');
Wenn Sie den Text einrücken wollen, dann benutzen Sie die iIndent-Membervariable und weisen Sie ihr einen Wert zu. Zu beachten ist, dass der angegebene Wert mit 10 multipliziert wird, d.h. Eins entspricht also einer Einrückung von 10 Pixel, Zwei von 20 Pixel, usw.
cbei.iIndent := 1;
Bleiben noch die Grafiken. In der Auswahlliste soll vor jedem Item ein Bild aus der Imageliste zu sehen sein. Darum müssen wir dessen Index natürlich angeben:
cbei.iImage := ItemInfo[i].iImage;
Aber auch bei der Auswahl eines Items soll im Eingabefeld der ComboBoxEx die Grafik zu sehen sein. Aus dem Grund haben wir das Flag CBEIF_SELECTEDIMAGE benutzt, was bedeutet, das wir den Index des gewünschten Bildes an die iSelectedImage-Variable übergeben müssen:
cbei.iSelectedImage := ItemInfo[i].iImage;
Mit Hilfe der Nachricht "CBEM_INSERTITEM" fügen wir das Item dann ein
SendMessage(hCBEx,CBEM_INSERTITEM,0,LPARAM(@cbei));
und erhalten beispielsweise das folgende Ergebnis:

Und damit sehen Sie, dass Sie sich tatsächlich um nichts weiter kümmern müssen. Die Höhe der ComboBoxEx richtet sich übrigens nach der Höhe der Grafiken. Das Beispielprogramm enthält einen Compilerschalter (THE_BIG_PICTURE), mit dem Sie eine 32x32-Bitmap laden lassen können. Die ComboBoxEx ist dann entsprechend höher.