我用以下语句在主窗口中放置了一个树控件。 请教如何捕获到该控件的消息,
例如:我在该控件上点击鼠标左键,怎样能弹出一个消息框。 /* 初始 -- 树 */
hWndTree = CreateWindow(WC_TREEVIEW, "aaa", WS_VISIBLE|WS_CHILD|WS_BORDER|TVS_HASLINES|TVS_HASBUTTONS|WS_DLG FRAME, 0,0,rect.right/4,rect.bottom, hWnd, NULL, hInst, NULL);
调试欢乐多
然后写一个NM_RCLICK 的通知响应函数
步骤如下:
1.在对话框模板中拖放一个“Tree Control”控件
2.删除CreateWindow 一句,在类向导的“Member Variables”页面,选中IDC_TREE1(如你未将其改名),单击“Add Variable...”命令,输入变量名
m_treeTree1HandleKeeper
3.在你的类的头文件中加
afx_msg void NotifyRClickTree1(NMHDR* pNotifyStruct, LRESULT* result);
4.在你的类的CPP 文件中,END_MESSAGE_MAP() 前插入:
ON_NOTIFY (NM_RCLICK, IDC_TREE1, NotifyRClickTree1)
5.
void CMyDlg::NotifyRClickTree1(NMHDR* pNotifyStruct, LRESULT* result)
{
if (result) *result = 0;
CMenu menuLoader, *pPopup;
menuLoader.LoadMenu (IDR_POPUP_TREE1);
pPopup = menuLoader.GetSubMenu (0); // the Popup.
if (NULL == pPopup)
return ;
CPoint ptPopup; GetCursorPos (&ptPopup);
pPopup->TrackPopupMenu (TPM_LEFTALIGN, ptPopup.x, ptPopup.y, this);
return ;
}
6.该没问题了吧!