代码之家  ›  专栏  ›  技术社区  ›  Konrad

调整MFC窗口的大小

  •  7
  • Konrad  · 技术社区  · 16 年前

    我有一个MFC应用程序,我已经工作了几个星期了,我想手动设置主框架的尺寸,当它被加载时,有人能帮我这个,特别是在哪里放置代码?

    谢谢!

    3 回复  |  直到 9 年前
        1
  •  8
  •   Chris Krycho    9 年前

    您还可以设置大小(使用 SetWindowPos() 从内部 CMainFrame::OnCreate() ,或在 CWinApp 派生类 InitInstance . 找那句话 pMainFrame->ShowWindow() 和呼叫 pMainFrame->SetWindowPos() 在那条线之前。那是我一直在做的事情。

        2
  •  3
  •   Serge    16 年前

    我想你在找 PreCreateWindow 而且你的应用程序不基于对话。

    它是cwnd类的一个虚拟成员函数,在创建窗口之前由框架调用。所以这是放置更改的正确位置。

    你应该这样写:

    BOOL CMyWindow::PreCreateWindow(CREATESTRUCT& cs)
    {
       cs.cy = 640; // width
       cs.cx = 480; // height
       cs.y = 0; // top position
       cs.x = 0; // left position
       // don't forget to call base class version, suppose you derived you window from CWnd
       return CWnd::PreCreateWindow(cs);
    }
        3
  •  2
  •   IanW    16 年前

    使用..查找屏幕大小。

    CRect rect;
    SystemParametersInfo(SPI_GETWORKAREA,0,&rect,0);
    screen_x_size=rect.Width();  
    screen_y_size=rect.Height();
    

    使用这些值计算窗口的x和y大小,然后..

    ::SetWindowPos(m_hWnd,HWND_TOPMOST,0,0,main_x_size,main_y_size,SWP_NOZORDER); 
    

    在哪里? main_x_size main_y_size 你的尺寸是多少?