MDI Размер дочернего окна
Я пытаюсь создать дочернее окно в главном окне MDI... Главное окно имеет размер 1024 x 768... когда я пытаюсь использовать CreateWindowEx() для создания дочернего окна, размер кажется как-то смещенным... другими словами, дочернее окно размером 1024 x 768 меньше своего родительского окна... как я могу объяснить эту разницу? Когда я использую GetCLientRect() с дескриптором главного окна... размер все еще меньше... Мне все равно, чтобы дочернее окно было такого же размера. Я хочу, чтобы дочернее окно охватывало точный размер изображения 750х563. Когда я устанавливаю этот размер в параметрах CreateWindowEx(), дочернее окно слишком мало...
Вот код, который я использую в MainWndProc для создания дочернего окна:
LRESULT CALLBACK MainWndProc(HWND hWnd, UINT Msg,
WPARAM wParam, LPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps;
switch(Msg)
{
case WM_CREATE:
{
//OnCreate(hWnd, NULL);
CLIENTCREATESTRUCT ccs;
ccs.hWindowMenu = GetSubMenu(GetMenu(hWnd), 2);
ccs.idFirstChild = StartChildrenNo;
hWndChildFrame = CreateWindowEx(WS_EX_CLIENTEDGE,
L"MDICLIENT",
NULL,
WS_CHILD | WS_CLIPCHILDREN | WS_VSCROLL
| WS_HSCROLL | WS_VISIBLE,
0,
0,
1024,
768,
hWnd,
(HMENU)IDM_FILE_NEW,
GetModuleHandle(NULL),
(LPVOID)&ccs);
if(hWndChildFrame == NULL)
MessageBox(hWnd, L"Could not create MDI client.", L"Error", MB_OK | MB_ICONERROR);
CreateNewMDIChild(hWndChildFrame);
return 0;
}
...}
1 ответ
Чтобы определить размер дочернего окна MDI, используйте
GetClientRect()
окна клиента MDI.Для вычисления необходимого размера окна для дочернего окна MDI используйте
AdjustWindowRect()
или жеAdjustWindowRectEx()
, Те могут конвертировать между окном и размером клиента.