c++如何写出单选按钮
时间: 2023-07-19 20:41:36 浏览: 58
在 C++ 中,可以使用 Windows API 或者 Qt 等第三方库来实现单选按钮。
以下是使用 Windows API 创建单选按钮的示例代码:
```c++
#include <windows.h>
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
// 创建窗口
HWND hwnd = CreateWindowEx(
0,
"MyWindowClass",
"My Window",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT, 500, 500,
NULL,
NULL,
hInstance,
NULL);
// 创建单选按钮
HWND hRadio1 = CreateWindow(
"BUTTON",
"Option 1",
WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON,
20, 20, 100, 30,
hwnd,
(HMENU) 1,
hInstance,
NULL);
HWND hRadio2 = CreateWindow(
"BUTTON",
"Option 2",
WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON,
20, 60, 100, 30,
hwnd,
(HMENU) 2,
hInstance,
NULL);
// 显示窗口
ShowWindow(hwnd, nCmdShow);
// 消息循环
MSG msg;
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return 0;
}
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch (msg)
{
case WM_DESTROY:
PostQuitMessage(0);
break;
}
return DefWindowProc(hwnd, msg, wParam, lParam);
}
```
以上代码中,使用 CreateWindow 函数创建了两个单选按钮,分别为 "Option 1" 和 "Option 2",并且指定了它们的样式为 BS_AUTORADIOBUTTON,表示自动排除其他单选按钮的选中状态。
需要注意的是,单选按钮的选中状态可以使用 SendMessage 函数的 BM_SETCHECK 消息来设置,例如:
```c++
// 设置选中状态为真
SendMessage(hRadio1, BM_SETCHECK, BST_CHECKED, 0);
// 设置选中状态为假
SendMessage(hRadio1, BM_SETCHECK, BST_UNCHECKED, 0);
```
阅读全文