如何在Windows的窗口上使用WinAPI来管理全屏模式?用WinAPI进行全屏管理
这是我的问题:
我有一个应用程序必须是全屏。 我用的CDS_FULLSCREEN值ChangeDisplaySettings()函数(WINUSER.H)把我的窗口到全屏模式当接收WM_ACTIVATE
与(wParam == WA_ACTIVE || wParam == WA_CLICKACTIVE)
:
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);
我使用相同的功能与价值CDS_RESET把它背在“正常”模式下,当接收WM_ACTIVATE
与(wParam == WA_INACTIVE)
:
ChangeDisplaySettings(&dmScreenSettings, CDS_RESET);
当我第一次启动我的应用程序,它是在全屏。 我使用ALT + TAB切换到我的电脑上的另一个应用程序。我的应用程序本身最小化。它运作良好。 然后,我切换回我的应用程序,并以全屏模式进入。再次,它运作良好。 但是,如果我想再次切换回另一个应用程序,我的应用程序以全屏模式运行,将所有其他应用程序隐藏在我的计算机上。
注:我的窗户是用CreateWindowEx()函数具有以下参数创建:
DWORD dwExStyle = WS_EX_TOPMOST;
DWORD dwStyle = WS_VISIBLE | WS_POPUP;
1)有另一种方法比使用ChangeDisplaySettings()来改变全屏模式?
2)我使用它的好价值?
3)有什么要做的,我忘了?
在此先感谢您的答案。 此致敬礼,
只是为了好玩,当按键盘上的F11时会发生什么? – JustBoo 2010-08-23 17:34:11
@JustBoo:什么都没有......我的目标是强制我的应用程序在全屏显示,因为它被激活。 如果我在我的应用程序启动时按F11 ...它已经在全屏显示中......所以F11键没有任何作用。 – 2010-08-23 17:37:38
请参阅下面的新编辑。这应该允许您查看窗口当前处于什么状态并相应地调整(最小化)。希望。 – JustBoo 2010-08-23 17:42:47