Mi chiedevo come posso creare una finestra utilizzando l'API Win32 con una specifica area del client .WinAPI: creazione di una finestra con una dimensione dell'area client specificata
Quando si cerca di creare una finestra utilizzando il seguente pezzo di codice, l'intera finestra è 640x480, con bicromato di potassio della finestra prendendo alcuni dei client area:
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);
Supponendo semplice matematica non lo farà abbastanza risolvere il problema, come faccio a tener conto della dimensione del cromo?
Nota: sto usando SDL dopo aver creato la finestra, ma sto cercando di indovinare che è legato alla dimensione della finestra e non fa alcuna differenza per la sua dimensione.
Correzione, calcola le coordinate dell'area finestra in base alle coordinate dell'area cliente. –
@Edmin: Grazie. Lo correggerò. – Ferruccio
[Una risposta correlata] (http://stackoverflow.com/a/13793660/3427520) sul motivo per cui "AdjustWindowRect" non può essere utilizzato con "WS_OVERLAPPED". – zwcloud