社区
界面
帖子详情
CTreeCtrl的CheckBox的触发消息是什么请不吝指教?
sapling123
2006-08-02 01:40:49
CTreeCtrl的CheckBox的触发消息是什么请不吝指教?
...全文
424
10
打赏
收藏
CTreeCtrl的CheckBox的触发消息是什么请不吝指教?
CTreeCtrl的CheckBox的触发消息是什么请不吝指教?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
joe_programmer
2006-08-02
打赏
举报
回复
还有一种方法,我用过的,就是切换Item的图标,在网上搜索找到没有打钩的和打钩的2种图标,在做具体操作时变换图标可以获得同样的效果。
折腾_苏州
2006-08-02
打赏
举报
回复
怎么会呢?得到需要的item,然后SetCheck;
例如给树根打钩:
HTREEITEM pItem;
pItem = m_tree.GetRootItem();
m_tree.SetCheck(pItem);
sapling123
2006-08-02
打赏
举报
回复
我按你的方法试了一下无法对CHECKBOX打钩,请我还应该改变那些参数。
sapling123
2006-08-02
打赏
举报
回复
呵呵!谢谢,老师!
lixiaosan
2006-08-02
打赏
举报
回复
CTreeCtrl::SetCheck
思危
2006-08-02
打赏
举报
回复
参考CTreeCtrl的源码:
BOOL CTreeCtrl::SetCheck(HTREEITEM hItem, BOOL fCheck)
{
ASSERT(::IsWindow(m_hWnd));
TVITEM item;
item.mask = TVIF_HANDLE | TVIF_STATE;
item.hItem = hItem;
item.stateMask = TVIS_STATEIMAGEMASK;
// Since state images are one-based, passing a 1 to the
// INDEXTOSTATEIMAGEMASK macro turns the check off, and
// passing 2 turns it on.
item.state = INDEXTOSTATEIMAGEMASK((fCheck ? 2 : 1));
return (BOOL)::SendMessage(m_hWnd, TVM_SETITEM, 0, (LPARAM)&item);
}
折腾_苏州
2006-08-02
打赏
举报
回复
BOOL CTreeCtrl::SetCheck(HTREEITEM hItem, BOOL fCheck)
{
ASSERT(::IsWindow(m_hWnd));
TVITEM item;
item.mask = TVIF_HANDLE | TVIF_STATE;
item.hItem = hItem;
item.stateMask = TVIS_STATEIMAGEMASK;
/*
Since state images are one-based, 1 in this macro turns the check off, and
2 turns it on.
*/
item.state = INDEXTOSTATEIMAGEMASK((fCheck ? 2 : 1));
return (BOOL)::SendMessage(m_hWnd, TVM_SETITEM, 0, (LPARAM)&item);
}
思危
2006-08-02
打赏
举报
回复
Tree Contorl 没有对 CheckBox 选中/反选 事件的直接支持。
必须通过响应 TVN_SELCHANGED 通知来手工编程处理。
如果需要写参考代码,可以给我发消息。
sapling123
2006-08-02
打赏
举报
回复
对不起,我叙述错了,我是想向树发送一个消息点击checkBox的消息。
::SendMessage(hWnd, ..., ....,(LPARAM)hItem);
lixiaosan
2006-08-02
打赏
举报
回复
void CTest6Dlg::OnClickTree1(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
UINT uFlag;
CPoint point;
GetCursorPos(&point);
ScreenToClient(&point);
HTREEITEM hItem = m_tree->HitTest(point, &uFlag);
if ( (NULL!=hItem) && (flag&TVHT_ONITEMSTATEICON))
{
...
}
*pResult = 0;
}
CTreeCtrl
CheckBox
点击
CTreeCtrl
CheckBox
点击选中或取消节点,子节点也选中或取消,并显示出来。
CtreeCtrl
checkbox
显示隐藏
一个
ctreectrl
控制
checkbox
显示、隐藏的代码,有兴趣可以关注下。声明:此程序来源于网络,经本人部分修改。
CTreeCtrl
三态
CTreeCtrl
树形控件 父子联动 父节点三态显示mfc vc++
CTReeCtrl
的
checkbox
选择动画效果
自己写的树控件,编译以后点树控件的
checkbox
,可以看到动画效果的勾选,可能实现方法有点牵强,但是最终还是实现了!仅供参考
CTreeCtrl
的全部操作,
CheckBox
本方法可以实现表示三态的情况下同时显示节点ICON图标,另增加了对
CheckBox
在某些节点是否显示的控制,同时增加了对键盘空格键选中、取消选中的控制。具体遍历父、子节点的方法同丛雷朋友朋友的方法类似,也是递归实现全部节点的遍历,只是优化了一些,效率更高。
界面
15,978
社区成员
115,896
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章