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 ;

}

 

 

 

 

 

    原文作者:微澜-
    原文地址: https://blog.csdn.net/lgs790709/article/details/106584398
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞