【发布时间】:2023-12-11 19:14:01
【问题描述】:
我正在尝试找出最小化/最大化另一个线程拥有的窗口的正确方法。我的目标窗口可以是全屏或不全屏(无论其状态如何,我都应该能够最小化和最大化它)。我已经尝试了 ShowWindow SW_MINIMIZE、SW_MAXIMIZE、SW_FORCEMINIMIZE 等的各种组合......但我能够实现的唯一结果是在它被最小化并使用ShowWindow(hWnd, SW_RESTORE) 全屏时恢复它(最大化)。
这是我用来检索我的句柄的代码:
#include <Windows.h>
#include <iostream>
// I'm a console application
int main(int argc, char* argv[]) {
HWND hWnd = FindWindow(TEXT("MyWindowClass"), NULL);
if(IsWindow(hWnd)) {
std::cout << "Window found!" << std::endl;
SetForegroundWindow(hWnd); // I'll give focus to my window. This is always working.
if(IsIconic(hWnd))
ShowWindow(hWnd, SW_RESTORE); // This is working only if the window is minimized while in fullscreen mode
Sleep(3000);
ShowWindow(hWnd, SW_MINIMIZE); // Not working. SW_FORCEMINIMIZE, SW_HIDE etc are not working either.
}
return 0;
}
【问题讨论】:
标签: c++ winapi fullscreen minimize maximize