我正在开发一个带有分组复选框的程序,但在不同句柄之间传递消息时感到困惑。
集成开发环境为VC++,Win32 API。
首先,我有一个主窗口,它有一个句柄,称为hWnd。
在WM_CREATE情况下的WndProc函数中,我们创建了“组合按钮”和单独的2个复选框。
注意:第一个按钮使用“BS_GROUPBOX”样式,并且是使用句柄hGrpButton创建的,而其父处理程序是hWnd。第二个和第三个按钮是“BS_AUTORADIOBUTTON”样式,并且它们的父处理程序是hGrpButton。
如果这两个按钮没有分组(因此它们的父处理程序将是hWnd),那么检查它们的状态就很容易。只需转到WM_COMMAND情况并使用它们的ID与IsDlgButtonChecked函数进行检查。当这两个复选框被分组后(它们的父句柄不再是hWnd而是hGrpButtons),我认为WM_COMMAND情况将无法找到它们的ID,因为它正在寻找hWnd下的ID。
简而言之,在2个复选框分组后,我不知道要监视它们的事件是什么。
集成开发环境为VC++,Win32 API。
首先,我有一个主窗口,它有一个句柄,称为hWnd。
在WM_CREATE情况下的WndProc函数中,我们创建了“组合按钮”和单独的2个复选框。
注意:第一个按钮使用“BS_GROUPBOX”样式,并且是使用句柄hGrpButton创建的,而其父处理程序是hWnd。第二个和第三个按钮是“BS_AUTORADIOBUTTON”样式,并且它们的父处理程序是hGrpButton。
如果这两个按钮没有分组(因此它们的父处理程序将是hWnd),那么检查它们的状态就很容易。只需转到WM_COMMAND情况并使用它们的ID与IsDlgButtonChecked函数进行检查。当这两个复选框被分组后(它们的父句柄不再是hWnd而是hGrpButtons),我认为WM_COMMAND情况将无法找到它们的ID,因为它正在寻找hWnd下的ID。
简而言之,在2个复选框分组后,我不知道要监视它们的事件是什么。
case WM_CREATE:
{
/*Group for Radio button for preview/single or batch operation */
hGrpButtons=CreateWindowEx(WS_EX_WINDOWEDGE,
L"BUTTON",
L"Select Process Mode:",
WS_VISIBLE | WS_CHILD|BS_GROUPBOX, // Styles
10,280,
350,100,
hWnd,
NULL,
hInst, NULL);
CreateWindowEx(WS_EX_WINDOWEDGE,
L"BUTTON",
L"Batch Process Mode",
WS_VISIBLE | WS_CHILD|BS_AUTORADIOBUTTON, // Styles
10,20,
300,20,
hGrpButtons,
(HMENU)IDC_CHK1,
hInst, NULL);
CreateWindowEx(WS_EX_WINDOWEDGE,
L"BUTTON",
L"Single Process Mode (Preview Mode)",
WS_VISIBLE | WS_CHILD|BS_AUTORADIOBUTTON, // Styles
10,45,
300,20,
hGrpButtons,
(HMENU)IDC_CHK2,
hInst, NULL);