转帖: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()TabCtrl.Create (CMFCTabCtrl::STYLE_3D_VS2005, rect, this, 10001, CMFCTabCtrl::LOCATION_TOP); TabCtrl.EnableTabSwap(FALSE); TabCtrl.ModifyTabStyle(CMFCTabCtrl::STYLE_3D_ONENOTE); ListCtrl.Create(WS_VISIBLE|LVS_REPORT|LVS_NOLABELWRAP,rect,&TabCtrl,10002); ListCtrl.InsertColumn(0, _T("TEST"), LVCFMT_LEFT, 150); TabCtrl.AddTab(&ListCtrl,L"测试"); ListCtrl.ShowWindow(SW_SHOW); ListCtrl.SetParent(this); 这样创建的代码怎样才能取得控件ListCtrl的消息? 我用ON_NOTIFY(LVN_ITEMCHANGED, 10002, OnLvnItemchangedList)无法取得CListCtrl消息,请问应该怎么处理才可捕获ListCtrl消息?谢谢!
解决方法:
父窗口是TabCtrl,所以你要派生个CMFCTabCtrl的类来处理ListCtrl的消息从CMFCTabCtrl派生个类CMyTabCtrl,用ON_NOTIFY重载消息映射就OK了BEGIN_MESSAGE_MAP(CMyTabCtrl, CMFCTabCtrl) ON_NOTIFY(LVN_COLUMNCLICK, IDC_LIST_DATA, &CHistoryDlg::OnLvnColumnclickListData) END_MESSAGE_MAP()
