实战经验:CTreeCtrl.GetItemPartRect的用法
作者:BlogUpdater |
时间:2018-09-09 |
浏览:3417 |
评论已关闭 条评论
在一次CTreeCtrl的使用过程中,我需要自行绘制树控件结点前面的加减号按钮。主要碰到的难题是如何在合适的位置进行绘制。
一直在网络上寻找各种答案,直到碰到了GetItemPartRect这个API。真的有一种众里寻他千百度的感觉。
今天就来讲一讲这个API的用法。首先摘抄MSDN的部分:
GetItemPartRect:
Retrieves the bounding rectangle for a specified part of a specified item in the current tree-view control.
API描述:
GetItemPartRect是CTreeCtrl的一个方法,主要用于获取指定结点的一个特殊部分的区域,这里的特殊部分,可以是结点前面的加减号,也可以是结点图标,还可以是结点文字。但是当前版本只支持获取树结点前面的加减号按钮的区域。
再来看看参数列表:
BOOL GetItemPartRect(HTREEITEM hItem, int nPart, LPRECT lpRect)const;
第一个参数:
要获取的树结点句柄。
第二个参数:
指明获取的是树结点的哪个部分的区域,只能设置为:TVGIPR_BUTTON。
第三个参数:
一个指向RECT结构体的指针,当API成功执行后,会在此指针指向的结构体中填入指定部分的区域。
示例代码:
CRect rcItem; m_treeCtrl.GetItemPartRect(hItem, TVGIPR_BUTTON, &rcItem); m_treeCtrl.GetDC()->Draw3dRect(&rcItem, RGB(255, 0, 0), RGB(0, 0, 255));
总结
虽然GetItemPartRect目前只能得到加减号按钮的区域,但是对于树控件的自绘来说,还是很有用的。
如需转载,请注明来自:拓扑梅尔智慧办公平台 | TopomelBox 官方站点
相关推荐
- 第 797 期:微软推出了自己的 Linux 发行版,与 Ubuntu 或 Fedora 截然不同
- Posted on 06月29日
- CS_SAVEBITS 这个样式有什么作用?
- Posted on 07月29日
- 脚本学习:%cd%和%~dp0的区别
- Posted on 04月14日
- 第 655 期:微软将对文件资源管理器的属性对话框进行现代化改造
- Posted on 05月04日



评论已关闭。