CreateWindowEx 创建单选按钮BS_AUTORADIOBUTTON ,背景红色 提供一个小例子
时间: 2024-09-30 11:13:02 浏览: 42
CreateWindowEx 是Windows API函数,用于创建一个窗口的实例,包括其子控件。如果你想在一个窗口中创建一个背景为红色的自动复选框(即单选按钮BS_AUTORADIOBUTTON),你需要调用CreateWindowEx函数,并指定相应的风格、类等参数。
下面是一个简短的小例子,假设我们已经有了一个窗口类(如WNDCLASS wc):
```cpp
#include <windows.h>
#include <commctrl.h>
LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) {
switch (msg) {
// 其他窗口处理...
case WM_CREATE:
{
DWORD dwStyle = WS_VISIBLE | BS_AUTORADIOBUTTON; // 设置窗口样式为可见并启用自动复选状态
DWORD dwExStyle = WS_EX_CLIENTEDGE; // 可选的一些扩展样式,如边框
int nID = (int)wParam;
HWND radioButton = CreateWindowEx(
dwExStyle,
TEXT("BUTTON"), // 控件类名通常就是"BUTTON"
TEXT("Single Radio Button"), // 文本标签
dwStyle,
0, 0, // x, y坐标
0, 0, // 预计宽度和高度,如果不确定,可以使用CW_USEDEFAULT
NULL, // 父窗口句柄
(HMENU)nID, // 菜单项ID
hWnd, // 所属窗口句柄
NULL // 参数
);
if (radioButton) {
// 设置背景颜色
HBRUSH redBrush = CreateSolidBrush(RGB(255, 0, 0)); // 红色
SelectObject(radioButton, redBrush);
DeleteObject(redBrush); // 注意释放brush资源
}
}
break;
//...
}
return DefWindowProc(hWnd, msg, wParam, lParam);
}
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, INT nCmdShow) {
// 初始化窗口类
WNDCLASS wc = { ... };
RegisterClass(&wc);
// 创建窗口
HWND hWnd = CreateWindowEx(NULL, wc.lpClassName, "Red Background Radio Button", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL);
// 显示消息循环
MSG msg;
while (GetMessage(&msg, NULL, 0, 0)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return 0;
}
```
在这个示例中,我们在WM_CREATE消息处理函数中创建了一个单选按钮,并设置了红色背景。记得替换`TEXT("BUTTON")`为你实际需要的控件类名。运行这个程序会看到一个带有红色背景的单选按钮。
阅读全文