我在测列表视图控件的时候检测WM_NOTIFY消息的时候,可以检测到NM_CLICK,NM_DBCLICK,NM_RCLICK,NM_RDBCLICK消息,但是检测到NM_KEYDOWN消息的时候却一直检测不到,后来查了一下值发现按键按下的消息的值是-155,但是SDK里面定义的NM_KEYDOWN宏的值是-15,所以我把NM_KEYDOWN-140后就能检测到按键消息了。但是NM_RETURN却是怎么也检测不到的,这是为什么,有什么办法呀?
我的测试代码如下:
case WM_NOTIFY:
if(LOWORD(wParam)==IDC_LIST1)
{
switch((LPNMHDR)lParam->code)
{
case NM_CLICK:
MessageBox(NULL,"NM_CLICK Done","INFO",MB_OK);
break;
case NM_DBCLICK:
MessageBox(NULL,"NM_DBCLICK Done","INFO",MB_OK);
break;
case NM_RCLICK:
MessageBox(NULL,"NM_RCLICK Done","INFO",MB_OK);
break;
case NM_RDBCLICK:
MessageBox(NULL,"NM_CLICK Done","INFO",MB_OK);
break;
case NM_KEYDOWN-140:
{
char Get[10];
sprint(Get,"%d",LOWORD(lParam));
MessageBox(NULL,Get,"INFO",MB_OK);
}
break;
case NM_RETURN:
MessageBox(NULL,"NM_RETURN Done","INFO",MB_OK);
break;
}
}请问我这样做对吗?为什么会检测不到NM_RETURN消息呢?
如果不是这样做那该如何获取列表视图控件的NOTIFY消息呢?
break;