MFC对话框窗口全屏 并覆盖任务栏

时间:2021-10-05 10:05:27

因为项目要用到,网上也有很多资料。自己算是比较简洁的实现了自己想要的功能而已,记录下来。

实现方法:

void CTouchPadMFCDlg::FullScreen()
{
	CRect rectDeskTop;
	WINDOWPLACEMENT wpnew;
	GetWindowPlacement(&wpnew);
	::GetWindowRect(::GetDesktopWindow(),rectDeskTop);
	::AdjustWindowRectEx(rectDeskTop,GetStyle(),FALSE,GetExStyle());
	wpnew.showCmd = SW_SHOWNORMAL;
	wpnew.rcNormalPosition = rectDeskTop;
	SetWindowPlacement(&wpnew);
}

这样全屏之后并不会覆盖任务栏。

只需要将对话框属性中的Border改为Dialog Frame即可。


另:

更改对话框客户区的颜色,在OnPaint()中添加。

		// 绘制图标
		dc.DrawIcon(x, y, m_hIcon);
	}
	else
	{
		CDC *pDc = GetDC();
		CRect ClientRect;
		GetClientRect(&ClientRect);
		pDc->FillSolidRect(ClientRect,RGB(255,255,255));
		CDialogEx::OnPaint();
	}

因为自己需要,只是简单的实现了全屏而已,另外如何退出等,就大家再去添加了。

源码   http://download.csdn.net/detail/u012570736/6850969