如何实现MFC的treeview上选中的文字为蓝色粗体

来源:百度知道 编辑:UC知道 时间:2024/05/26 23:45:04
MFC中,添加Treeview后,增加节点,现在需要设置某一行文字为蓝色粗体显示,且删除前面一个节点后,这个蓝色粗体的一行仍然为蓝色粗体。
请给详细的代码,网上查到的根据说明自己没有实现,谢谢!一有可以实现的代码,我就结束问题送分。
我已经引入了微软common ctrl里面的Treeview,而其6.0版本是已经实现颜色处理的可视不懂怎么用put_Font(LPDISPATCH new value)里面该写什么参数?如果这个思路不行,是否有更好办法?

那你要继承TreeViewCtrl类进行自己的重新绘制了
然后把自绘的TreeVeiwCtrl加入TreeView类中

看看CTreeView的类实现,自己扩展一个CTreeCtrl类,自绘其显示操作。然后使用自己的CTreeCtrl类新构建一个新的CTreeView。
(提示:CTreeView 继承自 CCtrlView,而CCtrlView通过实现了PreCreateWindow 来指定创建的类名和style的)。
上面的实现估计有点复杂,可用下面简单的办法:
通过GetTreeCtrl()直接取得CTreeCtrl 对象,然后通过SetWindowLong 设置其GWL_WNDPROC为一个新值,然后在里面拦截wm_paint消息,实现直接的选中背景绘制为(蓝色粗体)就行了