VC中CTreeContrl实现响应单击或双击事件
2016-03-29 16:22
465 查看
首先需要重写CtreeContrl,然后在.h中添加
.h文件
以上就实现了ctreecontrl的单击事件以及双击事件
afx_msg void OnDblClkTree(NMHDR* pNMHDR, LRESULT* pResult);//双击事件 afx_msg void OnClkTree(NMHDR* pNMHDR, LRESULT* pResult);//单击事件
.h文件
#pragma once ///////////////////////////////////////////////////////////////////////////// // CViewTree 窗口 class CViewTree : public CTreeCtrl { // 构造 public: CViewTree(); // 重写 protected: virtual BOOL OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult); // 实现 public: virtual ~CViewTree(); afx_msg void OnDblClkTree(NMHDR* pNMHDR, LRESULT* pResult); afx_msg void OnClkTree(NMHDR* pNMHDR, LRESULT* pResult); protected: DECLARE_MESSAGE_MAP() };.cpp文件
#include "stdafx.h" #include "ViewTree.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CViewTree CViewTree::CViewTree() { } CViewTree::~CViewTree() { } BEGIN_MESSAGE_MAP(CViewTree, CTreeCtrl) ON_NOTIFY_REFLECT(NM_DBLCLK, &CViewTree::OnDblClkTree) ON_NOTIFY_REFLECT(NM_CLICK, &CViewTree::OnClkTree) END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CViewTree 消息处理程序 BOOL CViewTree::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult) { BOOL bRes = CTreeCtrl::OnNotify(wParam, lParam, pResult); NMHDR* pNMHDR = (NMHDR*)lParam; ASSERT(pNMHDR != NULL); if (pNMHDR && pNMHDR->code == TTN_SHOW && GetToolTips() != NULL) { GetToolTips()->SetWindowPos(&wndTop, -1, -1, -1, -1, SWP_NOMOVE | SWP_NOACTIVATE | SWP_NOSIZE); } return bRes; } void CViewTree::OnDblClkTree(NMHDR* pNMHDR, LRESULT* pResult) { HTREEITEM hTreeItem = GetSelectedItem(); //以GetItemText()函数为例: CString S1 = GetItemText(hTreeItem); AfxMessageBox("You have selected "+S1); *pResult = 0; } void CViewTree::OnClkTree(NMHDR* pNMHDR, LRESULT* pResult) { HTREEITEM hTreeItem = GetSelectedItem(); //以GetItemText()函数为例: CString S1 = GetItemText(hTreeItem); AfxMessageBox("You have selected "+S1); *pResult = 0; }
以上就实现了ctreecontrl的单击事件以及双击事件
相关文章推荐
- HDU 5322 NTT与分治
- dijkstra算法
- cvFindContours 提取外轮廓
- 如何清理mac系统垃圾
- Xamarin 判断颜色值得相近程度
- 代码中特殊的注释技术---TODO、FIXME和XXX的用处
- 次方求模(快速幂算法) nyoj 102
- Java 使用 Redis
- Spring+Jersey+Hibernate+MySQL+HTML实现用户信息增删改查案例(附Jersey单元测试)
- gulp详细入门教程
- mysql:sql行列转换
- spring整合struts2
- 海洋影音盒 V 2.0
- Zhejiang university----To Fill or Not to Fill
- LeetCode16. 3Sum Closest
- linux中共享库(动态链接库)的延迟载入
- Excel的数据类型转换方法
- Ajax异步上传文件
- 快速提升Mac运行速度方法—CleanMyMac轻松搞定
- 51Nod 算法马拉松12 移数博弈