中易网

【VC++】GetClientRect的问题

答案:5  悬赏:0  
解决时间 2021-02-02 01:16
我的屏幕分辨率为1280*1024
使用
CRect dlgRect;
GetClientRect(&dlgRect);
之后使用
dlgRect.Width()和dlgRect.Height()
确得到1274*994

请问是怎么回事
感觉边框也没有这么宽啊,横向竟然少了30像素,目测没这多似的
最佳答案
GetClientRect只是获得程序中客户区的大小。程序的边框、标题条、工具条,状态条等都不包括的。
获得屏幕分辨率大小用
int xSize = ::GetSystemMetrics(SM_CXSCREEN);
int ySize = ::GetSystemMetrics(SM_CYSCREEN);
或者:
CRect rect;
::GetWindowRect(::GetDesktopWindow(),&rect);

补充:
你看错了,横向才差了6个像素(1280-1274),边框差不多
纵向是差了30,因为纵向要去除标题条、工具条,状态条等
全部回答
不包括边框……
getclientrect(&rect)是用来获取客户端矩形参数的,这个参数该如何传递出来呢?这就用到了你说的“带&的参数,而且这个参数经常是crect的类型。” 调用完这个函数,rect中就有获取到的值了,你再使用rect来做别的事情。
GetClientRect 是获取工作区的大小,不包括边框
GetClientRect函数是获得客户区的矩形区域... 如果你使用的MFC并且带框架的话,那么就算你最大化你的程序,也不能得到你的分辨率大小...因为框架是不属于客户区的!...如果你使用的API的话,应该带上句柄参数。 如果你只是要得到显示器的分辨率...建议使用GetSystemMetrics函数更方便!
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
金手指发型设计造型烫染专业店我想知道这个在
南京工业大学有专科么?
完美国际15品装备海天一线怎么打造
信用卡帐单日后消费,还款如何算???
古一味牛肉面怎么去啊,有知道地址的么
中国银行长城信用卡信用额度为0.客服说可以当
什么是冻干果蔬脆?
实况8状态有什么作用.实况8技巧
轻巧夺冠数学答案
ji拼音的所有两字词语
黄历中的归忌是什么意思
喇叭河土鸡我想知道这个在什么地方
异地买二手车本地上牌可以吗、
刚买的苹果手机没冲过电,1循环什么意思
辞职报告没交到人事部,在我手上算辞工吗?
推荐资讯
中国石油温巴什加油站地址在什么地方,想过去
我是河南考生,2014年高考625分,能去上啥学
动漫抱枕原图
禹州有没有生产地砖的陶瓷企业
电瓶充电需要多长时间
电信制定手机能用移动卡上网吗
商南县医院眼科防治中心这个地址在什么地方,
常州市钟楼区生产力促进中心怎么去啊,有知道
女朋友长得像金馆长表情怎么办
锦尚建筑装饰工程有限公司在哪里啊,我有事要
好利安旗舰店在哪里啊,我有事要去这个地方
肠胃炎能导致脑炎吗
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?