CListCtrl im SubDialog
-
Hallo Welt,
ich habe einen Dialog (sagen wir Mal Dlg_LA), welcher unter geeigneten Umständen einen zweiten kleinen Dialog (sagen wir Mal Dlg_DF) aufrufen soll.
Dlg_DF soll nur aus einer dynamisch langen Liste von Einträgen bestehen.
Da ich im Dlg_LA eine CListCtrl Komponente verwende, wollte ich die Liste im Dlg_DF ebenfalls per CListCtrl darstellen.
Ich kann aber keine Funktion der ClistCtrl Klasse aufrufen?!
// *** Inhalt aus Dlg_LA.cpp void Dlg_LA::ForumsBSP() { Dlg_LA BeispielDlg; Dlg_LA.ExampleFunc(); Dlg_LA.DoModal(); } // *** Inhalt aus Dlg_DF.cpp void Dlg_DF::ExampleFunc() { m_List.DeleteAllItems(); /* Der Fehler tritt hier (afxcmnl.inl Zeile 156) auf: _AFXCMN_INLINE BOOL CListCtrl::DeleteAllItems() { ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, LVM_DELETEALLITEMS, 0, 0L); } dabei ist m_hWnd==NULL */ }
Ich hoffe ihr könnt mit diesen minimalen Infos etwas anfangen und habt eine Idee, was ich überprüfen/korrigieren sollte?!
Falls ihr mehr Infos benötigt, einfach melden...
Vielen Dank im Voraus!
#50
-
Hast du vergessen das ListControl mit einer Resource zu verbinden?
DDX_Control(pDX, IDC_LIST1, m_List);
-
nein.
die Liste ist zur Zeit (neben den default Buttons) meine einzige Komponente der Klasse.
void Dlg_DF::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Control(pDX, IDC_LIST, m_List); }
-
sagt doch eigentlich schon der Fehler (m_hWnd==NULL), dein CListCtrl ist noch gar nicht erstellt. du kannst es nicht ansprechen bevor du DoModal() aufgerufen hast. Also füll die Daten in der InitDlg(), da existiert dein CListCtrl schon.
-
gut, Danke!
innerhalb der OnInitDialog() Funktion funktioniert es!