【VC++】GetClientRect的问题

我的屏幕分辨率为1280*1024使用CRectdlgRect;GetClientRect(&dlgRect);之后使用dlgRect.Width()和dlgRect.H... 我的屏幕分辨率为1280*1024
使用
CRect dlgRect;
GetClientRect(&dlgRect);
之后使用
dlgRect.Width()和dlgRect.Height()
确得到1274*994

请问是怎么回事
感觉边框也没有这么宽啊,横向竟然少了30像素,目测没这多似的
展开
 我来答
魔高丈
2009-03-10 · TA获得超过9506个赞
知道大有可为答主
回答量:2066
采纳率:0%
帮助的人:3470万
展开全部
GetClientRect只是获得程序中客户区的大小。程序的边框、标题条、工具条,状态条等都不包括的。
获得屏幕分辨率大小用
int xSize = ::GetSystemMetrics(SM_CXSCREEN);
int ySize = ::GetSystemMetrics(SM_CYSCREEN);
或者:
CRect rect;
::GetWindowRect(::GetDesktopWindow(),&rect);

补充:
你看错了,横向才差了6个像素(1280-1274),边框差不多
纵向是差了30,因为纵向要去除标题条、工具条,状态条等
yang__wo
2009-03-09 · 超过34用户采纳过TA的回答
知道答主
回答量:78
采纳率:0%
帮助的人:0
展开全部
GetClientRect函数是获得客户区的矩形区域...
如果你使用的MFC并且带框架的话,那么就算你最大化你的程序,也不能得到你的分辨率大小...因为框架是不属于客户区的!...如果你使用的API的话,应该带上句柄参数。
如果你只是要得到显示器的分辨率...建议使用GetSystemMetrics函数更方便!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e9042513a
2009-03-09 · TA获得超过6984个赞
知道大有可为答主
回答量:2388
采纳率:0%
帮助的人:3506万
展开全部
GetClientRect
是获取工作区的大小,不包括边框
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
178752468
2009-03-09 · TA获得超过291个赞
知道小有建树答主
回答量:517
采纳率:0%
帮助的人:396万
展开全部
用GetWindowRect
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
蓬莱魔
2009-03-09 · TA获得超过578个赞
知道小有建树答主
回答量:419
采纳率:0%
帮助的人:344万
展开全部
不包括边框……
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式