gpt4 book ai didi

windows - 使用 WinAPI 进行全屏管理

转载 作者:可可西里 更新时间:2023-11-01 09:38:57 26 4
gpt4 key购买 nike

如何用好WinAPI来管理windows窗口的全屏模式?

这是我的问题:

我有一个必须全屏的应用程序。我使用带有 CDS_FULLSCREEN 值的 ChangeDisplaySettings() 函数 (winuser.h) 在接收到带有 (wParam == WA_ACTIVE || wParam == WA_CLICKACTIVE)< 的 WM_ACTIVATE 时将我的窗口置于全屏模式 :

DEVMODE dmScreenSettings;
memset (&dmScreenSettings, 0, sizeof (dmScreenSettings));
dmScreenSettings.dmSize = sizeof (dmScreenSettings);
dmScreenSettings.dmPelsWidth = 1280;
dmScreenSettings.dmPelsHeight = 720;
dmScreenSettings.dmBitsPerPel = 32;
dmScreenSettings.dmFields = DM_BITSPERPEL | DM_PELSWIDTH | DM_PELSHEIGHT;
ChangeDisplaySettings(&dmScreenSettings, CDS_FULLSCREEN);

当接收到带有 (wParam == WA_INACTIVE)WM_ACTIVATE 时,我使用与 CDS_RESET 值相同的函数将其恢复到“正常”模式:

ChangeDisplaySettings(&dmScreenSettings, CDS_RESET);

当我第一次启动我的应用程序时,它处于全屏模式。我使用 ALT+TAB 切换到我计算机上的另一个应用程序。我的应用程序自行最小化。它运作良好。然后,我切换回我的应用程序,它以全屏模式出现。同样,它运作良好。但是,如果我想再次切换回另一个应用程序,我的应用程序将处于全屏模式,隐藏我计算机上的所有其他应用程序。

注意:我的窗口是使用具有以下参数的 CreateWindowEx() 函数创建的:

DWORD dwExStyle = WS_EX_TOPMOST;
DWORD dwStyle = WS_VISIBLE | WS_POPUP;

1) 除了使用 ChangeDisplaySettings() 更改全屏模式之外,还有其他方法吗?

2) 我是否在使用它的良好值(value)?

3) 有什么事情我忘了吗?

提前感谢您的所有回答。最好的问候,

最佳答案

这些人似乎涵盖了所有选项。

Win32: full-screen and hiding taskbar


新编辑:基于新评论,试试这个。

陷阱WM_ACTIVATE该窗口的应用程序中的事件。在这种情况下,请调用 GetWindowPlacement Function希望你能顺利上路。请注意底部的“SetWindowPlacement”链接。

关于windows - 使用 WinAPI 进行全屏管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3549148/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com