卡住了一個小問題。我使用命令CreateWindow()使用XP和VS C++在C++中創建GUI。創建方形窗口C++
我的問題是,如何讓內部可塗漆區域成爲完美的方形。當傳遞創建的窗口大小時,會扣除頂部的菜單欄,所有的邊框等等。有沒有任何實時變量可以傳入,例如,創建一個500×500的窗口應該是:
...500+BORDER,500+MENU_TOP+BORDER...
謝謝大家
卡住了一個小問題。我使用命令CreateWindow()使用XP和VS C++在C++中創建GUI。創建方形窗口C++
我的問題是,如何讓內部可塗漆區域成爲完美的方形。當傳遞創建的窗口大小時,會扣除頂部的菜單欄,所有的邊框等等。有沒有任何實時變量可以傳入,例如,創建一個500×500的窗口應該是:
...500+BORDER,500+MENU_TOP+BORDER...
謝謝大家
我通常這樣做的方式是AdjustWindowRect
。我發現它比其他建議的方法更簡單(它應該同樣適用,這是您的選擇)。使用它作爲這樣的:
RECT rect = {0, 0, desiredWidth, desiredHeight};
AdjustWindowRect(&rect, windowStyle, hasMenu);
const int realWidth = rect.right - rect.left;
const int realHeight = rect.bottom - rect.top;
又通realWidth
& realHeight
到CreateWindow
。
顧名思義,該函數將根據您的窗口樣式和菜單使用來調整窗口,以便客戶端區域符合您所需的大小。
,你可以找到所有相關的大小(窗口framewidth,菜單高度等)在這裏:GetSystemMetrics()。使用這些值,您應該能夠創建一個完美的方形窗口
您可以從GetSystemMetrics() API調用中獲取所有UI度量標準。
例如,菜單將是SM_CXMENU
和SM_CYMENU
。
很好,謝謝! – Ljdawson 2010-01-25 20:32:35
沒問題:3 – GManNickG 2010-01-25 20:42:28