新建一个SDI
BOOL CMytestApp::InitInstance()
{
.......
前面省略
    CCommandLineInfo cmdInfo;
    ParseCommandLine(cmdInfo);
// Dispatch commands specified on the command line
    if (!ProcessShellCommand(cmdInfo))
               return FALSE;
    m_pMainWnd->ShowWindow(SW_SHOWMAXIMIZED);//最大化第一句
    m_pMainWnd->UpdateWindow();
    return TRUE;
}
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
    if( !CFrameWnd::PreCreateWindow(cs) )
        return FALSE;
    // TODO: Modify the Window class or styles here by modifying
    cs.style &= ~(WS_MAXIMIZEBOX);//第二句
    return TRUE;
}
本意是最大化后禁止还原,但窗口变大了,就是状态栏被系统任务栏挡住了,怎么解决??

解决方案 »

  1.   

    可以 考虑 不使用  m_pMainWnd->ShowWindow(SW_SHOWMAXIMIZED);而在BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
    中 设置窗口 大小。
      

  2.   

    这样也可以啊:
    void CMainFrame::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI) 
    {
    // TODO: Add your message handler code here and/or call default
    //指定窗口的大小
    lpMMI->ptMaxTrackSize.x = 1024;
    lpMMI->ptMaxTrackSize.y = 768;
    lpMMI->ptMinTrackSize.x = 1024;
    lpMMI->ptMinTrackSize.y = 768; CFrameWnd::OnGetMinMaxInfo(lpMMI);
    }