思路: 双击窗体 1。把嵌入在ActiveX里有窗体“跳”出来 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); } }