CheckDlgButton()

本文介绍了CheckDlgButton函数的功能及用法,此函数用于改变对话框中按钮的选中状态,包括设置已选中、未选中及不确定状态。文章详细解释了函数参数及其返回值的意义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 函数功能:该函数改变按钮控制的选中状态。
  函数原型:BOOL CheckDlgButton(HWNDhDlg,int nlDButton,UINT uCheck);
  参数:
  hDlg:指向含有该按钮的对话框的句柄。
  nlDButton:标识要修改的按钮。
  uCheck:给定该按钮的选中状态。该参数可取下列值,这些值的含义如下:
  BST_CHECKED:设置按钮状态为己选中(checked)。
  BST_INDETERMINATE:设置按钮状态变灰,表示不确定状态。只有在该按钮具有BS_3STATE或BS_AUTO3STATE样式时才能使用该值。
  BST_UNCHECKED:设置按钮为未选中状态(unchecked)。
  返回值:如果函数执行成功,返回值非零;如果函数失败,则返回值为零。若想获取更多错误信息,请调用 GetLastError函数。
详细注释函数 INT_PTR CALLBACK HiderDialog(HWND hDlg, UINT Message, WPARAM wParam, LPARAM lParam) { switch (Message) { case WM_INITDIALOG: { UpdateOptions(hDlg); for (size_t i = 0; i < g_Settings->GetProfileNames().size(); i++) { SendDlgItemMessageA(hDlg, IDC_COB_CURRENTPROFILE, CB_ADDSTRING, 0, (LPARAM)g_Settings->GetProfileNames()[i].c_str()); if(g_Settings->GetCurrentProfileName() == g_Settings->GetProfileNames()[i]) SendDlgItemMessageA(hDlg, IDC_COB_CURRENTPROFILE, CB_SETCURSEL, i, 0); } CreateTooltips(hDlg); return TRUE; } case WM_CLOSE: { EndDialog(hDlg, 0); return TRUE; } case WM_COMMAND: { switch (LOWORD(wParam)) { case IDC_BTN_OK: { if (SaveOptions(hDlg) == FALSE) { _plugin_logprintf("Error: Saving options failed\n"); break; } MessageBoxW(hDlg, L"Settings applied!", L"[HyperHide Options]", MB_ICONINFORMATION); UpdateOptions(hDlg); Hide(); break; } case IDC_BTN_CREATENEWPROFILE: { std::string NewProfileName; NewProfileName.resize(GUI_MAX_LINE_SIZE); if (!GuiGetLineWindow("Pass new profile name", &NewProfileName[0])) break; if (g_Settings->AddProfile(NewProfileName) == FALSE) break; g_Settings->SaveProfile(); g_Settings->SetProfile(NewProfileName); SendDlgItemMessageA(hDlg, IDC_COB_CURRENTPROFILE, CB_ADDSTRING, 0, (LPARAM)NewProfileName.c_str()); int ProfileCount = SendDlgItemMessageA(hDlg, IDC_COB_CURRENTPROFILE, CB_GETCOUNT, 0, 0); SendDlgItemMessageA(hDlg, IDC_COB_CURRENTPROFILE, CB_SETCURSEL, ProfileCount - 1, 0); UpdateOptions(hDlg); break; } case IDC_COB_CURRENTPROFILE: { if (HIWORD(wParam) != CBN_SELCHANGE) break; int ProfileIdx = (int)SendDlgItemMessageA(hDlg, IDC_COB_CURRENTPROFILE, CB_GETCURSEL, 0, 0); g_Settings->SetProfile(g_Settings->GetProfileNames()[ProfileIdx]); UpdateOptions(hDlg); break; } case IDC_CHK_SELECT_ALL: { if (IsDlgButtonChecked(hDlg, IDC_CHK_SELECT_ALL) == TRUE) { for (size_t i = 0; i < CheckBoxNumber; i++) { BOOL status = CheckDlgButton(hDlg, i + IDC_CHK_NTQUERYINFORMATIONPROCESS, BST_CHECKED); } } else { for (size_t i = 0; i < CheckBoxNumber; i++) { CheckDlgButton(hDlg, i + IDC_CHK_NTQUERYINFORMATIONPROCESS, BST_UNCHECKED); } } break; } } } return TRUE; } return FALSE; }
最新发布
08-06
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值