ON_NOTIFY_REFLECT(NM_CUSTOMDRAW, &CMyListCtrl::OnNMCustomdraw)

ON_NOTIFY : Comes from a child control to the parent. This macro goes in the parent's message map.

ON_NOTIFY_REFLECT: Comes from a child control, but is "reflected" back to the child (by the parent)so the child can handle its own notification. This macro goes in the child's message map.

ON_NOTIFY_REFLECT_EX: Same as previous, except that the handler function returns a BOOL, indicating whether or not the message should be routed on to parent classes for possible handlers. Note   that   the   reflected   message   is   handled   before   the   notification   message.

我的理解就是一般情况下,ON_NOTIFY是子控件把消息发送给父窗口,由父窗口来处理消息,消息处理函数在父控件的类里面。

如果用了ON_NOTIFY_REFLECT反射,就是说这个消息由子窗口自己来处理

ON_NOTIFY_REFLECT_EX,你仔细观察的话的话会发现很多消息反射形如ON_COMMAND, ON_NOTIFY, ON_RANGE等等,它们都有个扩展形式ON_COMMAND_EX, ON_NOTIFY_EX, ON_RANGE_EX, 微软这么干有什么意图呢,就是这样的:如果你的ON_NOTIFY_REFLECT_EX(消息, 消息处理函数)中的第二个参数也就是消息处理函数的返回值是bool类型的,且返回值是TRUE,那么就是说这个消息会既发给子控件又发给父窗口,即又在子控件里处理该消息,又在父窗口里处理该消息,如果返回值是FLASE的话或者是其他类型的返回值的话,就只发给子控件了,这个时侯ON_NOTIFY_REFLECT_EX就相当于ON_NOTIFY_REFLECT。
ON_COMMAND_EX等同理。

OnCustomDraw的更多相关文章

  1. mfc ui3

    引用:http://www.cnblogs.com/rainbowzc/archive/2010/06/02/1749872.html 本文专题讨论VC中的界面美化,适用于具有中等VC水平的读者.读者 ...

  2. (转)使用Custom Draw实现ListCtrl的重绘

    使用Custom Draw实现ListCtrl的重绘   common control 4.7版本介绍了一个新的特性叫做Custom Draw,这个名字显得模糊不清,让人有点摸不着头脑,而且MSDN里 ...

  3. 改变ListCtrl某行的背景色或者字体颜色

    大家也许熟悉WM_NOTIFY,控件通过WM_NOTIFY向父窗口发送消息.在WM_NOTIFY消息体中,部分控件会发送NM_CUSTOMDRAW告诉父窗口自己需要绘图. 也可以反射NM_CUSTOM ...

  4. 在 Visual C++ 中开发自定义的绘图控件

    本文讨论的重点介于两者 之间 — 公共控件赋予您想要的大部分功能,但控件的外观并不是您想要的.例如,列表视图控件提供在许多视图风格中显示数据列表的方式 — 小图标.大图标.列表和详细列表(报告).然而 ...

  5. VC之美化界面(内容覆盖十分全面,经典)

    界面美化 摘要本文专题讨论VC中的界面美化,适用于具有中等VC水平的读者.读者最好具有以下VC基础: 1. 大致了解MFC框架的基本运作原理: 2. 熟悉Windows消息机制,熟悉MFC的消息映射和 ...

  6. TTreeView.OnCustomDrawItem

    TTreeNode *node; node = , "AAAA"); TreeView1->Items->AddChild(node, "aaa1" ...

  7. Devexpress VCL Build v2014 vol 14.2.5 发布

    和xe8 几乎同一天出来,但是目前官方不支持xe8. The following sections list all minor and major changes in DevExpress VCL ...

  8. 使用Custom Draw优雅的实现ListCtrl的重绘

    common control 4.7版本介绍了一个新的特性叫做Custom Draw,这个名字显得模糊不清,让人有点摸不着头脑,而且MSDN里也只给出了一些如风的解释和例子,没有谁告诉你你想知道的,和 ...

  9. Custom Draw 基础(转载)

    common control 4.7版本介绍了一个新的特性叫做Custom Draw,这个名字显得模糊不清,让人有点摸不着头脑,而且MSDN里也只给出了一些如风的解释和例子,没有谁告诉你你想知道的,和 ...

随机推荐

  1. 记录一下Web开发环境搭建 Eclipse-Java EE 篇

    转自https://www.cnblogs.com/yangyxd/articles/5615965.html Web开发环境搭建 Eclipse-Java EE 篇 [原创内容,转载注名出处] 1. ...

  2. python OS模块 对操作系统接口调用

    os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径os.chdir("dirname") 改变当前脚本工作目录:相当于shell下cdos.curdir ...

  3. Struts2标签:s:password 修改时密码为空的问题

    s:password 有个属性showPassword默认为false,想要密码显示,设置标签属性 showPassword="true" 即可.

  4. Mysql 5.6主从同步配置

    主从同步,本质是利用数据库日志,将主库数据复制一份到从库,本质上是使用了数据复制技术. 本文概要 主库的基本配置 从库的基本配置 完全同步的步骤 注意事项 工作原理 1. 主库的基本配置 做两件事:启 ...

  5. Pandas中DataFrame数据合并、连接(concat、merge、join)之merge

    二.merge:通过键拼接列 类似于关系型数据库的连接方式,可以根据一个或多个键将不同的DatFrame连接起来. 该函数的典型应用场景是,针对同一个主键存在两张不同字段的表,根据主键整合到一张表里面 ...

  6. 把task加入websocket服务端程序

    服务端代码 <?php //task任务要实现两个方法onfinish ontask //还要设置worker_num date_default_timezone_set("PRC&q ...

  7. Java-JDBCUtil工具类

    import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import ja ...

  8. Elasticsearch:运用shard filtering来控制索引分配给哪个节点

    在我们的实际部署中,我们的各个node(节点)的能力是不一样的.比如有的节点的计算能力比较强,而且配有高性能的存储,速度也比较快,同时我们可能有一些node的能力稍微差一点,比如计算能力及存储器的速度 ...

  9. Vue: 购物车数量加减按钮

    效果图: HTML: <div class="label"> <p class="buy_num">购买数量</p> < ...

  10. [Python自学] day-16 (JS、作用域、DOM、事件)

    一.JS中的三种函数 1.普通函数 function func(){ console.log("Hello World"); } func() 2.匿名函数 setInterval ...