树形控件的消息映射函数肿么用呢?

时间:2022-09-04 18:45:39
ON_NOTIFY(wNotifyCode,id,memberFxn)
这个映射函数的wNotifyCode为通知代码,想问一下,着个初始化时怎么写这个通知代码,完全不懂怎么写通知代码,也不知道肿么编写这个映射函数
还有,怎么知道树形中那个孩子结点被选中了

5 个解决方案

#1


这样写

ON_NOTIFY(TVN_SELCHANGED, IDC_TREE, &CTestDlg::OnTvnSelchangedTree)




void CTestDlg::OnTvnSelchangedTree(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMTREEVIEW pNMTreeView = reinterpret_cast<LPNMTREEVIEW>(pNMHDR);
// TODO: 在此添加控件通知处理程序代码
*pResult = 0;
}


你可以通过类向导(VC6.0)或在“资源视图中”的树型控件上点击右键,在弹出的菜单中选择“添加事件处理程序”来自动生成这段代码

#2


http://blog.sina.com.cn/s/blog_6271989b0100rvd5.html
http://apps.hi.baidu.com/share/detail/20236287

#3


引用 1 楼  的回复:
这样写
C/C++ code

ON_NOTIFY(TVN_SELCHANGED, IDC_TREE, &amp;CTestDlg::OnTvnSelchangedTree)




void CTestDlg::OnTvnSelchangedTree(NMHDR *pNMHDR, LRESULT *pResult)
{
    LPNMTREEVIEW pNMTreeView = rein……

树形框是这样定义的:
HTREEITEM hTreeT,hSub;
hTreeT=m_TreeT.InsertItem(_T("父结点"),TVI_ROOT);
hSub=m_TreeT.InsertItem(_T("孩子结点"),hTreeT);
在你说的OnTvnSelchangedTree函数里,怎么才能知道是父结点还是孩子结点被选中了呢?

#4


用GetParentItem获取选中结点的父结点,比较一下就可以了。GetRootItem可以获取根节点。

#5


引用 4 楼  的回复:
用GetParentItem获取选中结点的父结点,比较一下就可以了。GetRootItem可以获取根节点。

CTreeCtrl m_TreeTT;
//获取hSub的父结点
if(m_TreeTT.GetParentItem(hSub)==hTreeT)MessageBox(_T(""));

是这样使吗?出错了

#1


这样写

ON_NOTIFY(TVN_SELCHANGED, IDC_TREE, &CTestDlg::OnTvnSelchangedTree)




void CTestDlg::OnTvnSelchangedTree(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMTREEVIEW pNMTreeView = reinterpret_cast<LPNMTREEVIEW>(pNMHDR);
// TODO: 在此添加控件通知处理程序代码
*pResult = 0;
}


你可以通过类向导(VC6.0)或在“资源视图中”的树型控件上点击右键,在弹出的菜单中选择“添加事件处理程序”来自动生成这段代码

#2


http://blog.sina.com.cn/s/blog_6271989b0100rvd5.html
http://apps.hi.baidu.com/share/detail/20236287

#3


引用 1 楼  的回复:
这样写
C/C++ code

ON_NOTIFY(TVN_SELCHANGED, IDC_TREE, &amp;CTestDlg::OnTvnSelchangedTree)




void CTestDlg::OnTvnSelchangedTree(NMHDR *pNMHDR, LRESULT *pResult)
{
    LPNMTREEVIEW pNMTreeView = rein……

树形框是这样定义的:
HTREEITEM hTreeT,hSub;
hTreeT=m_TreeT.InsertItem(_T("父结点"),TVI_ROOT);
hSub=m_TreeT.InsertItem(_T("孩子结点"),hTreeT);
在你说的OnTvnSelchangedTree函数里,怎么才能知道是父结点还是孩子结点被选中了呢?

#4


用GetParentItem获取选中结点的父结点,比较一下就可以了。GetRootItem可以获取根节点。

#5


引用 4 楼  的回复:
用GetParentItem获取选中结点的父结点,比较一下就可以了。GetRootItem可以获取根节点。

CTreeCtrl m_TreeTT;
//获取hSub的父结点
if(m_TreeTT.GetParentItem(hSub)==hTreeT)MessageBox(_T(""));

是这样使吗?出错了