Wie man Click-Ereignis des Treeview(CTreeCtrl) im MFC, die zur Laufzeit angelegt?
Habe ich einen treeview zur Laufzeit in der MFC-Anwendung , ich habe einige nodes, um es jetzt ich will ein paar Sachen auf klicken der Knoten so, wie kann ich click-Ereignis des treeview ?
Mein code sieht wie folgt aus :
CTreeCtrl *m_ctlTreeview;
m_ctlTreeview = new CTreeCtrl ;
m_ctlTreeview->Create(WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP |
TVS_HASLINES | TVS_HASBUTTONS | TVS_LINESATROOT |
TVS_SINGLEEXPAND | TVS_SHOWSELALWAYS |
TVS_TRACKSELECT,
CRect(25, 60, 385, 260), this, 0x1221);
hparentitem = m_ctlTreeview->InsertItem("Parent",TVI_ROOT);
m_ctlTreeview->InsertItem("Child", hparentitem);
Du musst angemeldet sein, um einen Kommentar abzugeben.
Eine Möglichkeit ist, fügen Sie einen Ereignishandler für das notification-Nachrichten für das untergeordnete Fenster-ID (0x1221 in deinem Beispiel) zu der übergeordneten Klasse zur design-Zeit mit
ON_NOTIFY
in der Nachricht anzeigen wie gewohnt. Wenn keine Nachrichten vorhanden sind, wird der handler nicht ausgelöst werden.Alternativ können Sie eine generische
WM_NOTIFY
handler der Meldungszuordnung das übergeordnete Fenster mitON_MESSAGE
, und dann überprüfen, um zu sehen, ob die Meldung kommt aus dem neuen tree-control.Ich bin vertraut mit WTL Codierung, die hat ähnlichkeit mit MFC. Wo MFC ist ein CTreeCtrl, WTL hat eine CTreeViewCtrl.
Die dialog-Klasse, die enthält die Baumstruktur sollte, überprüfen Sie folgende Benachrichtigungen mit notify-code-handler:
Möchte ich nicht zitieren, alle WTL-code, wie kann es nur dazu dienen, zu verwirren, aber ich hoffe, diese Meldungen helfen!