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!
    Simon

    LRESULT 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
    	}
    

  • Mod

    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


  • Mod

    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.


Anmelden zum Antworten