Me preguntaba cómo puedo crear una ventana usando la API de Win32 con un tamaño de área de cliente específico.WinAPI: Crear una ventana con un tamaño de área de cliente especificado
Al intentar crear una ventana con el siguiente fragmento de código, toda la ventana es de 640x480, con el cromo de la ventana teniendo algunos del área de cliente:
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);
Suponiendo matemática simple no lo hará bastante resolver el problema, ¿cómo tomo en cuenta el tamaño de Chrome?
Nota: estoy usando SDL después de crear la ventana, pero supongo que está ligado al tamaño de la ventana y no hace ninguna diferencia con respecto a su tamaño.
Corrección, calcula las coordenadas del área de la ventana en función de las coordenadas del área del cliente. –
@ Edmin: gracias. Lo corregiré. – Ferruccio
[Una respuesta relacionada] (http://stackoverflow.com/a/13793660/3427520) sobre por qué 'AdjustWindowRect' no se puede usar con' WS_OVERLAPPED'. – zwcloud