我的屏幕分辨率为1280*1024
使用
CRect dlgRect;
GetClientRect(&dlgRect);
之后使用
dlgRect.Width()和dlgRect.Height()
确得到1274*994
请问是怎么回事
感觉边框也没有这么宽啊,横向竟然少了30像素,目测没这多似的
【VC++】GetClientRect的问题
答案:5 悬赏:0
解决时间 2021-02-02 01:16
- 提问者网友:逐野
- 2021-02-01 09:11
最佳答案
- 二级知识专家网友:深街酒徒
- 2021-02-01 09:47
GetClientRect只是获得程序中客户区的大小。程序的边框、标题条、工具条,状态条等都不包括的。
获得屏幕分辨率大小用
int xSize = ::GetSystemMetrics(SM_CXSCREEN);
int ySize = ::GetSystemMetrics(SM_CYSCREEN);
或者:
CRect rect;
::GetWindowRect(::GetDesktopWindow(),&rect);
补充:
你看错了,横向才差了6个像素(1280-1274),边框差不多
纵向是差了30,因为纵向要去除标题条、工具条,状态条等
获得屏幕分辨率大小用
int xSize = ::GetSystemMetrics(SM_CXSCREEN);
int ySize = ::GetSystemMetrics(SM_CYSCREEN);
或者:
CRect rect;
::GetWindowRect(::GetDesktopWindow(),&rect);
补充:
你看错了,横向才差了6个像素(1280-1274),边框差不多
纵向是差了30,因为纵向要去除标题条、工具条,状态条等
全部回答
- 1楼网友:啵啵桃汀
- 2021-02-01 12:28
不包括边框……
- 2楼网友:深街酒徒
- 2021-02-01 11:58
getclientrect(&rect)是用来获取客户端矩形参数的,这个参数该如何传递出来呢?这就用到了你说的“带&的参数,而且这个参数经常是crect的类型。”
调用完这个函数,rect中就有获取到的值了,你再使用rect来做别的事情。
- 3楼网友:青春如此荒謬
- 2021-02-01 11:29
GetClientRect
是获取工作区的大小,不包括边框
- 4楼网友:野性且迷人
- 2021-02-01 11:03
GetClientRect函数是获得客户区的矩形区域...
如果你使用的MFC并且带框架的话,那么就算你最大化你的程序,也不能得到你的分辨率大小...因为框架是不属于客户区的!...如果你使用的API的话,应该带上句柄参数。
如果你只是要得到显示器的分辨率...建议使用GetSystemMetrics函数更方便!
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯