我的控件ID是IDC_LIST_CONNECT使用WM_NOTIFY能够捕获控件的ID但是我想获取,选中列表的事件或者是按钮按下的消息LVN_KEYDOWN.
尝试了下WM_NOTIFY消息一直有,但是WPARAM发来的一直是控件IDIDC_LIST_CONNECT。那我想事LVN_KEYDOWN消息应该不是通过WPARAM传递的,就想应该用LPARAM传递的LPARAM传递结构是typedef struct tagNMHDR {
//发送消息的控件的句柄,相当于原WM_COMMAND消息的lParam
HWND hwndFrom;
//发送消息的控件的ID,相当于原WM_COMMAND消息的wParam(LOWORD)
UINT idFrom;
//通知码,也就是发送的具体消息,相当于原WM_COMMAND消息的wParam(HIWORD)通知码
UINT code;
} NMHDR;
测试了下 NMHDR* p = (NMHDR*)lParam;
unsigned int a = p->code;
if( a == LVN_KEYDOWN )
{
EnableWindow( GetDlgItem( hDlg, IDOK ) ,TRUE );
}一直没有收到LVN_KEYDOWN 消息 ,有经验的朋友提示下,3Q
尝试了下WM_NOTIFY消息一直有,但是WPARAM发来的一直是控件IDIDC_LIST_CONNECT。那我想事LVN_KEYDOWN消息应该不是通过WPARAM传递的,就想应该用LPARAM传递的LPARAM传递结构是typedef struct tagNMHDR {
//发送消息的控件的句柄,相当于原WM_COMMAND消息的lParam
HWND hwndFrom;
//发送消息的控件的ID,相当于原WM_COMMAND消息的wParam(LOWORD)
UINT idFrom;
//通知码,也就是发送的具体消息,相当于原WM_COMMAND消息的wParam(HIWORD)通知码
UINT code;
} NMHDR;
测试了下 NMHDR* p = (NMHDR*)lParam;
unsigned int a = p->code;
if( a == LVN_KEYDOWN )
{
EnableWindow( GetDlgItem( hDlg, IDOK ) ,TRUE );
}一直没有收到LVN_KEYDOWN 消息 ,有经验的朋友提示下,3Q
解决方案 »
- 菜鸟提问:VC++ 怎样实现一个图片浏览的功能希望高手门给我一个例子..........
- 用vc如何做类似Google的自动感应的字符提示框
- 程序中RTP/RTCP丢包率统计结果和实际不符!急!
- 我新建工程时选择了windows sockets设置。由于某些原因我必须把它删掉,请问有谁知道如何去掉啊?
- 访问数据库出现"未指定的错误"
- 如何学习vc
- 用ExitWindowsEx 定时关机,在win2000porfessional下好用,在win2000server下报错cmd.exe
- 如何得到设备名?
- 如何在VC中启动帮助文件
- 在VC中如何调用COM组件?
- FindResource 当资源为 icon时,返回值为 NULL???
- MFC 编程时有的.h文件和.cpp不对应?
我刚才在我的CListCtrl子类里面试了半天也不行,后来才发现应该重载父窗口的OnNotify啊
NMHDR* p = (NMHDR*)lParam;
unsigned int a = p->code;p->code是有不同返回值的
在我做KEYDOWN的时候,p->code返回的是0xfffffff0但是LVN_KEYDOWN 是0xffffff65,怀疑是不是win32下捕捉list control不是LVN_KEYDOWN这个消息啊,
当疼,实在不行自己写个宏算了。。
触发了这个NM_RELEASEDCAPTURE消息,这个是释放鼠标按钮的消息,就是无论左键还是右键UP的时候触发。消息主要定义在commctrl.h中,//====== Generic WM_NOTIFY notification codes =================================
NM_定义从这里开始。lvn_从这里开始
#define LVN_ITEMCHANGING (LVN_FIRST-0)。网上的资料介绍的比较少,mfc和win32触发的消息还是有略微的不同的。用到的朋友注意一下。