0
在此question接受的答案的客户区的宽度和高度,说以下有关获取窗口的客户区的宽度和高度:获得一个窗口
RECT rect; if(GetWindowRect(hwnd, &rect)) { int width = rect.right - rect.left; int height = rect.bottom - rect.top; }
但我不明白为什么不只是做到以下几点:
RECT rect;
if(GetWindowRect(hwnd, &rect))
{
int width = rect.right;
int height = rect.bottom;
}
由于对GetClientRect()的文档说以下内容:
由于客户端坐标是相对于一个 窗口的客户区的左上角,在左上角的坐标是 (0,0)。
我的猜测是,这只是一个如何从RECT
获得宽度和高度的一般示例,或者我错过了一些东西!
对不起,我混合了这两个函数!所以'GetClientRect()'不需要' - rect.left'和' - rect.top',对吗? – James
不。没有。 –
请注意,客户区域本身在其边界窗口内的左/顶位置通常不是0,0。对于窗口边界,标题栏,菜单/工具栏等,有偏移量。如果您只需要客户区的宽度/高度,那么'GetClientRect()'就足够了。但是如果你需要客户区域的左边/顶部在边界窗口内,你可以使用'ClientToScreen()'在屏幕坐标中获得客户区0,0的位置,然后从'GetWindowRect()调整任何偏移量。 –