// 刷新父控件下面所有同一个组的RadioButton控件的状态 BOOL CMenuItem::ResetGroupCheck() { CDuiObject* pParentObj = GetParent(); if(pParentObj == NULL) { return FALSE; } vector<CControlBase*>* pvecControl = NULL; if(pParentObj->IsClass(_T("dlg"))) { CDlgBase* pDlg = static_cast<CDlgBase*>(pParentObj); pvecControl = pDlg->GetControls(); }else if(pParentObj->IsClass(_T("popup"))) { CDlgPopup* pDlg = static_cast<CDlgPopup*>(pParentObj); pvecControl = pDlg->GetControls(); }else { CControlBase* pControlBase = static_cast<CControlBase*>(pParentObj); pvecControl = pControlBase->GetControls(); } if(pvecControl == NULL) { return FALSE; } for(int i=0; i<(int)pvecControl->size(); i++) { CControlBase* pControlBase = pvecControl->at(i); if(pControlBase->IsClass(CMenuItem::GetClassName()) && pControlBase->GetVisible() && !pControlBase->GetDisable()) { CMenuItem* pControl = static_cast<CMenuItem*>(pControlBase); if((pControl->GetGroupName() == m_strGroupName) && (pControl != this)) { // 重置控件状态 pControl->SetControlCheck(FALSE); } } } return TRUE; }
// 获取所在Radio组选择的控件的值 CString CMenuItem::GetGroupValue() { CDuiObject* pParentObj = GetParent(); if(pParentObj == NULL) { return _T(""); } vector<CControlBase*>* pvecControl = NULL; if(pParentObj->IsClass(_T("dlg"))) { CDlgBase* pDlg = static_cast<CDlgBase*>(pParentObj); pvecControl = pDlg->GetControls(); }else if(pParentObj->IsClass(_T("popup"))) { CDlgPopup* pDlg = static_cast<CDlgPopup*>(pParentObj); pvecControl = pDlg->GetControls(); }else { CControlBase* pControlBase = static_cast<CControlBase*>(pParentObj); pvecControl = pControlBase->GetControls(); } if(pvecControl == NULL) { return _T(""); } for(int i=0; i<(int)pvecControl->size(); i++) { CControlBase* pControlBase = pvecControl->at(i); if(pControlBase->IsClass(CMenuItem::GetClassName()) && pControlBase->GetVisible() && !pControlBase->GetDisable()) { CMenuItem* pControl = static_cast<CMenuItem*>(pControlBase); if((pControl->GetGroupName() == m_strGroupName) && pControl->GetCheck()) { return pControl->GetValue(); } } } return _T(""); }