CScrollView中如何得到包括滚动条在内的整个CRect ?

fireinsky 2004-12-01 10:39:52
我刚开始学VC界面编程,还请大家多多照顾.
我遇到一个问题:要得到CScrollView窗口中包括滚动条在内的整个客户区的CRect值要怎么办?
我试过用GetClientRect(),可是这个函数得到的区域是不包括滚动条在内的,如果可以的话请给出示例代码,在线等,问题解决马上结贴.
...全文
146 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
fireinsky 2004-12-01
  • 打赏
  • 举报
回复
to happyparrot:
GetTotalSize()得到是逻辑值,因为我是要取得CRect的设备相关值,所以这个函数不太适合。

to All:

谢谢大家的热心帮助,我刚才在旧的贴子上找到了答案,公布如下:
//pWnd 为指向CView的指针。
CRect rect;
pWnd->GetClientRect(rect);
DWORD dwStyle = pWnd->GetStyle();
if(dwStyle & WS_VSCROLL)
rect.right += GetSystemMetrics(SM_CXVSCROLL);
if(dwStyle & WS_HSCROLL)
rect.bottom += GetSystemMetrics(SM_CYHSCROLL);


快乐鹦鹉 2004-12-01
  • 打赏
  • 举报
回复
应该是: CSize sz = GetTotalSize();
快乐鹦鹉 2004-12-01
  • 打赏
  • 举报
回复
sorry,这个函数不对,是获取滚动条宽度的。
Elsie 2004-12-01
  • 打赏
  • 举报
回复
可能你的MSDN版本太旧了
fireinsky 2004-12-01
  • 打赏
  • 举报
回复
to happyparrot:可是我为什么在msdn里找不到这个函数呢?
快乐鹦鹉 2004-12-01
  • 打赏
  • 举报
回复
用GetScrollBarSizes()就可以获取你当前整个客户区的大小了。

15,979

社区成员

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

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