0
点赞
收藏
分享

微信扫一扫

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


 

编者:李国帅


背景原因:

对话框是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 ;

}

 

 

 

 

 

举报

相关推荐

0 条评论