Tree nachträglich im Programm erstellen
-
hallo,
ich möchte einen Tree nachträglich im Programm erstellen und nicht
da wo ich meinen Dialog sonst vom aussehen her bearbeiten kann.dazu habe ich folgenden code:
DWORD dwStyle = WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_EX_CLIENTEDGE | TVS_HASLINES | TVS_HASBUTTONS | TVS_LINESATROOT | TVS_SHOWSELALWAYS | TVS_DISABLEDRAGDROP | TVS_INFOTIP | WS_TABSTOP; CTreeCtrl test; test.Create(dwStyle,CRect(10, 100, 200, 200),this,0); test.ShowWindow(SW_SHOW);aber es wird einfach nichts angezeigt :-|
-
Das ShowWindow(...) kannst Du Dir sparen, dafür sorgt bereits WS_VISIBLE. Dafür solltest Du
CTreeCtrl test;in den Konstruktor der Elternklasse verlagern. Denn dein test haucht sein Leben auf dem Stack der Funktion an der nächsten } aus. Es sollte aber erst durch den Destruktor der Elternklasse beseitigt werden.

Hier der Beweis:
void CTreeCtrlTestDlg::OnButton1() { DWORD dwStyle = WS_VISIBLE | TVS_HASLINES | TVS_HASBUTTONS | TVS_LINESATROOT | TVS_SHOWSELALWAYS | TVS_DISABLEDRAGDROP | TVS_INFOTIP | WS_TABSTOP; CRect rect(5,5,100,100); CTreeCtrl testCtrl; testCtrl.Create( dwStyle, rect, this, 0); testCtrl.InsertItem("Hallo ich lebe noch"); //testCtrl.ShowWindow(SW_SHOW); MessageBox("Jetzt ist CTreeCtrl bzw. das von ihm erzeugte CTreeView sichtbar "); Sleep(2000); MessageBox("CTreeCtrl und CTreeView sagen nun good bye"); }
-
achso

ja danke stimmt
