SDK中ListView鼠标响应函数

 ListView控件,在控件内点击鼠标,是不会产生IDC_LIST1之类的消息的,更加不会产生WM_LBUTTONDOWN等消息的。这个时候,对于鼠标的操作,我们就只有自己添加响应函数了。
首先,我们查看MSDN中关于ListView控件属性的设置函数:
void ListView_SetExtendedListViewStyleEx(tokyo hot n0643 HWND hwndLV, 菌瓶DWORD dwExMask, DWORD dwExStyle );
对于第三个参数,MSDN中给出的解释为  DWORD value that specifies the extended list-view control style. This parameter can be a combination of extended styles.简单来说,就是第三个参数为extended styles里面的一个或者多个值
 
我们继续查看关于extended styles.
 对路网我们看到里面有很多值,发现下面有一个LVS_EX_TWOCLICKACTIVATE。就是当双击的时候会发送一个LVN_ITEMACTIVATE消息给父窗口。到这里,似乎到了入口,但是很
快,经过实践发现,这个LVN_ITEMACTIVATE是不能直接响应的,即使是在WM_COMMAND里面也是无法响应的。

那么,我们继续往下面看。
通过MSDN查看这个消息,我们发现MSDN给出的解释为:铝钉机Sent by a list-view control whe
n the user activates an item. This notification is sent in the form of a WM_NOTIFY message.
 这个消息是以WM_NOTIFY发送给父窗口的。这个消息却是能在消息响应函数中直接读取的。这就好办了。

这个时候,又有一个问题出现了,我们双击发送的 LVS_EX_TWOCLICKACTIVATE消息,与WM_NOTIFY消息有什么关系了??
我们无从得知,只有继续查看MSDN了。
很快,我们到这个消息,MSDN给出的解释如下:
开放info共享平台#if (_WIN32_IE >= 0x0400) 
    lpnmia = (LPNMITEMACTIVATE)lParam;
#else 
    lpnm = (LPNMHDR)lParam; 
#endif
很明显,对于我们有用的只有一句:lpnmia = (LPNMITEMACTIVATE)lParam; 
继续查关于LPNMITEMACTIVATE 的信息,很容易就在MSDN中到了如下的定义:
typedef struct tagNMITEMACTIVATE

    NMHDR hdr; 
    int iItem; 
    int iSubItem; 
    UINT uNewState; 
    UINT uOldState; 
    UINT uChanged; 
    POINT ptAction; 
    LPARAM lParam; 
    UINT uKeyFlags; 
 } NMITEMACTIVATE, FAR *LPNMITEMACTIVATE; 

浮游生物网经过查看,我们发现,只有第一个成员NMHDR hdr对我们有作用, 继续查看关于这个成员的内容:
typedef struct tagNMHDR 

    HWND hwndFrom; 
    UINT idFrom; 
    UINT code; 
} NMHDR; 

关于第三个成员,MSDN给出的解释为: Notification code. This member can be a control-specific notification code or it can be one of the common notification codes. 
翻译过来,就是:通知代码。这个成员可以控制特定通知代码或它可以是一个普通的通知编码。
特定的通知代码,不就是我们所发送给父窗口的LVS_EX_TWOCLICKACTIVATE消息 吗??
到这里,我们的资料就算寻完毕了。
最后,给消息添加处理代码:
 case WM_NOTIFY : 
     if(((LPNMITEMACTIVATE)lParam)-&de== LVN_ITEMACTIVATE)
         MessageBox(hWnd,"双击了ListView控件里的内容","左键双击",0);
     break; 
经过测试,发现成功,一切ok!都这里,我们的鼠标响应就全部做完了。其他的,自己美化美化就行了。
这是我个人总结的一点经验,希望能够对大家有所帮助。
-
---百度知道:郝在益。

本文发布于:2024-09-21 17:48:13,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/161290.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:消息   鼠标   控件   成员   代码   继续
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议