类向导可以创建ON_NOTIFY消息映射入口并提供一个处理函数的框架,来处理 WM_NOTIFY类型的消息。ON_NOTIFY消息映射宏有如下语法.
   ON_NOTIFY(wNotifyCode,id,memberFxn)
  其中:wNotifyCode:要处理的通知消息通知码。比如上面我们提到的LVN_KEYDOWN;Id:控件标识ID;MemberFxn:处理此消息的成员函数。
  此成员函数有如下的原型声明:
   afx_msg void memberFxn( NMHDR * pNotifyStruct, LRESULT * result); 
  比如:假设你想成员函数OnKeydownList1处理ClistCtrl(标识ID=IDC_LIST1)的 LVN_KEYDOWN消息,你可以使用类向导添加如下的消息映射:
   ON_NOTIFY( LVN_KEYDOWN, IDC_LIST1, OnKeydownList1 )
  在上面的例子中,类向导提供如下函数:
   void CMessageReflectionDlg::OnKeydownList1(NMHDR* pNMHDR, LRESULT* pResult)
    {
     LV_KEYDOWN* pLVKey= (LV_KEYDOWN*)pNMHDR;
     *pResult = 0;
     }
  这时类向导提供了一个适当类型的指针,你既可以通过pNMHDR,也可以通过 pLVKey来访问这个通知结构。

解决方案 »

  1.   

      类向导可以创建ON_NOTIFY消息映射入口并提供一个处理函数的框架,来处理 WM_NOTIFY类型的消息。ON_NOTIFY消息映射宏有如下语法.
       ON_NOTIFY(wNotifyCode,id,memberFxn)
      其中:wNotifyCode:要处理的通知消息通知码。比如上面我们提到的LVN_KEYDOWN;Id:控件标识ID;MemberFxn:处理此消息的成员函数。
      此成员函数有如下的原型声明:
       afx_msg void memberFxn( NMHDR * pNotifyStruct, LRESULT * result); 
      比如:假设你想成员函数OnKeydownList1处理ClistCtrl(标识ID=IDC_LIST1)的 LVN_KEYDOWN消息,你可以使用类向导添加如下的消息映射:
       ON_NOTIFY( LVN_KEYDOWN, IDC_LIST1, OnKeydownList1 )
      在上面的例子中,类向导提供如下函数:
       void CMessageReflectionDlg::OnKeydownList1(NMHDR* pNMHDR, LRESULT* pResult)
        {
         LV_KEYDOWN* pLVKey= (LV_KEYDOWN*)pNMHDR;
         *pResult = 0;
         }
      这时类向导提供了一个适当类型的指针,你既可以通过pNMHDR,也可以通过 pLVKey来访问这个通知结构。
      

  2.   

    你要接受什么通知?直接添加该通知的响应函数。或者重载OnNotify函数。