列表框通知

list box notifications

本文关键字:通知 列表      更新时间:2023-10-16

我有一个带有两个控件的对话框:树视图列表框。我的对话框也有消息处理程序。

 case WM_NOTIFY:
        {  
          switch(LOWORD(wParam)) 
            {
                case IDC_LIST1: //we NEVER comes here
                      if(((LPNMHDR)lParam)->code == NM_CLICK)
                      {
                          //do some work; 
                          return (INT_PTR)TRUE; 
                      }
                      break; 
                case IDC_TREE1: 
                      if(((LPNMHDR)lParam)->code == NM_DBLCLK)
                      {
                         //do some work;
                         return (INT_PTR)TRUE;  
                      }
                      break;
            }
        }
        break;

所以,我不明白为什么来自树框的通知成功地来了,但来自列表框的通知从来没有来过,尽管事实上在列表框的属性中,"控制"Notify值设置为TRUE。非常感谢。

让我们检查一下文档。

列表框样式:

LBS_NOTIFY

每当用户单击列表框项目(LBN_SELCHANGE)、双击项目(
LBN_DBLCLK。

LBN_SELCHANGE:

通知应用程序,由于用户输入,列表框中的选择已更改列表框的父窗口通过WM_COMMAND消息接收此通知代码

LBN_DBLCLK:

通知应用程序用户双击了列表框中的项目列表框的父窗口通过WM_COMMAND消息接收此通知代码

LBN_SELCANCEL:

通知应用程序用户已取消列表框中的选择列表框的父窗口通过WM_COMMAND消息接收此通知代码

结论:列表框使用WM_COMMAND来通知父级,而不是WM_NOTIFY