繁体   English   中英

MDI子窗口大小

[英]MDI Child Window Size

我正在尝试在MDI MainWindow中创建一个子窗口...主窗口的尺寸为1024 x 768 ...当我尝试使用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;
            }

...}

  1. 若要确定MDI子窗口的大小,请使用MDI客户端窗口的GetClientRect()

  2. 要计算MDI子窗口所需的窗口大小,请使用AdjustWindowRect()AdjustWindowRectEx() 这些可以在窗口和客户端大小之间转换。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM