MFC 中的全屏窗口

Posted

技术标签:

【中文标题】MFC 中的全屏窗口【英文标题】:Full screen window in MFC 【发布时间】:2015-03-25 16:20:36 【问题描述】:

我正在使用 MFC 来制作应用程序。当我单击该应用程序时,它必须全屏显示。我遵循该代码

CRect rcDesktop;
rcDesktop.left = GetSystemMetrics(SM_XVIRTUALSCREEN);
rcDesktop.right = rcDesktop.left + GetSystemMetrics(SM_CXVIRTUALSCREEN);
rcDesktop.top = GetSystemMetrics(SM_YVIRTUALSCREEN);
rcDesktop.bottom = rcDesktop.top + GetSystemMetrics(SM_CYVIRTUALSCREEN);
MoveWindow(rcDesktop, FALSE);

但是,它仅适用于多台显示器。如果我也有两台显示器,但我想在一台显示器上显示全屏应用程序。如何实施。我遵循document 并尝试了

CRect rcDesktop;
rcDesktop.left = GetSystemMetrics(SM_CVSCREEN);
rcDesktop.right = rcDesktop.left + GetSystemMetrics(SM_CXFULLSCREEN);
rcDesktop.top = GetSystemMetrics(SM_CVSCREEN);
rcDesktop.bottom = rcDesktop.top + GetSystemMetrics(SM_CYFULLSCREEN);
MoveWindow(rcDesktop, FALSE);

但是,它不起作用。因为我需要把坐标放在

rcDesktop.right = rcDesktop.left + GetSystemMetrics(SM_CXFULLSCREEN);

你能帮我修复我的代码吗?我正在使用 Visual Studio 2012 和 MFC

【问题讨论】:

阅读this Microsoft documentation应该会给你一些线索。 我想单显示而不是多显示。对于第一个代码,它适用于多个显示 【参考方案1】:

在您的视图类中执行以下操作:

SetParent(GetDesktopWindow());
CRect rect;
GetDesktopWindow()->GetWindowRect(&rect);
SetWindowPos(&wndTopMost,rect.left,rect.top,rect.right,rect.bottom,SWP_SHOWWINDOW);

【讨论】:

以上是关于MFC 中的全屏窗口的主要内容,如果未能解决你的问题,请参考以下文章

使用 VS6 C++ GUI 编辑器、MFC 以屏幕(像素)为单位调整全屏窗口大小?

Python:文本覆盖在所有窗口之上,包括 Linux 中的全屏

在 Gnome 3 下使用 Qt,Xfce 和 Unity 一个带有子窗口的全屏窗口不会停留在顶部

加载文档时的全屏浏览器窗口

在窗口调整大小时使用 jquery 的全屏图像?

将弹出窗口显示为 iPhone 的全屏