0

MDIメインウィンドウ内に子ウィンドウを作成しようとしています...メインウィンドウのサイズは1024x768です...CreateWindowEx()を使用して子ウィンドウを作成しようとすると、サイズが何らかの形でオフセットされているようです...言い換えると、1024 x 768の子ウィンドウはその親よりも小さいです...この違いをどのように説明できますか?メインウィンドウのハンドルでGetCLientRect()を使用すると、サイズはさらに小さくなります...子ウィンドウを同じサイズにする必要はありません。子ウィンドウに、750x563の画像の正確なサイズを含める必要があります。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;
            }

...}

4

1 に答える 1

1
  1. MDI 子ウィンドウのサイズを決定するGetClientRect()には、MDI クライアント ウィンドウを使用します。

  2. MDI 子ウィンドウに必要なウィンドウ サイズを計算するには、AdjustWindowRect()またはを使用しますAdjustWindowRectEx()。これらは、ウィンドウとクライアントのサイズの間で変換できます。

于 2012-05-31T21:43:58.280 に答える