所以我试图将另一个应用程序移动到第二个屏幕然后我想用C ++全屏设置。
我从进程列表中获取应用程序的HWND句柄,然后我可以使用MoveWindow从我想要的窗口设置位置。这非常有效。
是否有类似的方法将应用程序设置为全屏?我似乎只能找到有关将您自己的应用程序设置为全屏的信息。但在这种情况下,我希望能够移动我想要的任何应用程序并将其设置为全屏。 (只要这是可能的,但出于我需要的目的,它应该是)
如果我在移动它后按下窗口上的Alt + Enter,它就会完全符合我的要求。所以我希望我能从代码中做到这一点?
编辑:BTW我试过ShowWindow(windowToMove,SHOW_FULLSCREEN); 但它似乎最大化它,但它与ALT + ENTER不相似。提前感谢您的帮助!
答案 0 :(得分:3)
BOOL IsWindowMode = TRUE;
WINDOWPLACEMENT wpc;
LONG HWNDStyle = 0;
LONG HWNDStyleEx = 0;
void FullScreenSwitch( )
{
if ( IsWindowMode )
{
IsWindowMode = FALSE;
GetWindowPlacement( HWNDWindow, &wpc );
if ( HWNDStyle == 0 )
HWNDStyle = GetWindowLong( HWNDWindow, GWL_STYLE );
if ( HWNDStyleEx == 0 )
HWNDStyleEx = GetWindowLong( HWNDWindow, GWL_EXSTYLE );
LONG NewHWNDStyle = HWNDStyle;
NewHWNDStyle &= ~WS_BORDER;
NewHWNDStyle &= ~WS_DLGFRAME;
NewHWNDStyle &= ~WS_THICKFRAME;
LONG NewHWNDStyleEx =HWNDStyleEx;
NewHWNDStyleEx &= ~WS_EX_WINDOWEDGE;
SetWindowLong( HWNDWindow, GWL_STYLE, NewHWNDStyle | WS_POPUP );
SetWindowLong( HWNDWindow, GWL_EXSTYLE, NewHWNDStyleEx | WS_EX_TOPMOST );
ShowWindow( HWNDWindow, SW_SHOWMAXIMIZED );
}
else
{
IsWindowMode = TRUE;
SetWindowLong( HWNDWindow, GWL_STYLE, HWNDStyle );
SetWindowLong( HWNDWindow, GWL_EXSTYLE, HWNDStyleEx );
ShowWindow( HWNDWindow, SW_SHOWNORMAL );
SetWindowPlacement( HWNDWindow, &wpc );
}
}
此代码切换窗口窗口全屏和后退。 (WINAPI,需要在窗口模式下启动目标进程)