ATL Dialog mit ComboBox: CB mit Einträgen befüllen
-
Hi,
sorry dass ich das ins MFC Forum schreibe aber es ist noch das treffenste:
Bin in einem ATL Projekt und habe einen Dialog mit einer Combobox erstellt. Nun will ich diese CB mit Strings befüllen. Die Combobox ist eine CComboBox Klasse aus dem AtlControls.h Header. Wenn ich in der OnInitDialog das mit mache passiert gar nichts. Wenn ich es danach über eine eigene Funktion die m_wndCombo1.AddString ausführt versuche bekomme ich einen assert der sagt dass ich kein Window übergeben habe...
Danke für jede Hilfe!
SimonLRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled) { CAxDialogImpl<CStartDialog>::OnInitDialog(uMsg, wParam, lParam, bHandled); bHandled = TRUE; HWND hwndCombo1 = GetDlgItem(IDC_COMBO1); CComboBox wndCombo1(hwndCombo1); wndCombo1.AddString(L"Test"); return 1; // Das System kann den Fokus festlegen }
-
Ich habe in meinem System keine atlcontrols.h! Wo ist diese Datei her?
In meinem VC2005 und VC2008 gibt es solch eine Datei nicht.Ich kenne CComboBox nur als MFC Klasse.
-
Hallo,
die ATLControls.h Datei ist ein thin wrapper von mircosoft der netterweise im ATL sample projekt ATLCON enthalten ist. Hier der Link:
http://support.microsoft.com/?scid=kb;en-us;223439&x=15&y=9
Gruß Simon
-
Wen sich das Ding wie die MFC verhält, dann führt
CComboBox wndCombo1(hwndCombo1);
Zu einem attach und das verlassen des Skopes führt zum zerstören des Fensters, was Du nicht willst.
Schau bitte mal nach wo der ASSERT auftritt. Ansonsten versuche diese Headerdatei zu verstehen, denn unterstützt wird diese ja nicht von MS, es ist halt ein Sample.