首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

MFC Check Box 實現全選/取消全選功能

     編輯:程式設計綜合問答

需求描述

在 VC++ MFC 對話框中,實現一個「全選」Check Box 控制多個子 Check Box 的勾選狀態,並支持再次點擊取消全選。

界面示意

核心代碼實現

// 假設子 Check Box 的 ID 為連續或已知
UINT ids[] = { IDC_CHECK1, IDC_CHECK2, IDC_CHECK3 /*, ...*/ };

void OnCheckAll() {
    BOOL checkedAll = ((CButton*)GetDlgItem(IDC_CHECK_ALL))->GetCheck();
    for (int i = 0; i < sizeof(ids)/sizeof(ids[0]); ++i) {
        CheckDlgButton(ids[i], checkedAll ? BST_CHECKED : BST_UNCHECKED);
    }
}

關鍵點

  • 使用 CheckDlgButton 統一設置子項狀態;
  • 將「全選」框的 BN_CLICKED 事件綁定到 OnCheckAll;
  • 若 ID 不連續,可用數組或容器存儲所有子項 ID。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved