2011-01-30 71 views
31

我想知道如何創建一個窗口使用Win32 API與特定的客戶區大小WinAPI:創建一個窗口與指定的客戶區大小

當嘗試使用下面的代碼創建一個窗口,整個窗口爲640x480,與窗口的鉻服用一些客戶區:

HWND  hWnd; 
WNDCLASSEX WndClsEx; 
ZeroMemory(&WndClsEx, sizeof(WNDCLASSEX)); 

WndClsEx.cbSize  = sizeof(WNDCLASSEX); 
WndClsEx.style   = CS_HREDRAW | CS_VREDRAW; 
WndClsEx.lpfnWndProc = DefWindowProc; 
WndClsEx.cbClsExtra = 0; 
WndClsEx.cbWndExtra = 0; 
WndClsEx.hIcon   = LoadIcon(NULL, IDI_APPLICATION); 
WndClsEx.hCursor  = LoadCursor(NULL, IDC_ARROW); 
WndClsEx.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); 
WndClsEx.lpszMenuName = NULL; 
WndClsEx.lpszClassName = TEXT("Title"); 
WndClsEx.hInstance  = hInstance; 
WndClsEx.hIconSm  = LoadIcon(NULL, IDI_APPLICATION); 

RegisterClassEx(&WndClsEx); 

hWnd = CreateWindowEx( NULL, 
      TEXT("Title"), 
      TEXT("Title"), 
      WS_OVERLAPPEDWINDOW, 
      CW_USEDEFAULT, 
      CW_USEDEFAULT, 
      640, 
      480, 
      NULL, 
      NULL, 
      hInstance, 
      NULL); 

假設簡單的數學不會很解決問題,我如何考慮鉻的大小?

注:我使用SDL創建窗口後,但我猜它一定的窗口大小,並使得它的大小沒有區別。

回答

32

您可以使用AdjustWindowRectAdjustWindowRectEx函數來計算給定所需客戶區大小的窗口大小。

+1

更正時,它根據客戶區的座標計算窗口區域的座標。 – 2011-01-30 16:17:16

相關問題