当窗口最小化时,如何得到客户区的大小;Windows API中有这样的方法么?sh

GetWindowRect();//得到RECT里面全是负数GetClientRect();//得到RECT里面全是0这两个都不行... GetWindowRect();//得到RECT里面全是负数 GetClientRect();//得到RECT里面全是0 这两个都不行 展开
 我来答
帐号已注销
2012-10-25 · TA获得超过9900个赞
知道大有可为答主
回答量:4076
采纳率:0%
帮助的人:3588万
展开全部
窗口最小化后 GetWindowPlacement 只能获取到窗口的 RECT,不能获取客户区的。

WINDOWPLACEMENT wndpl;
wndpl.length = sizeof(WINDOWPLACEMENT);
GetWindowPlacement(hwnd, &wndpl);
// wndpl.rcNormalPosition.left;
// wndpl.rcNormalPosition.top;
// wndpl.rcNormalPosition.right;
// wndpl.rcNormalPosition.bottom;

MSDN 还说:
If the window is a top-level window that does not have the WS_EX_TOOLWINDOW window style, then the coordinates represented by the following members are in workspace coordinates: ptMinPosition, ptMaxPosition, and rcNormalPosition. Otherwise, these members are in screen coordinates.

如果窗口是没有 WS_EX_TOOLWINDOW 窗口样式的顶级窗口,(结构体 WINDOWPLACEMENT 的)以下成员代表的坐标为工作区坐标:ptMinPosition、ptMaxPosition 和 rcNormalPosition。否则,这些成员为屏幕坐标。

工作区坐标可能是指以除去任务栏之后的 RECT 为坐标。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式