使用CSplitterWnd切割窗口之后,在View类中使用CListCtrl Create了一个ListView

试图在ListView中获取Windows消息,发现怎么也捕获不到

使用vs2008添加鼠标消息默认使用NO_NOTIFY_REFLECT消息驱动

BEGIN_MESSAGE_MAP(CUnitView, CListView)

ON_WM_CREATE()

ON_WM_SIZE()

//ON_NOTIFY_REFLECT(NM_CLICK, &CUnitView::OnNMClick)

ON_NOTIFY(NM_CLICK, LIST_UNIT_VIEW, &CUnitView::OnNMClick)

END_MESSAGE_MAP()

如果需要发送消息给CListCtrl创建的ListView则必须用ON_NOTIFY消息,但发现这么写也收不到消息

#define ON_NOTIFY(wNotifyCode, id, memberFxn) \

{ WM_NOTIFY, (WORD)(int)wNotifyCode, (WORD)id, (WORD)id, AfxSigNotify_v, \

(AFX_PMSG) \

(static_cast< void (AFX_MSG_CALL CCmdTarget::*)(NMHDR*, LRESULT*) > \

(memberFxn)) },
参数id是一个WORD型也即unsigned short,是一个四字节的变量!!

#define LIST_UNIT_VIEW    0x00020000

如此,传入之后直接被截断成0!也即id传入了一个0的值,导致最终我的ListView收不到该鼠标消息!!!

最后把LIST_UNIT_VIEW定义为0x1000以内的立即解决了这个坑爹的问题!

ON_NOTIFY消息中的id坑了我一天相关推荐

  1. 分享一篇关于使用阿里云消息队列中遇到的坑

    相信很多小伙伴都在开发中使用过消息队列,尤其是高并发的情况,一般可以在缓存中操作数据,然后通过消息异步处理业务逻辑,操作数据库等. 本人所在的公司使用了阿里云的消息队列和RabbitMQ,据说使用阿里 ...

  2. mysql查询每个id的前10条数据_解决 MySQL 比如我要拉取一个消息表中用户id为1的前10条最新数据...

    我们都知道,各种主流的社交应用或者阅读应用,基本都有列表类视图,并且都有滑到底部加载更多这一功能, 对应后端就是分页拉取数据. 好处不言而喻,一般来说,这些数据项都是按时间倒序排列的,用户只关心最新的 ...

  3. 分布式消息队列的避坑指南

    在业务系统的开发当中,为了保障系统的高性能.高可用,基本都会使用分布式架构,采用消息队列将生产者(响应调用的服务)与消费者(发起调用的服务)进行解耦,让生产者服务和消费者服务可以并行处理更多的程序调用 ...

  4. Widget开发中遇到的坑

    1.在Manifest文件中声明 <receiver android:name=".receiver.GoldWidgetProvider"><intent-fi ...

  5. mysql master线程 fork_多线程中fork的坑

    多线程中fork的坑 问题所在 在写oj的时候,由于使用了线程池,并且在获取用户程序运行结果的时候使用的是管道进行子进程的标准输出的获取, 最后带来了一个问题,就是发现本来线程池有5个任务,最后调试信 ...

  6. 在html标签中写alert,文本不会写入页面,但会显示在alert()消息中。 JavaScript和HTML...

    我正在开发一个表单来收集一些信息.我在我的代码中设置了一些设置,当名字文本框更改(onchange)时,子标题( )将使用名字填充.文本不会写入页面,但会显示在alert()消息中. JavaScri ...

  7. 让你在 API 设计中少踩坑的实战分享

    本文来自作者 奔跑吧架构师 在 GitChat 上分享 「让你在 API 设计中少踩坑的实战分享」,「阅读原文」查看交流实录. 「文末高能」 编辑 | 哈比 在项目开发中,实际的编码只占用了整个项目不 ...

  8. 微信openid 服务器备案,微信生态中的 openId、unionID和业务系统中的ID

    在进行微信生态相关的开发的时候,经常会遇到一个术语:openID.openID 在微信生态下几乎无处不在:你想要识别用户身份?需要 openID 你需要给用户推送消息?需要 openID 除了 ope ...

  9. 记前端状态管理库Akita中的一个坑

    记状态管理库Akita中的一个坑 Akita是什么 Akita是一种基于RxJS的状态管理模式,它采用Flux中的多个数据存储和Redux中的不可变更新的思想,以及流数据的概念,来创建可观察的数据存储 ...

最新文章

  1. 最热开源无服务器函数:五大Fission架构参考
  2. 【跟着我们学Golang】之异常处理
  3. Simple File System
  4. 关于stm32 hal 库 iic 一直是 busy 问题
  5. ASP.NET MVC中使用AJAX(XMLHttpRequest、Microsoft AJAX Library......)
  6. python中统计单词出现的次数_python统计文章中单词出现次数实例
  7. 腾讯数据库RTOlt;30s,RPO=0高可用方案首次全景揭秘
  8. qt 快速按行读取文件_这是知识点之Linux下分割文件并保留文件头
  9. Dapr + .NET 实战(十二)服务调用之GRPC
  10. crawler py
  11. django form 介绍
  12. 【前台技术】-播放音频
  13. 谨以此送给所有单身的MM
  14. 中国AI公司会议室取名简史
  15. H.264/AVC 的各大主流编解码器
  16. java 发送 邮件通知 HTML模板 个性邮件 (十分钟内完成集成与调试)
  17. HTML5视频与字幕使用的介绍
  18. AutodeskADN 微信公众号和我个人邮箱
  19. 关于卫星伪距残差的理解
  20. 说透APP稳定性测试

热门文章

  1. 分布式架构知识体系必读
  2. Spring 面试问题 TOP 50,你会哪些?
  3. golang orm 框架之 gorm
  4. SpringBoot非官方教程 | 第二篇:Spring Boot配置文件详解
  5. Spring Cloud构建微服务架构:服务消费(基础)【Dalston版】
  6. 【Linux - mysql】怎么修改数据库编码
  7. php实现返回界面,PHP实现模仿socket请求返回页面的方法
  8. 又一个高等级数据中心着火了!
  9. UPS 异常停机案例分析
  10. js luhn算法_不会飞的鸟