给CMainFrame添加相应最大化菜单的OnFull()
{
m_wndToolBar.ShowWindow(SW_HIDE);
m_wndStatusBar.ShowWindow(SW_HIDE);
SetMenu(NULL);
LONG style=::GetWindowLong(m_hWnd,GWL_STYLE);
style&=~WS_CAPTION;
::SetWindowLong(m_hWnd,GWL_STYLE,style);
int screenx=GetSystemMetrics(SM_CXSCREEN);
int screeny=GetSystemMetrics(SM_CYSCREEN);
SetWindowPos(NULL,-4,-4,screenx+8,screeny+8,SWP_NOZORDER);
ShowWindow(SW_SHOWMAXIMIZED);
RecalcLayout();
}done
{
m_wndToolBar.ShowWindow(SW_HIDE);
m_wndStatusBar.ShowWindow(SW_HIDE);
SetMenu(NULL);
LONG style=::GetWindowLong(m_hWnd,GWL_STYLE);
style&=~WS_CAPTION;
::SetWindowLong(m_hWnd,GWL_STYLE,style);
int screenx=GetSystemMetrics(SM_CXSCREEN);
int screeny=GetSystemMetrics(SM_CYSCREEN);
SetWindowPos(NULL,-4,-4,screenx+8,screeny+8,SWP_NOZORDER);
ShowWindow(SW_SHOWMAXIMIZED);
RecalcLayout();
}done
窗口最大化以后,怎么恢复呢?
窗口最大化以后,怎么恢复呢?
http://www.csdn.net/Expert/topic/481/481464.shtm
LONG tmpStyle = m_lWndStyle & ~WS_OVERLAPPEDWINDOW;
int cx = ::GetSystemMetrics(SM_CXSCREEN);
int cy = ::GetSystemMetrics(SM_CYSCREEN);
::SetWindowLong(m_hWnd, GWL_STYLE, tmpStyle);
::SetWindowPos(m_hWnd, HWND_TOPMOST, -1, -1, cx + 1, cy + 1, SWP_FRAMECHANGED);
~~~~~~~~~~~~~~~~
注意这个标志
sam1111(化神奇为腐朽) 可能对的,我用SystemParameterInfo(SPI_SETWORKAREA....)也可以的。 不过多谢 kittity 上个问题的提示,我才在 MSDN 上找到相关的资料。 呵呵,送分了........................