ON——NOTIFY的例子

来源:互联网 发布:齐博cms整站系统v8 编辑:程序博客网 时间:2024/05/20 04:32

 转帖:http://topic.csdn.net/u/20100117/15/a922e441-3861-48a2-a396-af0e3065cf59.html

我在CView视图里动态加入2个控件CMFCTabCtrl,CListCtrl两个控件,其中CListCtrl又是CMFCTabCtrl子控件。现在的问题是CListCtrl的消息怎么捕获?
我的动态创建代码如下:
  .h文件
  CMFCTabCtrl TabCtrl;
  CListCtrl ListCtrl;
    
  .cpp文件
  CMyView::OnInitialUpdate()

[cpp] view plaincopy
  1. TabCtrl.Create (CMFCTabCtrl::STYLE_3D_VS2005, rect, this, 10001, CMFCTabCtrl::LOCATION_TOP); TabCtrl.EnableTabSwap(FALSE);  
  2. TabCtrl.ModifyTabStyle(CMFCTabCtrl::STYLE_3D_ONENOTE);  
  3. ListCtrl.Create(WS_VISIBLE|LVS_REPORT|LVS_NOLABELWRAP,rect,&TabCtrl,10002);     
  4.   ListCtrl.InsertColumn(0, _T("TEST"), LVCFMT_LEFT, 150);  
  5.   TabCtrl.AddTab(&ListCtrl,L"测试");  
  6.   ListCtrl.ShowWindow(SW_SHOW);  
  7.   ListCtrl.SetParent(this);  

这样创建的代码怎样才能取得控件ListCtrl的消息?   
我用ON_NOTIFY(LVN_ITEMCHANGED, 10002, OnLvnItemchangedList)无法取得CListCtrl消息,请问应该怎么处理才可捕获ListCtrl消息?谢谢!

 

 

解决方法:

 

父窗口是TabCtrl,所以你要派生个CMFCTabCtrl的类来处理ListCtrl的消息


从CMFCTabCtrl派生个类CMyTabCtrl,用ON_NOTIFY重载消息映射就OK了

[cpp] view plaincopy
  1. BEGIN_MESSAGE_MAP(CMyTabCtrl, CMFCTabCtrl)   
  2. ON_NOTIFY(LVN_COLUMNCLICK, IDC_LIST_DATA, &CHistoryDlg::OnLvnColumnclickListData)   
  3. END_MESSAGE_MAP()  

原创粉丝点击