void COptionUI::Selected(bool bSelected, bool bTriggerEvent) { if( m_bSelected == bSelected ) return; m_bSelected = bSelected; if( m_bSelected ) m_uButtonState |= UISTATE_SELECTED; else m_uButtonState &= ~UISTATE_SELECTED; if( m_pManager != NULL ) { if( !m_sGroupName.IsEmpty() ) { if( m_bSelected ) { CStdPtrArray* aOptionGroup = m_pManager->GetOptionGroup(m_sGroupName); for( int i = 0; i < aOptionGroup->GetSize(); i++ ) { COptionUI* pControl = static_cast<COptionUI*>(aOptionGroup->GetAt(i)); if( pControl != this ) { pControl->Selected(false, bTriggerEvent); } } if (bTriggerEvent) m_pManager->SendNotify(this, DUI_MSGTYPE_SELECTCHANGED); } } else { if (bTriggerEvent) m_pManager->SendNotify(this, DUI_MSGTYPE_SELECTCHANGED); } } Invalidate(); }
void CSysOptionUI::Selected() { if(!m_pWnd){ m_bSelected = true; return; } if(IsSelected()) return; ::SendMessage(*m_pWnd, BM_SETCHECK, BST_CHECKED, 0); if( m_pManager != NULL ) { if( !m_sGroupName.IsEmpty() ) { if( true ) { CStdPtrArray* aOptionGroup = m_pManager->GetOptionGroup(m_sGroupName); for( int i = 0; i < aOptionGroup->GetSize(); i++ ) { auto pControl = static_cast<CSysOptionUI*>(aOptionGroup->GetAt(i)); if( pControl != this && pControl->m_pWnd) { ::SendMessage(pControl->m_pWnd->GetHWND(), BM_SETCHECK, BST_UNCHECKED, 0); } } m_pManager->SendNotify(this, DUI_MSGTYPE_SELECTCHANGED); } } else { m_pManager->SendNotify(this, DUI_MSGTYPE_SELECTCHANGED); } } }
//加载常规控件皮肤 void CSafeCenterWnd::LoadNormalCtrlSkin() { int idx = 0; CStdPtrArray* pCtrls = NULL; //加载所有文本编辑框的皮肤 pCtrls = m_pm.FindSubControlsByClass(m_pm.GetRoot(),_TEXT("EditUI")); CEditUI* pEditUI = NULL; do { pEditUI = static_cast<CEditUI*>(pCtrls->GetAt(idx++)); if (pEditUI) { pEditUI->SetNormalImage("file='dialog\\edit.png' dest='0,0,500,22' source='0,0,500,22' corner='3,4,2,2'"); //pEditUI->SetHotImage("file='dialog\\edit.png' dest='0,0,500,22' source='0,22,500,44' corner='3,4,2,2'"); //pEditUI->SetFocusedImage("file='dialog\\edit.png' dest='0,0,500,22' source='0,44,500,66' corner='3,4,2,2'"); pEditUI->SetDisabledImage("file='dialog\\edit.png' dest='0,0,500,22' source='0,66,500,88' corner='3,4,2,2'"); } } while (pEditUI); }
CStdPtrArray::CStdPtrArray(const CStdPtrArray& src) : m_ppVoid(NULL), m_nCount(0), m_nAllocated(0) { for(int i=0; i<src.GetSize(); i++) Add(src.GetAt(i)); }
//加载常规控件皮肤 void CUseBoardCastWnd::LoadNormalCtrlSkin() { int idx = 0; CStdPtrArray* pCtrls = NULL; //加载所有文本编辑框的皮肤 pCtrls = m_pm.FindSubControlsByClass(m_pm.GetRoot(),_TEXT("EditUI")); CEditUI* pEditUI = NULL; do { pEditUI = static_cast<CEditUI*>(pCtrls->GetAt(idx++)); if (pEditUI) { if (pEditUI->GetName() == _T("Edt_ID")) { continue; } pEditUI->SetNormalImage("file='dialog\\edit.png' dest='0,0,500,30' source='0,0,500,22' corner='3,4,2,2'"); pEditUI->SetHotImage("file='dialog\\edit.png' dest='0,0,500,30' source='0,22,500,44' corner='3,4,2,2'"); pEditUI->SetFocusedImage("file='dialog\\edit.png' dest='0,0,500,30' source='0,44,500,66' corner='3,4,2,2'"); pEditUI->SetDisabledImage("file='dialog\\edit.png' dest='0,0,500,30' source='0,66,500,88' corner='3,4,2,2'"); } } while (pEditUI); //加载所有下拉列表框的皮肤 idx = 0; pCtrls = m_pm.FindSubControlsByClass(m_pm.GetRoot(),_TEXT("ComboUI")); CComboUI* pComboUI = NULL; do { pComboUI = static_cast<CComboUI*>(pCtrls->GetAt(idx++)); if (pComboUI) { pComboUI->SetNormalImage("file='dialog\\combo.png' dest='0,0,500,30' source='0,0,500,22' corner='5,2,22,0'"); pComboUI->SetHotImage("file='dialog\\combo.png' dest='0,0,500,30' source='0,22,500,44' corner='5,2,22,0'"); pComboUI->SetPushedImage("file='dialog\\combo.png' dest='0,0,500,30' source='0,44,500,66' corner='5,2,22,0'"); pComboUI->SetDisabledImage("file='dialog\\combo.png' dest='0,0,500,30' source='0,66,500,88' corner='5,2,22,0'"); RECT rc = {6,0,0,0}; pComboUI->SetItemTextPadding(rc); // CScrollBarUI* pVScroll = pComboUI->GetVerticalScrollBar(); // if (pVScroll) // { // pVScroll->SetBkNormalImage("file='dialog\\vscrollbar_back.png' dest='0,0,14,100' source='0,0,14,100' corner='0,0,0,0'"); // pVScroll->SetButton1NormalImage("file='dialog\\vscrollbar_up.png' dest='0,0,16,16' source='0,0,16,16' corner='0,0,0,0'"); // } } } while (pComboUI); //加载所有多选框的皮肤 idx = 0; pCtrls = m_pm.FindSubControlsByClass(m_pm.GetRoot(),_TEXT("OptionUI")); COptionUI* pOptionUI = NULL; do { pOptionUI = static_cast<COptionUI*>(pCtrls->GetAt(idx++)); if (pOptionUI) { if (lstrlen(pOptionUI->GetGroup()) == 0) //多选框 { pOptionUI->SetNormalImage("file='dialog\\check.png' dest='0,0,15,15' source='0,0,15,15' corner='0,0,0,0'"); pOptionUI->SetHotImage("file='dialog\\check.png' dest='0,0,15,15' source='15,0,30,15' corner='0,0,0,0'"); pOptionUI->SetSelectedImage("file='dialog\\check.png' dest='0,0,15,15' source='30,0,45,15' corner='0,0,0,0'"); RECT rc = {9,0,0,0}; pOptionUI->SetTextPadding(rc); } else //单选框 { pOptionUI->SetNormalImage("file='dialog\\radio.png' dest='0,0,15,15' source='0,0,15,15' corner='0,0,0,0'"); pOptionUI->SetHotImage("file='dialog\\radio.png' dest='0,0,15,15' source='15,0,30,15' corner='0,0,0,0'"); pOptionUI->SetSelectedImage("file='dialog\\radio.png' dest='0,0,15,15' source='30,0,45,15' corner='0,0,0,0'"); RECT rc = {18,0,0,0}; pOptionUI->SetTextPadding(rc); } } } while (pOptionUI); }
//加载常规控件皮肤 void CRightFrame::LoadNormalCtrlSkin() { int idx = 0; CStdPtrArray* pCtrls = NULL; pCtrls = m_pm.FindSubControlsByClass(m_pm.GetRoot(),_TEXT("EditUI")); CEditUI* pEditUI = NULL; RECT rcText = {4,1,4,0}; do { pEditUI = static_cast<CEditUI*>(pCtrls->GetAt(idx++)); if (pEditUI) { if (pEditUI->GetName() == _T("Talk_Edt_Inp")) { continue; } if (!pEditUI->IsReadOnly()) { pEditUI->SetNormalImage("file='dialog\\edit.png' dest='0,0,500,22' source='0,0,500,22' corner='3,4,2,2'"); pEditUI->SetHotImage("file='dialog\\edit.png' dest='0,0,500,22' source='0,22,500,44' corner='3,4,2,2'"); pEditUI->SetFocusedImage("file='dialog\\edit.png' dest='0,0,500,22' source='0,44,500,66' corner='3,4,2,2'"); pEditUI->SetDisabledImage("file='dialog\\edit.png' dest='0,0,500,22' source='0,66,500,88' corner='3,4,2,2'"); } else { pEditUI->SetNormalImage("file='dialog\\edit.png' dest='0,0,500,22' source='0,66,500,88' corner='3,4,2,2'"); pEditUI->SetHotImage("file='dialog\\edit.png' dest='0,0,500,22' source='0,66,500,88' corner='3,4,2,2'"); pEditUI->SetFocusedImage("file='dialog\\edit.png' dest='0,0,500,22' source='0,66,500,88' corner='3,4,2,2'"); pEditUI->SetDisabledImage("file='dialog\\edit.png' dest='0,0,500,22' source='0,66,500,88' corner='3,4,2,2'"); } pEditUI->SetTextPadding(rcText); } } while (pEditUI); idx = 0; pCtrls = m_pm.FindSubControlsByClass(m_pm.GetRoot(),_TEXT("ComboUI")); CComboUI* pComboUI = NULL; RECT rc = {6,0,30,0}; do { pComboUI = static_cast<CComboUI*>(pCtrls->GetAt(idx++)); if (pComboUI) { pComboUI->SetNormalImage("file='dialog\\combo.png' dest='0,0,500,22' source='0,0,500,22' corner='5,0,22,0'"); pComboUI->SetHotImage("file='dialog\\combo.png' dest='0,0,500,22' source='0,22,500,44' corner='5,0,22,0'"); pComboUI->SetPushedImage("file='dialog\\combo.png' dest='0,0,500,22' source='0,44,500,66' corner='5,0,22,0'"); pComboUI->SetDisabledImage("file='dialog\\combo.png' dest='0,0,500,22' source='0,66,500,88' corner='5,0,22,0'"); pComboUI->EnableScrollBar(true,false); pComboUI->SetItemTextPadding(rc); } } while (pComboUI); //加载所有多选框/单选框的皮肤 idx = 0; pCtrls = m_pm.FindSubControlsByClass(m_pm.GetRoot(),_TEXT("OptionUI")); COptionUI* pOptionUI = NULL; do { pOptionUI = static_cast<COptionUI*>(pCtrls->GetAt(idx++)); if (pOptionUI) { if (lstrlen(pOptionUI->GetGroup()) == 0) //多选框 { pOptionUI->SetNormalImage("file='dialog\\check.png' dest='0,0,15,15' source='0,0,15,15' corner='0,0,0,0'"); pOptionUI->SetHotImage("file='dialog\\check.png' dest='0,0,15,15' source='15,0,30,15' corner='0,0,0,0'"); pOptionUI->SetSelectedImage("file='dialog\\check.png' dest='0,0,15,15' source='30,0,45,15' corner='0,0,0,0'"); RECT rc = {9,0,0,0}; pOptionUI->SetTextPadding(rc); } else //单选框 { pOptionUI->SetNormalImage("file='dialog\\radio.png' dest='0,0,15,15' source='0,0,15,15' corner='0,0,0,0'"); pOptionUI->SetHotImage("file='dialog\\radio.png' dest='0,0,15,15' source='15,0,30,15' corner='0,0,0,0'"); pOptionUI->SetSelectedImage("file='dialog\\radio.png' dest='0,0,15,15' source='30,0,45,15' corner='0,0,0,0'"); RECT rc = {18,0,0,0}; pOptionUI->SetTextPadding(rc); } } } while (pOptionUI); }