Mfc中设置对话框全屏覆盖全桌面

 

编者:李国帅

qq:9611153 微信lgs9611153

背景原因:

对话框是PC程序中相当重要的内容,功能不复杂的时候常用用到。

这是一段老旧的代码,拿出来打个卡。

古老而老生常谈的技术,过去的记忆,留在手里只会发霉,拿出来也许有人看。

 

问题描述及期望效果:

打开一个对话框,内容全屏显示。

所需资源:

Vc,mfc

 

解决方案:


void CSimpleDlgDlg::OnBnClickedButton1()

{

         CDialog* pDlg;

         pDlg = this;

         //pDlg = m_pDlg;

         if(pDlg == NULL)return;



         DWORD WinStyle = pDlg->GetStyle();

         WINDOWPLACEMENT m_OldWndPlacement;



         pDlg->ModifyStyle(WS_CHILD,WS_POPUP);//修改风格

         pDlg->GetWindowPlacement(&m_OldWndPlacement); //保存位置信息



         // 获取屏幕的分辨率

         CRect m_FullScreenRect;

         m_FullScreenRect.left= 0;

         m_FullScreenRect.top = 0;

         m_FullScreenRect.right = ::GetSystemMetrics(SM_CXSCREEN);

         m_FullScreenRect.bottom = ::GetSystemMetrics(SM_CYSCREEN);



         BOOL m_bFullScreen=TRUE; // 设置全屏显示标志为 TRUE

         // 进入全屏显示状态

         WINDOWPLACEMENT wndpl;

         wndpl.length=sizeof(WINDOWPLACEMENT);

         wndpl.flags=0;

         wndpl.showCmd=SW_SHOWNORMAL;

         wndpl.rcNormalPosition= m_FullScreenRect;

         CWnd* _tempparent=pDlg->SetParent(NULL);//修改父窗口

         ::ShowWindow(_tempparent->m_hWnd,SW_HIDE);

         pDlg->SetWindowPlacement(&wndpl);



         return ;

}

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

微澜-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值