VC用EnumChildWindows枚举所有复选框,并勾选(取消勾选)

来源:互联网 发布:三星note4软件搬家 编辑:程序博客网 时间:2024/05/02 14:37
//此函数为对话框初始化函数,默认勾选所有复选框BOOL CD_BombData::OnInitDialog() {CDialog::OnInitDialog();EnumChildWindows(m_hWnd,EnumChildProc,(LPARAM)BST_CHECKED);return TRUE; }//此函数为按键响应函数,按下后取消勾选所有复选框void CD_BombData::OnNone() {// TODO: Add your control notification handler code hereEnumChildWindows(m_hWnd,EnumChildProc,(LPARAM)BST_UNCHECKED);}//此函数为回调函数,必须在类的头文件声明为staticBOOL CALLBACK CD_BombData::EnumChildProc(HWND hwnd, LPARAM lParam){char szClsName[64];GetClassName(hwnd,szClsName,sizeof(szClsName));if (strcmp(szClsName,"Button")==0)//注意是"Button"不是"BUTTON"{if ((GetWindowLong(hwnd,GWL_STYLE)&BS_CHECKBOX)==2)//注意"==2"不是"==1"{::CheckDlgButton(::GetParent(hwnd),::GetWindowLong(hwnd,GWL_ID),(DWORD)lParam);//注意用::GetParent(hwnd),因为此次参数为对话框的句柄不是控件句柄!}}return TRUE;//必须为TRUE}
//同理 若想枚举并设置其他控件,例如,editbox,radiobox,只需要改动
//if (strcmp(szClsName,"Button")==0)和if((GetWindowLong(hwnd,GWL_STYLE)&BS_CHECKBOX)==2)
//即可


0 0
原创粉丝点击