Win32如何制作多个复选框并以不同的方式管理它们
WIN32 How to make multiple checkboxes and manage them differently?
我正在尝试在C Win32中编写一个程序,其中我需要有多个复选框。更具体地说,该程序具有多个"页面"(用户单击下一个按钮后,我删除任何子窗口并将其替换为新窗口)。因此,为了保持代码易于理解,我需要一个函数,当被称为时会提出几个字段(我知道如何处理这些字段)和一些复选框。问题是我不知道如何管理每个hwnd,因此我单击的任何盒子都只能运行相同的代码(并且不选中任何框)。MSDN没有提供太多帮助,我发现的唯一信息来源是如何在Win32中制作复选框?这是我的代码到达的一部分。
/* checked_box1 , checked_box2 are globals */
LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam,
LPARAM lParam)
{
switch (message)
{
case WM_CREATE:
draw_obtions_screen(hwnd);
break;
case WM_COMMAND:
checked_box1 = IsDlgButtonChecked(draw_object, 1);
if (checked_box1) {
CheckDlgButton(hwnd, 1, BST_UNCHECKED);
SetWindowText(hwnd, TEXT("y"));
} else {
CheckDlgButton(hwnd, 1, BST_CHECKED);
SetWindowText(hwnd,"x");
}
checked_box2 = IsDlgButtonChecked(draw_object1, 1);
if (checked_box2) {
CheckDlgButton(hwnd, 1, BST_UNCHECKED);
SetWindowText(hwnd, TEXT("Y"));
} else {
CheckDlgButton(hwnd, 1, BST_CHECKED);
SetWindowText(hwnd,"X");
}
case WM_DESTROY:
PostQuitMessage (0);
break;
default:
return DefWindowProc (hwnd, message, wParam, lParam);
}
return 0;
}
......
/* HWND draw_object,draw_object1 are global. The function is also prev declared*/
void draw_obtions_screen(HWND hwnd)
{
draw_object = CreateWindow ("BUTTON","check",
WS_VISIBLE | WS_CHILD | BS_CHECKBOX,
110, 10 ,100 ,30,
hwnd, NULL,NULL,NULL);
CheckDlgButton(hwnd, 1, BST_CHECKED);
draw_object1 = CreateWindow ("BUTTON","check another",
WS_VISIBLE | WS_CHILD | BS_CHECKBOX,
110, 60 ,130 ,30,
hwnd, NULL,NULL,NULL);
CheckDlgButton(hwnd, 1, BST_UNCHECKED);
}
代码将窗口的标题更改为" x"(在我单击的任何盒子上),然后什么也没有。
我将重新计算任何类型的信息源或答案。另外,请留下一些信息来源供我进一步学习。谢谢!
您可以通过HMENU参数分配孩子ID到具有WS_CHILD样式的任何窗口(即,一个子窗口获取ID而不是菜单)。
)。然后将ID作为所有WM_Command消息的一部分发送。
相关文章:
- 如何在c++中为模板函数实例创建快捷方式
- 当vector是tje全局变量时,c++中vector的内存管理
- 在c代码之间共享数据的最佳方式
- 在C++中将函数压缩为两种方式
- 如何以编程方式获取任务管理器进程CPU使用率(不是PerfMon API)
- Win32如何制作多个复选框并以不同的方式管理它们
- 正确的内存管理方式
- 以可维护的方式管理应用程序配置的模式
- 使用QThread运行可管理后台线程的正确方式
- 管理指向派生对象的指针集合的最佳方式
- 内存管理使用新的放置方式
- 使用git管理的c++项目在不同的机器上使用相同的输入以不同的方式运行
- SetupDi API:以编程方式控制设备管理器功能
- 在WinAPI项目中管理字符串资源的现代方式
- C++:如何在 Windows 凭据管理器中以编程方式创建本地用户登录凭据,以便"runas /savecred"可以使用它?
- 正确的方式来管理内存在Qt时暴露QObject类到qml
- 创建特殊文件夹(如控制面板或计算机管理)的快捷方式
- C/ c++以一种特定的方式管理输出
- 这是一种可接受的资源管理方式吗?
- 如何以编程方式发送电子邮件,就像在 Windows 资源管理器中"Send To Mail Recipient"一样?