2011-01-30 100 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

相关问题