获取 CTreeViewCtrl 的 Click 事件

发布于 2024-12-26 05:03:49 字数 668 浏览 0 评论 0原文

我的意思是单击树视图的元素 - >它在列表视图中显示某物。

我创建这样的控件(其中树和列表 - > CTreeViewCtrl 和 CListViewCtrl)

    split.Create(*this,rcDefault,NULL,0,WS_EX_CLIENTEDGE);
    RECT rlist,rtree;
    list.Create(split,rlist,CListViewCtrl::GetWndClassName(),WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | LVS_REPORT | LVS_EDITLABELS, WS_EX_CLIENTEDGE);
    tree.Create(split,rtree,CTreeViewCtrl::GetWndClassName(),WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | LVS_REPORT | TVS_EDITLABELS, WS_EX_CLIENTEDGE);
    list.AddColumn(L"KEY",0);
    list.AddColumn(L"VALUE",1);
    split.SetSplitterPanes(tree,list);

哪些参数将具有事件函数?

I mean click on element of treeview - > it show sth in listview.

I create controls like this(where tree and list - > CTreeViewCtrl and CListViewCtrl)

    split.Create(*this,rcDefault,NULL,0,WS_EX_CLIENTEDGE);
    RECT rlist,rtree;
    list.Create(split,rlist,CListViewCtrl::GetWndClassName(),WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | LVS_REPORT | LVS_EDITLABELS, WS_EX_CLIENTEDGE);
    tree.Create(split,rtree,CTreeViewCtrl::GetWndClassName(),WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | LVS_REPORT | TVS_EDITLABELS, WS_EX_CLIENTEDGE);
    list.AddColumn(L"KEY",0);
    list.AddColumn(L"VALUE",1);
    split.SetSplitterPanes(tree,list);

What parameters will have the event function?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

暮色兮凉城 2025-01-02 05:03:49

TVN_SELCHANGED 通知代码

通知树视图控件的父窗口该选择已
从一项更改为另一项。此通知代码已发送至
WM_NOTIFY 消息的形式。

也就是说,当您单击某个项目并更改树视图控件的选择时,该控件会向其父级(例如您的对话框)发送带有代码 TVN_SELCHANGEDWM_NOTIFY 消息,并且您可以应该处理它。

TVN_SELCHANGED notification code:

Notifies a tree-view control's parent window that the selection has
changed from one item to another. This notification code is sent in
the form of a WM_NOTIFY message.

That is, when you click an item and it changes selection of treeview control, the control sends WM_NOTIFY message to its parent (such as your dialog) with code TVN_SELCHANGED and you are supposed to handle it.

青芜 2025-01-02 05:03:49

在你的 mainfrm.h

// ...
CTreeViewCtrlEx m_treeview;

// ...
BEGIN_MSG_MAP(CMainFrame)
// ...
NOTIFY_CODE_HANDLER(TVN_SELCHANGED, OnTVSelChanged)
END_MSG_MAP()

// mainfrm.h or mainfrm.cpp
LRESULT CMainFrame::OnTVSelChanged(int idCtrl, LPNMHDR pnmh, BOOL& bHandled)
{
  //...
}

In your mainfrm.h

// ...
CTreeViewCtrlEx m_treeview;

// ...
BEGIN_MSG_MAP(CMainFrame)
// ...
NOTIFY_CODE_HANDLER(TVN_SELCHANGED, OnTVSelChanged)
END_MSG_MAP()

and

// mainfrm.h or mainfrm.cpp
LRESULT CMainFrame::OnTVSelChanged(int idCtrl, LPNMHDR pnmh, BOOL& bHandled)
{
  //...
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文