用CW_USEDEFAULT创造一个在窗口正中间的静态文本框,无论窗口大小如何发生改变
时间: 2024-02-22 07:58:53 浏览: 67
改变窗口大小的对话框
5星 · 资源好评率100%
可以使用以下代码来创建一个在窗口正中间的静态文本框:
```c++
HWND hStatic = CreateWindow(
L"STATIC", // 静态文本框的窗口类名
L"Hello World", // 窗口标题
WS_VISIBLE | WS_CHILD, // 窗口样式
CW_USEDEFAULT, // 窗口的 X 坐标
CW_USEDEFAULT, // 窗口的 Y 坐标
CW_USEDEFAULT, // 窗口的宽度
CW_USEDEFAULT, // 窗口的高度
hWnd, // 父窗口句柄
NULL, // 菜单句柄
hInstance, // 实例句柄
NULL // 附加参数
);
// 获取父窗口的客户区大小
RECT rc;
GetClientRect(hWnd, &rc);
// 获取静态文本框的大小
RECT rcStatic;
GetClientRect(hStatic, &rcStatic);
// 计算静态文本框的新位置
int x = (rc.right - rc.left - rcStatic.right + rcStatic.left) / 2;
int y = (rc.bottom - rc.top - rcStatic.bottom + rcStatic.top) / 2;
// 设置静态文本框的新位置
SetWindowPos(hStatic, NULL, x, y, 0, 0, SWP_NOSIZE | SWP_NOZORDER);
```
在上面的代码中,`CW_USEDEFAULT` 表示使用默认的窗口坐标和大小。当创建静态文本框时,将其坐标和大小设置为 `CW_USEDEFAULT`,这样它就会自动放置在窗口的中心位置。然后,使用 `GetClientRect` 函数获取父窗口的客户区大小和静态文本框的大小,计算出静态文本框的新位置,并使用 `SetWindowPos` 函数将其移动到新位置。
阅读全文