窗体全屏

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值