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()調整任何偏移量。 –