窗体全屏

来源:互联网 发布:mac pro2017 发热严重 编辑:程序博客网 时间:2024/06/10 23:58

参考帖子 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); 
    }
}

原创粉丝点击