参考帖子 http://topic.csdn.net/u/20090602/17/ab3c63c2-22a2-4933-a069-dfc6aa44d8b6.html
1)窗体全屏
bool m_bFullScreen=true;//!m_bFullScreen; // 设置全屏显示标志
//一种更好的全屏显示
LONG style = ::GetWindowLong(this->m_hWnd,GWL_STYLE);
if(m_bFullScreen)//全屏显示
{
style &= ~(WS_DLGFRAME | WS_THICKFRAME);
SetWindowLong(this->m_hWnd,GWL_STYLE, style);
this->ShowWindow(SW_SHOWMAXIMIZED);
CRect rect;
this->GetWindowRect(&rect);
::SetWindowPos(this->m_hWnd,HWND_NOTOPMOST,rect.left-1, rect.top-1, rect.right-rect.left + 3, rect.bottom-rect.top + 3, SWP_FRAMECHANGED);
}
else
{
style |= WS_DLGFRAME | WS_THICKFRAME;
SetWindowLong(this->m_hWnd, GWL_STYLE, style);
this->ShowWindow(SW_NORMAL);
}
2)Activex窗体全屏
bool m_bFullScreen=false;
HWND m_hWndParent;
void CFfDlg::OnLButtonDblClk(UINT nFlags, CPoint point)
{
CDialog::OnLButtonDblClk(nFlags, point);
m_bFullScreen=!m_bFullScreen; // 设置全屏显示标志
//一种更好的全屏显示
LONG style = ::GetWindowLong(this->m_hWnd,GWL_STYLE);
if(m_bFullScreen)//全屏显示
{
//用MFC隐藏系统任务栏
CWnd * wnd = FindWindow("Shell_TrayWnd",NULL);
wnd->SetWindowPos(NULL,0,0,0,0,SWP_HIDEWINDOW);
m_hWndParent=::GetParent(m_hWnd);
::ShowWindow(m_hWndParent,SW_HIDE);
::SetParent(m_hWnd,NULL);
style &= ~(WS_DLGFRAME | WS_THICKFRAME);
SetWindowLong(this->m_hWnd,GWL_STYLE, style);
this->ShowWindow(SW_SHOWMAXIMIZED);
//CRect rect;
//this->GetWindowRect(&rect);
//::SetWindowPos((this->m_hWnd,HWND_NOTOPMOST,rect.left-1, rect.top-1, rect.right-rect.left + 3, rect.bottom-rect.top + 3, SWP_FRAMECHANGED);
int nScreenWidth=GetSystemMetrics(SM_CXSCREEN);
int nScreenHeight=GetSystemMetrics(SM_CYSCREEN);
::SetWindowPos(this->m_hWnd,HWND_NOTOPMOST,0,0, nScreenWidth,nScreenHeight, SWP_FRAMECHANGED);
}
else
{
//用MFC显示系统任务栏
CWnd * wnd = FindWindow("Shell_TrayWnd",NULL);
wnd->SetWindowPos(NULL,0,0,0,0,SWP_SHOWWINDOW);
style |= WS_DLGFRAME | WS_THICKFRAME;
SetWindowLong(this->m_hWnd, GWL_STYLE, style);
::SetParent(m_hWnd,m_hWndParent);
::ShowWindow(m_hWndParent,SW_SHOW);
}
}