BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
//{{AFX_MSG_MAP(CMainFrame)
......
ON_WM_GETMINMAXINFO()
......
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
void CMainFrame::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI)
{
if (IsFullScreen())
{
lpMMI->ptMaxSize.y = m_FullScreenWindowRect.Height();
lpMMI->ptMaxTrackSize.y = lpMMI->ptMaxSize.y;
lpMMI->ptMaxSize.x = m_FullScreenWindowRect.Width();
lpMMI->ptMaxTrackSize.x = lpMMI->ptMaxSize.x;
}
}
//{{AFX_MSG_MAP(CMainFrame)
......
ON_WM_GETMINMAXINFO()
......
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
void CMainFrame::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI)
{
if (IsFullScreen())
{
lpMMI->ptMaxSize.y = m_FullScreenWindowRect.Height();
lpMMI->ptMaxTrackSize.y = lpMMI->ptMaxSize.y;
lpMMI->ptMaxSize.x = m_FullScreenWindowRect.Width();
lpMMI->ptMaxTrackSize.x = lpMMI->ptMaxSize.x;
}
}
{
RECT rectDesktop;
WINDOWPLACEMENT wpNew; if (!IsFullScreen())
{
// need to hide all status bars
m_wndStatusBar.ShowWindow(SW_HIDE);
m_wndToolBar.ShowWindow(SW_HIDE); // We'll need these to restore the original state.
GetWindowPlacement (&m_wpPrev); m_wpPrev.length = sizeof m_wpPrev; //Adjust RECT to new size of window
::GetWindowRect ( ::GetDesktopWindow(), &rectDesktop );
::AdjustWindowRectEx(&rectDesktop, GetStyle(), TRUE,
GetExStyle()); // Remember this for OnGetMinMaxInfo()
m_FullScreenWindowRect = rectDesktop; wpNew = m_wpPrev;
wpNew.showCmd = SW_SHOWNORMAL;
wpNew.rcNormalPosition = rectDesktop; m_pwndFullScrnBar=new CToolBar; if(!m_pwndFullScrnBar->Create(this,
CBRS_SIZE_DYNAMIC|CBRS_FLOATING)
|| !m_pwndFullScrnBar->LoadToolBar(IDR_FULLSCREEN))
{
TRACE0("Failed to create toolbar\n");
return; // fail to create
} //don't allow the toolbar to dock
m_pwndFullScrnBar->EnableDocking(0);
m_pwndFullScrnBar->SetWindowPos(0,100,100,
0,0,SWP_NOSIZE|SWP_NOZORDER|SWP_NOACTIVATE|SWP_SHOWWINDOW);
m_pwndFullScrnBar->SetWindowText(_T("Full Screen"));
FloatControlBar(m_pwndFullScrnBar, CPoint(100,100));
m_bFullScreen=TRUE;
}
else
{
m_pwndFullScrnBar->DestroyWindow();
delete m_pwndFullScrnBar; m_bFullScreen=FALSE; m_wndStatusBar.ShowWindow(SW_SHOWNORMAL);
m_wndToolBar.ShowWindow(SW_SHOWNORMAL);
wpNew = m_wpPrev;
} SetWindowPlacement ( &wpNew );
} void CMainFrame::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI)
{
if (IsFullScreen())
{
lpMMI->ptMaxSize.y = m_FullScreenWindowRect.Height();
lpMMI->ptMaxTrackSize.y = lpMMI->ptMaxSize.y;
lpMMI->ptMaxSize.x = m_FullScreenWindowRect.Width();
lpMMI->ptMaxTrackSize.x = lpMMI->ptMaxSize.x;
} } BOOL CMainFrame::IsFullScreen()
{
return m_bFullScreen;
} void CMainFrame::OnUpdateViewFullScreen(CCmdUI* pCmdUI)
{
pCmdUI->Enable(); if (IsFullScreen())
pCmdUI->SetCheck();
else
pCmdUI->SetCheck(0);
}
在其中设置大小就可以了.