使用qt获取其他程序窗口句柄时如何带上窗口的最大化最小化及关闭
时间: 2023-11-27 18:54:31 浏览: 100
MDI应用程序启动时主窗口默认最大化
获取其他程序窗口句柄后,可以使用 WinAPI 中的 SetWindowLong 函数来设置窗口的样式和行为,包括最大化、最小化、关闭等。具体步骤如下:
1. 在头文件中引入 Windows.h
```cpp
#include <Windows.h>
```
2. 获取其他程序窗口句柄
```cpp
HWND targetHwnd = FindWindow(NULL, "目标窗口标题");
```
3. 设置窗口样式和行为
```cpp
LONG_PTR style = GetWindowLongPtr(targetHwnd, GWL_STYLE);
style &= ~WS_CAPTION; //去掉标题栏
style &= ~WS_THICKFRAME; //去掉边框
style &= ~WS_MINIMIZEBOX; //去掉最小化按钮
style &= ~WS_MAXIMIZEBOX; //去掉最大化按钮
style |= WS_POPUP; //设置为弹出式窗口
SetWindowLongPtr(targetHwnd, GWL_STYLE, style);
LONG_PTR exStyle = GetWindowLongPtr(targetHwnd, GWL_EXSTYLE);
exStyle &= ~WS_EX_DLGMODALFRAME; //去掉对话框边框
exStyle &= ~WS_EX_CLIENTEDGE; //去掉客户端边框
exStyle &= ~WS_EX_STATICEDGE; //去掉静态边框
exStyle &= ~WS_EX_WINDOWEDGE; //去掉窗口边框
SetWindowLongPtr(targetHwnd, GWL_EXSTYLE, exStyle);
SetWindowPos(targetHwnd, HWND_TOP, 0, 0, 800, 600, SWP_FRAMECHANGED);
```
其中,第一个参数表示要设置的窗口句柄,第二个参数表示要设置的属性,第三个参数表示要设置的值。最后一行代码中,SetWindowPos 函数可以设置窗口的位置、大小和 Z 轴顺序,并刷新窗口边框。
注:在设置其他程序窗口的样式和行为时,需要确保程序以管理员权限运行,否则可能会导致设置失败。
阅读全文