Combobox mit CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED Style am öffnen hindern
-
Wie kann ich eine Combobox, die die Styles CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED besitzt am Öffnen hindern, wenn diese keine Items enthält. Vor dem Dropdown erhalte ich den Event CBN_DROPDOWN. An dieser Stelle kann ich mit CB_GETCOUNT die Anzahl der Items ermitteln. Wenn diese nun 0 beträgt, kann ich mit PostMessage und CB_SHOWDROPDOWN + FALSE ein Schliessen der Dropdownlist erzwingen. Leider Popt die List kurz auf. Sende ich ein SendMessage mit CB_SHOWDROPDOWN + FALSE passiert gar nichts. Hmm vieleicht muss ich das Control subclassen? Ok das weiss ich wie das geht, aber was fange ich dann im gesubclassten Eventhandler ab?
Wer kann helfen?
-
Subclassing wird Dir hier nichts nutzen.
Wenn CB_SHOWDROPDOWN in dem Handler nicht geht und es nur per PostMessage geht, weil dann eben die Box fertig aufgeklappt ist, dann bleibt vermutlich nur ein Trick.Entweder setzt Du die Größe der ComboBox einfach bei 0 Items so klein, das nichts aufklappt (MoveWindow/SetWindowPos)
Oder versuch mal mit GetComboBoxInfo das Handle der Listbox zu besorgen und das einfach sofort per ShowWindow wieder zu verstecken.