控件的WM_NOTIFY消息映射

全面解读WM_NOTIFY     摘要:控件通知消息有很多种,但是有一种是很常用,但是又不是很容易掌握的,那就是WM_NOTIFY,我试着对此做一下比较全面的论述,有不对的地方,还希望各路大虾批评指正。    控件通知消息    在《深度解析VC中的消息(上)》中,我们提到了消息的分类有3种:窗口消息、命令消息和控件通知消息,我们这里要谈的是最后一种:控件通知消息。    控件通知消息,是指这样一种消息,一个窗口内的子 阅读详情

控件的WM_NOTIFY消息映射

前几天,我尝试在CListCtrl中映射HDN_BEGINTRACK这个WM_NOTIFY消息。

轻松的用ClassWizard建立了消息映射,几秒中完成了所有工作之后发生的事情却让我很长时间轻松不起来了。

消息根本映射不上!!

BEGIN_MESSAGE_MAP(CPrevList, CListCtrl)
 //{{AFX_MSG_MAP(CPrevList)
 ON_NOTIFY_REFLECT(HDN_BEGINTRACK, OnBegintrack)
  //}}AFX_MSG_MAP
END_MESSAGE_MAP()

void CPrevList::OnBegintrack(NMHDR* pNMHDR, LRESULT* pResult)
{
 HD_NOTIFY *phdn = (HD_NOTIFY *) pNMHDR;
 // TODO: Add your control notification handler code here
 AfxMessageBox("总算映射上了!");//程序始终执行不到这个位置
 *pResult = 0;
}

此后我在这个问题上苦恼了很久,最后发现了两种解决办法

1,对消息映射两次,分别是XXXXW和XXXXA

BEGIN_MESSAGE_MAP(CPrevList, CListCtrl)
//{{AFX_MSG_MAP(CAdvHeaderCtrl)
// NOTE - the ClassWizard will add and remove mapping macros here.
//}}AFX_MSG_MAP
ON_NOTIFY_REFLECT(HDN_BEGINTRACKW, OnBeginTrack)
ON_NOTIFY_REFLECT(HDN_BEGINTRACKA, OnBeginTrack)
END_MESSAGE_MAP()

2,重载CWnd::OnNotify虚函数在其中对XXXXW和XXXXA分别处理

BOOL CPrevList::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult)
{
 switch (((NMHDR*)lParam)->code)
 {
 case HDN_BEGINTRACKW:
 case HDN_BEGINTRACKA:

   AfxMessageBox("终于映射上了");

  }

  return CListCtrl::OnNotify(wParam, lParam, pResult);
}


反观问题的产生完全是操作系统惹的祸,我的操作系统是WIN2K(VC6无SP)

WIN2K使用Wide Char,就是常说的UNICODE,在WIN2K下消息对应着WM_XXXXW

而早期WIN9X使用ASCII,消息为WM_XXXXA。

要想使用某些控件的WM_NOTIFY消息就必须自己做类似上面的处理……

【消息反射】WM_NOTIFY与消息反射【总结】 从Windows 95和Windows NT 3.51版开始 windows提供了很多新型空间比如动画 热键 列表视图 进度条 滑尺 选装按钮 标签 树形视图 这些新型空间的出现 WM_COMMAND消息通知已经不能完成任务了 因为WM_COMMAND消息wParam The high-order word specifies the notification code 阅读详情

相关推荐

procyon-decompile-xxxxa.zip

java -jar procyon-decompiler-0.5.36.jar xxx.class -o filename

HEAP: Free Heap block XXXX modified at XXXX after it was freed

*本文旨在解决在调试过程中遇到如下问题时的解决办法: HEAP: Free Heap block XXXXA modified at XXXXB after it was freed 意思是:已经释放的内存地址A,在B地址处的值被改变(A和B都处于被释放的内存段内),即很可能出现了野指针,而很多情况下你会说,我的每个new和delete都是成对的,在delete后将指针赋值为NULL。但是

ylj135cool的博客 201万+

monkey-chunkey:wwwww

猴子矮胖的应用程序 Monkey Chunky App旨在帮助早期读者练习阅读单词。 用户可以输入任何单词,应用程序会将其分解为语音块。 用户可以点击语音块,以听见组成单词的电话的相应声音。

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

1.解压 tar zxvf wmsdk_bundle-xxxxxxx cd wmsdk_bundle-xxxxxxx 2. make installpkgs 3.安装gcc-arm-none-eabi http://blog.youkuaiyun.com/al86866365/article/details/47424727 4.编译测试 make boot2 5.下载 Error:

al86866365的专栏 87万+

XXXX.rar_Xxxx518_png pron_pronxxxx_xxxx_xxxx pron

应用于手机上的英语翻译程序,联网使用非常方便,程序比较简单,希望对新手有帮助

python 携程登陆_Python 学习练习之用户登录接口

目的:用python实现简单用户注册,登陆,加黑功能,放个流程图吧。以下内容仅为练习 执行流程:[root@zabbix login]# python user_login.pyusername:tompassword:123456Are you want to register ? [y/n]yRegister successful,Please relogin ![root@zabbix lo...

weixin_28679635的博客 518

MFC界面编程 之 全面解读WM_NOTIFY

VC中的消息的分类有3种:窗口消息、命令消息和控件通知消息,我们这里要谈的是最后一种:控件通知消息。   控件通知消息,是指这样一种消息,一个窗口内的子控件发生了一些事情,需要通知父窗口。通知消息只适用于标准的窗口控件如按钮、列表框、组合框、编辑框,以及Windows公共控件如树

netanimals的专栏 4335

5分钟搞定kkFileView 4.4.0 Docker部署:小白也能上手的完整配置流程

本文提供了一份针对kkFileView 4.4.0版本的Docker部署完整指南。通过使用预构建的Docker镜像,即使是新手也能在5分钟内完成文件预览服务的搭建,涵盖从环境准备、镜像拉取、容器启动到服务验证的全流程,并分享了进阶配置与生产环境优化建议。

mango的博客 526

win32消息映射10-处理WM_COMMAND和WM_NOTIFY消息

9 处理WM_COMMAND和WM_NOTIFY消息 在标准的windows消息里,存在两类消息:1.是操作系统发送给窗口的消息;2.是窗口之间用作通讯的消息。我们前面举例的消息,都是windows操作系统发送给窗口的消息,但窗口之间通讯的消息,却一直没有举例,原因在于,窗口之间通讯的消息,其格式有些复杂。若一开始就将这些复杂性引入到介绍消息映射的原理上,这会加大对原理理解的难度。万丈高楼平地起...

Racer_y的专栏 1337

SAP物料分类账实战:从配置到月结的关键步骤(基于S/4HANA1909)

本文详细解析了在SAP S/4HANA 1909系统中,物料分类账从基础配置到月结操作的全流程。作为成本核算的核心,物料分类账通过多级价格确定实现实际成本核算,关键步骤包括激活物料分类账、配置自动过账科目(OBYC)、运行CKMLCP进行差异分摊与结算。文章旨在帮助财务与成本会计人员确保成本差异的准确归集与分摊,顺利完成月结。

weixin_28314575的博客 196

android+音乐节拍检测,科学网—音乐节拍跟踪或音乐节拍检测软件,LilyBeats alpha - 石自强的博文...

我们设计并实现了一种用于实时跟踪音乐节拍的软件。该软件可以用于智能灯方案提供商,为其提供灯光随音乐变化的核心解决方案。首先给出软件的下载链接:或者音乐节拍是乐曲中表示固定单位时值和强弱规律的组织形式,亦称拍子。它有两个特性:周期性和连续性。节拍周期性表现为节拍结构,是乐曲中周期性出现的节奏序列。节拍连续性表现为音乐的平均速度,其单位为bpm(beat per minute每分钟音乐节拍的个数)。音...

weixin_39571403的博客 1401

WM_NOTIFY消息

转自:http://blog.sina.com.cn/s/blog_6e9095270100n4ec.html WM_NOTIFY消息  (2006-07-11 09:47:43) 标签:  杂谈 分类: MSN搬家   当自定义控件中发生了特殊的事件需要通知父窗口时,可以向父窗口发送消息,最简单的方法就是直接向父窗口直接

huang578141611的专栏 499

Visual Studio 2022 社区版安装指南:从下载到配置的完整流程

本文详细介绍了Visual Studio 2022社区版的完整安装与配置流程,包括系统要求检查、官方下载步骤、工作负载选择、安装位置配置等关键环节。作为微软推出的免费集成开发环境,VS2022社区版支持多种编程语言,适合个人开发者和小型团队使用。文章还提供了常见问题解决和性能优化技巧,帮助用户高效完成开发环境搭建。

weixin_28829339的博客 885

WM_NOTIFY的使用

切记:此消息只发给它的父窗口,再要发给父窗口的父窗口或主框架窗口等上级窗口,必须在DefWindowProc中用如下语句进行转发     switch(message)     {         case WM_NOTIFY:              theApp.GetMainFrame()->SendNotifyMessage(message, wParam, lParam);

积累点滴,保持自我 1471

RC4加密算法详解

RC4(也称为 Rivest Cipher 4)是流密码的一种形式,流密码逐字节操作数据流。RC4 流密码是使用最广泛的流密码之一,它通过算法一次一个字节地加密消息,简单并且操作速度快。RC4是一种在电子信息领域加密的技术手段,用于无线通信网络,是一种电子密码,只有经过授权的用户才能享受该服务,使用 64 位或 128 位密钥大小。它通常用于安全套接层 (SSL)、传输层安全 (TLS) 等应用,也用于 IEEE 802.11 无线 LAN 标准。在存储大量的信息时,RC4展现出它的实用性,面对大量的数据,

weixin_43211186的博客 1万+

从示波器波形看懂死区:手把手教你调ST MCU的PWM,避免三相桥直通炸管

本文详细解析了如何通过示波器波形判断PWM死区时间,并手把手教你调整STM32高级定时器寄存器,避免三相逆变桥直通炸管。文章涵盖死区时间的本质与风险、STM32配置详解、示波器调试技巧及FOC系统中的特殊考量,帮助工程师优化电机驱动性能与安全性。

weixin_30315723的博客 734

关于通知消息

控件通知消息         在《深度解析VC中的消息(上)》中,我们提到了消息的分类有3种:窗口消息、命令消息和控件通知消息,我们这里要谈的是最后一种:控件通知消息。         控件通知消息,是指这样一种消息,一个窗口内的子控件发生了一些事情,需要通知父窗口。通知消息只适用于标准的窗口控件如按钮、列表框、组合框、编辑框,以及Windows公共控件如树状视图、列表视图等。例如,单击或双击一个

快乐天堂 1647

nicegui 可视化扩展库

总体来说,这段代码使用nicegui库创建了一个具有一些基本UI元素的界面,并使用扩展库来实现更多的布局功能。这段代码使用了nicegui库创建了一个UI界面。函数导入了一个扩展库,用于实现更多的布局功能。然后又使用了一个行布局,并添加了两个按钮(在UI界面中,使用了一个卡片(在行布局中依次添加了一个标签(在卡片中使用了一个头像(接下来使用了一个行布局(设置了背景颜色为绿色。设置了居中对齐和红色。设置了间距和字体大小。设置了居中对齐和样式。设置了按钮的对齐方式。

东方佑 1022

MFC:WM_NOTIFY的使用方法及详细介绍

消息的分类有3种:窗口消息、命令消息和控件通知消息,我们这里要谈的是最后一种:控件通知消息。 控件通知消息,是指这样一种消息,一个窗口内的子控件发生了一些事情,需要通知父窗口。通知消息只适用于标准的窗口控件如按钮、列表框、组合框、编辑框,以及Windows公共控件如树状视图、列表视图等。例如,单击或双击一个控件、在控件中选择部分文本、操作控件的滚动条都会产生通知消息。  控件通知消息有

Mirage520的专栏 1827

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

关于WM_NOTIFY的使用方法

WM_NOTIFY在WIN32中得到大量的应用,同时也是随着CommControl的出现WM_NOTIFY成为了CommControl的基本消息。可以这样说CommControl的所有的新增特性都通过WM_NOTIFY来表达。同时WM_NOTIFY也为CommControl的操作带来了一致性。 WM_NOTIFY消息中的参数如下: idCtrl = (int) wParam; pnmh

电脑翻译官的专栏 1711

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

WM_NOTIFY

VC中的消息的分类有3种:窗口消息、命令消息和控件通知消息,我们这里要谈的是最后一种:控件通知消息。   控件通知消息,是指这样一种消息,一个窗口内的子控件发生了一些事情,需要通知父窗口。通知消息只适用于标准的窗口控件如按钮、列表框、组合框、编辑框,以及Windows公共控件如树状视图、列表视图等。例如,单击或双击一个控件、在控件中选择部分文本、操作控件的滚动条都会产生通知消息。 她类似于命令消

WUYUAN2011WOAINI的专栏 732

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

WM_NOTIFY消息的讲解

这个技术文章介绍了关于新WM_NOTIFY消息, 还描述了建议使用的一种在你的MFC应用程序中处理WM_NOTIFY消息的方法。 Windows 3.x 的 通告消息 在Windows 3.x下,控件通过发送一个消息给它的父窗口来告知诸如目标点击,内容的变化与选中,控件北京绘制等等之类的事件。简单的通告消息以特殊的WM_COMMAND消息形式来发送,通知码(如BN_CLICKED)与控

hkwlg1314的博客 2150

解读WM_NOTIFY消息中的NMHDR结构

NMHDR、LPNMTREEVIEW、TVITEM结构体   树控制的数据结构  在使用树控制时需要了解两个个非常重要的数据结构TV_ITEM和TV_INSERTSTRUCT,前一个数据结构是用来表示树控制的树项信息,后一个数据结构是用来定义将树项增加到数据控制中所需要的数据内容。另外,还需要NM_TREEVIEW、 TV_DISPINFO和TV_HITTESTINFO三个数据结构,这几个数据

乱码涅磐的专栏 8566
上一篇: Windows函数错误处理
下一篇: C++字符串完全指南(2) - 各种字符串类- CRT类
普通网友
博客等级 码龄22年 1万+粉丝 3156原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值