Zum Inhalt springen

[MFC] Objekte in einer CComboBox speichern und darstellen


Empfohlene Beiträge

Geschrieben

Hallo,

ich habe folgendes Problem:

Ich hab ein Dialogfenster (MFC) mit einer CComboBox usw.

Jetzt möchte ich, dass beim Start des Dialoges automatisch Objekte aus einer Datei geladen und in der Combobox angezeigt werden.

Ich dachte mir, dass ich die gleich im Konstruktor der Dialogklasse fülle. Das ganze sieht in etwa so aus:


CBZRDlg::CBZRDlg(CWnd* pParent /*=NULL*/)

	: CDialog(CBZRDlg::IDD, pParent)

{

	//{{AFX_DATA_INIT(CBZRDlg)

	//}}AFX_DATA_INIT

	// Beachten Sie, dass LoadIcon unter Win32 keinen nachfolgenden DestroyIcon-Aufruf benötigt

	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);

	m_pAutoProxy = NULL;

	p_SetFileProperties();

	auto CList<CUser, CUser&> a_oUsers;

	CUser::s_p_GetUsers(a_oUsers);	

	auto CUser a_oUser = a_oUsers.GetTail();

	auto POSITION a_sePosition = a_oUsers.GetTailPosition();

	for (int a_nIndex=0;a_nIndex < a_oUsers.GetCount();a_nIndex++)

	{

		TRACE("FOR: %s\r\n", a_oUser.p_lpGetFName().c_str());

		const char* test = a_oUser.p_lpToString(false).c_str();

		m_oeCtrlMainStiUser.AddString(a_oUser.p_lpToString(false).c_str());

		a_oUser = a_oUsers.GetPrev(a_sePosition);

	}

}

An sich eigentlich nichts besonderes, die Variable m_oeCtrlMainStiUser ist ein Control für die Combobox und soll die Objekte (zu Testzwecken erstmal nur Strings) aus einer CList in die Box eintragen. Leider funktioniert das nicht so wie ich mir das gedacht habe. Beim Programmstart (Konstruktoraufruf) klappt alles reibungslos bis zur Zeile:

m_oeCtrlMainStiUser.AddString(a_oUser.p_lpToString(false).c_str());

Ich bekomme da immer folgende Fehlermeldung:

Debug Assertion Failed

...

File: afxwin2.inl

Line: 735

For Informationen [...] see your C++ documentation on asserts

mein Frage jetzt:

Wie krieg ich da ein Objekt rein ?

btw: VSC++ 6.0

Geschrieben

*an Kopf klatsch*

Ich sollte mehr die TODOs von Microsoft lesen...

-> verschoben nach OnInitDialog

Strings hinzufügen klappt jetzt, wie kann ich ganze Objekte dort reinbringen ?

Es müsste dann via Memberfunktion auch die Darstellungsform (der anzuzeigende Text) repräsentierbar sein.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...