我的视图是CScrollView模式,运行时为 m_pMainWnd->ShowWindow(SW_SHOWMAXIMIZED);
m_pMainWnd->UpdateWindow();最大化窗口设置
但是我在OnInitialUpdate()初始化里
CRect rect;
GetClientRect(rect);
rect.Width();rect.Height()得到的值不是最大化窗口的值是没有最大化时的窗口的值,如何能
得到最大化后窗口的高和宽呢

解决方案 »

  1.   

    不要在OnInitialUpdate()里GetClientRect(rect);,这时可能还没最大化。
      

  2.   

    由于视图的OnInitUpdate函数是在应用程序类的InitInstance函数的
    if (!ProcessShellCommand(cmdInfo))
    return FALSE;
    时调用的,而此时
    m_pMainWnd->ShowWindow(SW_SHOWMAXIMIZED);
    m_pMainWnd->UpdateWindow();
    还没有运行到呢!
    以此看来,是没有什么办法了。
      

  3.   

    另外想了一个办法。在view中定义一个成员变量BOOL m_bFirst = TRUE;
    假设你要获取初始界面大小到view的一个成员变量m_Rect中
    然后在OnDraw()中:
    if(m_bFirst)
    {
        GetClientRect(m_Rect);
        m_bFirst = FALSE;
    }
    就可以了。
      

  4.   

    这个办法不好,我想到了一个好办法,问题已经解决了,多谢  happyparrot(快乐鹦鹉) 老兄的提示
    由于视图的OnInitUpdate函数是在应用程序类的InitInstance函数的
    if (!ProcessShellCommand(cmdInfo))
    return FALSE;
    时调用的,而此时
    m_pMainWnd->ShowWindow(SW_SHOWMAXIMIZED);
    m_pMainWnd->UpdateWindow();
    还没有运行到呢!
    以此看来,是没有什么办法了。
    这个提示就可以解决,多谢