如题,建立一个单文档的应用程序,在初始化时实现最大化,如果调用ShowWindow(SW_SHOWMAXIMIZED),显示时窗口的最下方会被任务栏挡住,并且此时窗口也可以移动,请教一下,如何实现初始化后,窗口的显示是好比点击了右上角最大化按钮后的那种显示效果

解决方案 »

  1.   


    // 主框架类中PostMessage(WM_SYSCOMMAND, SC_MAXIMIZE, 0);
      

  2.   


    在应用程序类(CxxAPP)的 InitInstance 函数中设定 m_nCmdShow的取值.
    m_nCmdShow=SW_SHOWMAXIMIZED; //最大化
    例:
    BOOL CMyEditApp::InitInstance()
    {
    AfxEnableControlContainer();
    m_nCmdShow=SW_SHOWMAXIMIZED; //最大化
    // Standard initialization
    // If you are not using these features and wish to reduce the size
    // of your final executable, you should remove from the following
    // the specific initialization routines you do not need.#ifdef _AFXDLL
    Enable3dControls(); // Call this when using MFC in a shared DLL
    #else
    Enable3dControlsStatic(); // Call this when linking to MFC statically
    #endif…………
    }
      

  3.   

    不好意思哈,我原先没有表述清楚,是在屏蔽掉了右上角的最大化按钮后,如果再调用ShowWindow(SW_SHOWMAXIMIZED)的话就会出现窗口铺满整个屏幕的效果,而不是最大化的效果,如果不屏蔽掉最大化按钮,就不会出现上述情况,现在还没有找出原因,有高手知道吗
      

  4.   

    自己处理最大化
    http://topic.csdn.net/t/20050710/19/4135232.html
      

  5.   

    是有这个问题
    没有特别好的解决方案
    不过我记得屏蔽最大化按钮不用屏蔽最大化消息
    也就是可以设置WS_MAXSIZEBOX风格
      

  6.   

    cs.style = cs.style&~WS_MAXIMIZEBOX&~WS_MINIMIZEBOX;
    使用这句话后在设置WS_MAXSIZEBOX就会出现全屏的显示,而不是最大化
    已经基本上解决了,原因我想还是和标题栏的最大化消息有关,尝试自己处理一下最大化消息