Combobox horizontal scrollen wie ?
-
Ich habe eine Dialogvorlage für einen modalen Dialog erstellt.
Darauf ordnete ich eine Combobox an. Wie kann ich erreichen, dass
ich die Combobox horizontal srollen kann ? Kann man auf dem modalem
Dialogfeld, auch Steuerelemente, ohne den Dialog-Editor anordnen. z.B.
mit m_combo.Create(... . Es ging bei einer CDialogBar. Bei einer
Listbox konnte man die Funktion "SetHorizontalExtend(..." anwenden, bei
der Combobox ging das nicht. wieso ?
-
Weil diese Funktion eben für ComboBoxen nicht implementiert ist...
Das eine Klasse etwas kann, heißt nicht, dass eine andere Klasse das auch kann. Zudem das Ganze letzten Endes in dr WinAPI vergraben ist und nicht in der MFC!Workarround:
Du kannst versuchen mit GetComboBoxInfo, Dir das Handle für die ListBox zu besorgen und dann direkt SetHorizontalExtend anzuwenden.
-
Es geht übrigens doch ! Wenn Du eine DialogFeld-Vorlage mit dem
Dialog-Editor erstellst, und Platz lässt für die Combobox, und die
CComboBox zur Laufzeit generierst, dann geht es folgendermasen:class CMeinDialog : CDialog // die Klasse meines modalen Dialogs
CComboBox cbb;
CMeinDialog.cpp
...OnInitDialog ...
cbb.Create( ... WS_HSCROLL ...
cbb.SetHorizontalExtend(1oo),Wenn Du es aktzeptieren kannst, bei den MFC muss man die ganze Zeit
tricksen.Ich hab geringfügig Erfahreung mit C#. Das ist einheitlicher,
un meines erachtens besser.
-
Upps mir ist glatt entgangen, dass dieses Control auch CB_SETHORIZONTALEXTENT als Nachricht hat.
Bist Du sicher das WS_HSCROLL notwendig ist? Wenn es nicht mehr Ressource Editor geht, geht es evtl. nachträglich mit ModifyStyle. Zur Not evtl. das Listbox Control holen mit GetComboBoxInfo.