zoukankan      html  css  js  c++  java
  • 分析与理解通知消息WM_NOTIFY

    1、问题的提出:

    在Windows3.x中,不存在WM_NOTIFY消息,控制子窗口的通知消息同菜单的命令消息及加速键消息一样,均使用WM_COMMAND来发送,此时,根据WM_COMMAND消息传递的做法,可知道含有如下的传递结构:

    wParam high-order : Notify Code :(如TTN_NEEDTEXT)
    wParam low-order : ControlID
    lParam : ControlHandle

    使用上述结构进行消息的传递时,如果一个通知消息有一些附加的消息需要发送时(如传递LVN_COLUMNCLICK时可能需要附加传送如点击的是那一列等信息),又或者需要获取鼠标双击的list control 的某一具体ITEM时,因为WM_COMMAND仅能传递如上的参数,故无法做到。

    2、解决办法

          通过把lParam指向某些特定结构体以附加更多的信息。

           以获取双击list control列表的某一具体项为例:

           假如wParam 的ControlID 为list control 的ID时候,lParam指向结构体:

    typedef struct tagNMLISTVIEW {
        NMHDR hdr;
        int iItem;
        int iSubItem;
        UINT uNewState;
        UINT uOldState;
        UINT uChanged;
        POINT ptAction;
        LPARAM lParam;
    } NMLISTVIEW, *LPNMLISTVIEW;

    这样,就实现了附加参数的传递,类似的做法在Windows3.x中随处可见。

    更多内容请看我的新博客  分析与理解通知消息-WM_NOTIFY 续

    请大家原谅我的宣传方式吧,一直喜欢自己有个个人博客,但个人博客坏处就是少人能交流问题,欢迎大家加我好友什么的,谢谢。

    点击这里给我发消息
  • 相关阅读:
    HDU5120
    POJ 1062
    POJ 1086
    BestCoder 1st Anniversary (HDU 5311)
    HDU 5284
    Dylans loves sequence(hdu5273)
    day65 作业
    第三次小组分享 猴子补丁
    day59 csrf auth
    day58 cookie session 中间件
  • 原文地址:https://www.cnblogs.com/charm/p/1814995.html
Copyright © 2011-2022 走看看