代码部分摘录自“天上的猩猩的专栏”:https://blog.csdn.net/qq_23992597/article/details/51006920#commentsedit

目的:自定义修改mfc窗口的FileView中已有的树结构,而不是添加的树控件

实现的效果如图:点击“地图”后弹出框提示,点击响应效果与控件的响应事件类似

首先需要重写CtreeContrl:

① 在CViewTree类的.h头文件中添加代码:

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

③  CViewTree类的cpp源文件中实现该事件,代码如下:

#include "stdafx.h"
#include "ViewTree.h"#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif/
// CViewTreeCViewTree::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的点击事件

MFC vc++ 中CTreeContrl如何自定义实现鼠标单击或双击响应事件 ,即重写类似于控件的响应事件或消息相关推荐

  1. MFC中picture控件如何响应鼠标移动?

    MFC中picture控件如何响应鼠标移动? 2011-08-21 21:23 轻若惊鸿 | 浏览 3354 次 硬件网络 我将一个picture控件的属性中的Notify勾上了,但是只能响应鼠标按键 ...

  2. MFC动态创建控件并响应事件代码实现过程

    MFC动态创建控件以及响应动态创建的控件的事件的实现方法如下. 1.创建对象     用new进行动态创建一个对象.然后调用Create函数创建窗口,在函数的父窗口参数中传入this或者用AfxGet ...

  3. C#中combobox 控件属性、事件、方法

    http://blog.csdn.net/baggio7095586/article/details/6150075 一 .combobox 属性.事件.方法 公共属性 名称  说明 Accessib ...

  4. c#在WinForm中重写ProgressBar控件(带%的显示)

    c#在WinForm中重写ProgressBar控件(带%的显示) 2009-05-14 13:13 #region 定义textProgressBar控件的类 namespace csPublish ...

  5. 陈年佳酿之 - Winform ListView 控件 double click 事件中获取选中的row与column

    背景 最近收到了一个关于以前项目的维护请求,那时的楼主还是刚刚工作的小青年~~~ 项目之前使用的是.net/winform.今天重新打开代码,看着之前在FrameWork2.0下面的代码, 满满的回忆 ...

  6. javascript 鼠标单击和双击事件并存的实现方法

    http://www.jbxue.com/article/8033.html 本文介绍下实现javascript鼠标单击与双击事件并存的方法,经常需要为一个链接注册双击事件,或让一个按钮或者其他元素上 ...

  7. 解决红旗linux6SP2 鼠标单击变双击的问题

    红旗linux6SP2在Vmware下出现问题: 1. 鼠标单击变双击的问题 2.屏幕显示过大. 第二个问题解决方法: 分辨修改为: 800*600 就可以了. 第一个问题没有找到方法: 但可以用Vi ...

  8. video 元素自定义 controls 控件以及常用事件、方法

    video 元素自定义 controls 控件以及常用事件 属性参考 隐藏控件 隐藏播放器右下角三个点 自定义播放速度 阻止默认的全屏和暂停 自定义全屏播放 常用事件 常用属性和方法 <vide ...

  9. QT实现控件不响应鼠标点击事件

    QT中很多控件都有鼠标点击的事件响应,比如QPushButton,QRadioButton.有时候我们想要实现的是:当鼠标点击控件时,不会产生响应事件.其中的一种方法是使用Qt::WA_Transpa ...

最新文章

  1. 极客新闻——08、高效团队善用的3个敏捷方法
  2. 【系列5】使用Dockerfile创建带weblogic的Centos Docker镜像
  3. linux需要的GLIBCXX版本,GCC版本中没有GLIBCXX_3.4.15解决
  4. Java异常处理教程(包含示例和最佳实践)
  5. 使用python开发网页游戏_不敢想!不敢想!我用Python自动玩转2048游戏
  6. 一个技术开发者经常访问的网站
  7. Docker 私有仓库搭建
  8. docker mysql 主从配置
  9. [JAVA] TicTacToe实现Socket通信(一)
  10. Python压缩解压–gzip
  11. MD5加密不可逆的原因
  12. 简单说明什么是网络的DMZ区域
  13. Gl计算机语言,计算机编程和编程语言 - osc_bkg5rgl1的个人空间 - OSCHINA - 中文开源技术交流社区...
  14. HCNE实验操作视频   迅雷下载
  15. HTML+CSS+JS实现 ❤️3D立体魔方小游戏❤️
  16. 看图说话之二叉树的前序,中序,后序,层次遍历方式
  17. android PorterDuffXfermode ,PorterDuff.Mode 使用 以及Porter-Duff规则详解
  18. php调用nexmo发送短信,在 Laravel 中 “规范” 的开发短信验证码发送功能
  19. 数据可视化--物流大数据服务平台
  20. KSQL DB 学习笔记2

热门文章

  1. vba传值调用_vba中OnAction属性指定宏名时如何传递参数?
  2. 使用 /sys 文件系统访问 Linux 内核
  3. 【毕业设计】基于STM32的空气质量检测仪 - 环境检测盒子 - 单片机 物联网
  4. 博实乐教育增收不增利:全年净利润下降超三成,杨惠妍持股77%
  5. 移动端图形化报表界面设计_移动端几种常见的界面设计布局
  6. 微信语音麦克风静音_微信正在语音通话的时候我按了静音,然后用手机看视频对方能听见吗?...
  7. 串口烧录android板子,ubuntu 串口工具minicom使用 及 dnw镜像烧录(主要针对Android210开发板)...
  8. 淘宝店铺装修详情页图片设计技巧及注意事项
  9. 计算机语言学与机器翻译,论计算机语言学之中机器翻译发展现状
  10. 中职 计算机网络教材,中等职业学校教学用书:计算机网络基础