您的位置:首页 > 其它

ON——NOTIFY的例子

2012-05-03 15:54 274 查看
转帖: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

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了

[cpp] view
plaincopy

BEGIN_MESSAGE_MAP(CMyTabCtrl, CMFCTabCtrl)

ON_NOTIFY(LVN_COLUMNCLICK, IDC_LIST_DATA, &CHistoryDlg::OnLvnColumnclickListData)

END_MESSAGE_MAP()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: