MFC中CTreeCtrl 的光标选中问题

Klizzardy 2022-05-06 10:28:29

当用鼠标选中CTreeCtrl 中的一个节点时,被选中的节点变成了深蓝色的光标选中状态。这时我要它那种深蓝色的光标一直存在,直到我点击选中其他节点。
现在的情况是:被选中的节点变成了深蓝色的光标选中状态以后,当鼠标移出当前对话框后,深蓝色的光标就看不到了。

找到的解决方法是:

1.把tree的show selection always选中:这种方法的效果就是,当鼠标移出tree所在对话框后,节点的选中状态从蓝色变成了灰色,至少比之前明显了一些。

2.在头文件里重写一个CTestTreeCtrl类继承于CTreeCtrl类,在CTestTreeCtrl类中只需要做:

class CTestTreeCtrl : public CTreeCtrl
{
    DECLARE_MESSAGE_MAP()
    afx_msg void OnKillFocus(CWnd* pNewWnd);
}

BEGIN_MESSAGE_MAP(CTestTreeCtrl, CTreeCtrl)
    ON_WM_KILLFOCUS()
END_MESSAGE_MAP

void CTestTreeCtrl::OnKillFocus(CWnd* pNewWnd)
{
    //重写这个函数,就是为了不再返回,所以这里什么都不做
}

然后对话框中的tree控件用CTestTreeCtrl构建。就可以完美解决上述问题了。

...全文
306 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
CSDN-Ada助手 2023-01-13
  • 打赏
  • 举报
回复
您可以前往 CSDN问答-微软技术 发布问题, 以便更快地解决您的疑问

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧