我写了一个多文档的程序,并修改了其控制主框架窗口显示的函数
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if( !CMDIFrameWnd::PreCreateWindow(cs) )
return FALSE;
// TODO: Modify the Window class or styles here by modifying
//  the CREATESTRUCT cs int cxScreen = GetSystemMetrics(SM_CXSCREEN);
         int cyScreen = GetSystemMetrics(SM_CYSCREEN);
cs.cx=cxScreen;
cs.cy=cyScreen; return TRUE;
}我目的是想让窗口一开始显示时就最大化,这样修改,最大化是实现了,可状态栏却看不到了,因为它被操作系统的状态栏给档着了,我看过好多的应用程序,他们的状态栏在最大化时都会显示在操作系统状态栏的上面,不知这一点如何实现,请高人指点

解决方案 »

  1.   

    楼主其实可以不写代码就完成这一功能。如果写代码,也只需要设置一个属性就可以了:BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
    {
             if( !CFrameWnd::PreCreateWindow(cs) )
    return FALSE; cs.style = WS_OVERLAPPED | WS_CAPTION | FWS_ADDTOTITLE
    | WS_THICKFRAME | WS_SYSMENU | WS_MINIMIZEBOX
                      | WS_MAXIMIZEBOX | WS_MAXIMIZE; // WS_MAXIMIZE 就完成了这个功能 cs.dwExStyle &= ~WS_EX_CLIENTEDGE; cs.lpszClass = AfxRegisterWndClass(0);
    return TRUE;
    }
      

  2.   

    在InitInstance中
    m_pMainWnd->ShowWindow(SW_SHOWMAXIMIZED);即可实现最大化,不需要在PreCreateWindow中进行设置
      

  3.   

    Yes﹐在InitInstance中
    m_pMainWnd->ShowWindow(SW_SHOWMAXIMIZED);
    即可实现最大化
      

  4.   

    要全屏幕显示的话
    要将系统的状态拦隐藏掉在InitInstance中HWND hWnd=::FindWindow("Shell_TrayWnd",NULL);
    ::ShowWindow(hWnd,SW_HIDE);
      

  5.   

    HWND hWnd=::FindWindow("Shell_TrayWnd",NULL);
    ::ShowWindow(hWnd,SW_HIDE);
    m_pMainWnd->ShowWindow(SW_SHOWMAXIMIZED);