首页 新闻 会员 周边

怎样绘制TreeView的非客户区(微软滚动条换肤)

0
悬赏园豆:60 [已关闭问题] 关闭于 2013-12-06 17:33

如题。

 

先不做任何操作,使用GeTClientRect获得了TreeView没有出现滚动条的客户区的矩形,然后展开TreeView获得了出现滚动条后客户区的矩形,发现客户区的矩形宽度缩小了17。我觉得是不是因为非客户区的出现使客户区的宽度变小。

那么,我就使用GetWindowLong获取了TreeView的样式,再将其中的WS_VSCROLL和WS_HSCROLL两个样式取消掉,再使用SetWindowLong将样式设置回去了。然后再使用GetWindowRect获取了整个TreeView的矩形,用GetWindowDC在右边绘制了一条滚动条大小的黑色矩形,但是这个绘制的矩形总是现实不完全或者就干脆不显示。为什么。

 

PS:去掉WS_VSCROLL和WS_HSCROLL之后,ClientRect就不会改变了。

 

我参考了http://blog.csdn.net/superarhow/article/details/984338 他的思路,里面第三段他说的“CLIP掉滚动条的区域”具体怎么做?

Libra.Jerry的主页 Libra.Jerry | 初学一级 | 园豆:73
提问于:2012-08-17 12:55
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册