我已经在MFC应用程序中在运行时创建了树 View ,我现在向其中添加了几个节点,我想对节点单击进行一些操作,以便如何获取树 View 的单击事件?

我的代码如下所示:

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);

最佳答案

一种选择是在设计时使用消息映射中的ON_NOTIFY像往常一样向该父窗口类添加该子窗口ID(在您的示例中为0x1221)的通知消息的处理程序。如果没有消息,则不会触发处理程序。

或者,您可以使用WM_NOTIFY将通用的ON_MESSAGE处理程序添加到父窗口的消息映射中,然后检查消息是否来自新的树控件。

关于c++ - 如何在运行时创建的MFC中获取Treeview(CTreeCtrl)的Click事件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3757492/

10-13 08:22