void CLoginFrameWnd::Init() { CComboUI* pAccountCombo = static_cast<CComboUI*>(m_pm.FindControl(_T("accountcombo"))); CEditUI* pAccountEdit = static_cast<CEditUI*>(m_pm.FindControl(_T("accountedit"))); if( pAccountCombo && pAccountEdit ) pAccountEdit->SetText(pAccountCombo->GetText()); pAccountEdit->SetFocus(); }
void RedisConfigUI::DoApplyData() { CEditUI exampleEditUI; CComboUI exampleComboUI; RedisClient::TDicConfig::const_iterator it = m_dicConfig.begin(); RedisClient::TDicConfig::const_iterator itend = m_dicConfig.end(); RedisClient::TDicConfig config; for ( ; it!=itend; ++it) { CDuiString name = _T("redisconfig_"); CDuiString key = CharacterSet::ANSIToUnicode(it->first).c_str(); name.Append(key); CControlUI* pCtl = GetPaintMgr()->FindControl(name); string val ; if (pCtl->GetClass() == exampleEditUI.GetClass()) { CEditUI* pEdit = static_cast<CEditUI*> (pCtl); val = CharacterSet::UnicodeToANSI(pEdit->GetText().GetData()); } else if (pCtl->GetClass() == exampleComboUI.GetClass()) { CComboUI* pCombo = static_cast<CComboUI*> (pCtl); int idx = pCombo->GetCurSel(); if (it->first == "loglevel") { if (idx == 0) val = "debug"; else if (idx == 1) val = "verbose"; else if (idx == 2) val = "notice"; else if (idx == 3) val = "warning"; } else { if (idx == 0) val = "yes"; else if (idx == 1) val = "no"; } } if (val != it->second) { config.insert(std::make_pair(it->first, val)); } } if (SetConfig(config) && GetConfig()) { DoFillData(); } }
int CZiMainFrame::OnReturnSearch(TNotifyUI & msg) { CEditUI * pSearchEdit = DuiControl(CEditUI, _T("SearchEdit")); CComboUI * pSearchCombo = DuiControl(CComboUI, _T("SearchCombo")); Assert(pSearchEdit && pSearchCombo); LPCTSTR ptsItemName = pSearchEdit->GetText().GetData(); if(!ptsItemName) return 0; if (wcscmp(ptsItemName, m_itemSelfInfo.tstrNickName.c_str()) == 0) { return 0; } // 增加 pSearchCombo 列表并显示. // 测试代码 *** //AddComboItem(_T("111111")); //return 0; ImcNodeList_t nodeList; int size = pSearchCombo->GetCount(); ClearComboItem(); m_searchNodes.clear(); SearchFriendsNode(ptsItemName, m_searchNodes); for(ImcNodeList_t::iterator it = m_searchNodes.begin(); it != m_searchNodes.end(); it++) { ItemNodeInfo_t & itemInfo = (*it)->GetNodeData(); if(itemInfo.Type() == Type_ImcFriend || itemInfo.Type() == Type_ImcFriendX) { Assert(!itemInfo.IsInvalid()); if(::_tcsstr(itemInfo.tstrNickName.c_str(), ptsItemName)) { AddComboItem(itemInfo.tstrNickName.c_str()); } } } // 不能够显示出来 list 的内容来, 不知道为什么 ? // HWND hF = ::GetFocus(); ::SendMessage(::GetFocus(), WM_KILLFOCUS, 0, 0); pSearchCombo->SetFocus(); pSearchCombo->Activate(); return 0; }
int CZiMainFrame::ClearComboItem() { CComboUI * pSearchCombo = DuiControl(CComboUI, _T("SearchCombo")); Assert(pSearchCombo); /* for(int i = 0; i < pSearchCombo->GetCount(); i++) { CListLabelElementUI * pItem = static_cast<CListLabelElementUI*>( pSearchCombo->GetItemAt(i)); delete pItem; } */ pSearchCombo->RemoveAll(); return 0; }
bool CMainDialog::OnClickItem (void* pParam) { TEventUI* pEvent = (TEventUI*)pParam; if (pEvent->Type == UIEVENT_BUTTONDOWN) { CComboUI* pcbx = static_cast <CComboUI*> (m_pm.FindControl(_T ("combo2"))); CEditUI* pedit = static_cast <CEditUI*> (m_pm.FindControl(_T ("ComboEdit"))); assert (pedit); CContainerUI* pItem = static_cast <CContainerUI*> (pcbx->GetItemAt (pEvent->pSender->GetTag())); pedit->SetText(pItem->GetItemAt(2)->GetText()); } else if (pEvent->Type == UIEVENT_MOUSEENTER) { pEvent->pSender->SetBkColor(0xFF00FF00); } else if (pEvent->Type == UIEVENT_MOUSELEAVE) { pEvent->pSender->SetBkColor(0xFFFFFFFF); } return true; }
int CZiMainFrame::OnSelectSearch(TNotifyUI & msg) { CEditUI * pSearchEdit = DuiControl(CEditUI, _T("SearchEdit")); CComboUI * pSearchCombo = DuiControl(CComboUI, _T("SearchCombo")); LPCTSTR ptsSearchName = pSearchEdit->GetText().GetData(); Assert(pSearchEdit && pSearchCombo); Assert(ptsSearchName); int nIndex = pSearchCombo->GetCurSel(); if(nIndex < 0) return 0; CListLabelElementUI * pItem = static_cast<CListLabelElementUI*>( pSearchCombo->GetItemAt(nIndex)); Assert(pItem); Assert(nIndex < (int)m_searchNodes.size()); pSearchEdit->SetText(pItem->GetText()); CreateChatDailog(m_searchNodes[nIndex]); return 0; }
int CZiMainFrame::AddComboItem(LPCTSTR lpctsName) { Assert(lpctsName); CComboUI * pSearchCombo = DuiControl(CComboUI, _T("SearchCombo")); CListLabelElementUI * pItemUi = new CListLabelElementUI; if(!pItemUi) return -1; pItemUi->SetAttribute(_T("text"), lpctsName); pItemUi->SetAttribute(_T("font"), _T("2")); pItemUi->SetAttribute(_T("height"), _T("23")); RECT rect = {8,1,1,1}; pItemUi->SetPadding(rect); if(!pSearchCombo->Add(pItemUi)) { delete pItemUi; return -1; } return 0; }
void CMyList::Init(CPaintManagerUI* ppm) { CDialogBuilder builder; CContainerUI* pList = static_cast<CContainerUI*>(builder.Create(_T("mylist.xml"), 0, NULL, ppm)); if( pList != NULL ) { for(int i = 0; i < 100; ++i) { if( pList == NULL ) pList = static_cast<CContainerUI*>(builder.Create()); if( pList != NULL ) { this->Add(pList); TCHAR indexBuffer[16]; CDuiString strIndexString = _T("- "); strIndexString += _itot(i+1, indexBuffer, 10); strIndexString += _T(" -"); pList->GetItemAt(0)->SetText(strIndexString); CComboUI* pCombo = static_cast <CComboUI*> (pList->GetItemAt(1)); if (pCombo != NULL) { for (int j = 0; j < 3; ++j) { CListLabelElementUI* pComboItem = new CListLabelElementUI; pComboItem->SetText("xxx"); pCombo->Add(pComboItem); } } pList->GetItemAt(0)->OnEvent += MakeDelegate (this, &CMyList::OnTheEvent); pList->GetItemAt(1)->OnEvent += MakeDelegate (this, &CMyList::OnTheEvent); pList->GetItemAt(2)->OnEvent += MakeDelegate (this, &CMyList::OnTheEvent); pList->OnEvent += MakeDelegate (this, &CMyList::OnTheEvent); pList = NULL; } else { this->RemoveAll(); return; } } } }
//重读talkIngame.ini void CRightFrame::OnReLoadTalkINI() { CComboUI* pCobCtrl = static_cast<CComboUI*>(m_pm.FindControl("Talk_Cob_Inp")); CEditUI* pEditCtrl = static_cast<CEditUI*>(m_pm.FindControl("Talk_Edt_Inp")); if (!pCobCtrl || !pEditCtrl) { return; } //清除原来内容 pCobCtrl->RemoveAll(); CBcfFile f("talkInGame.bcf"); CString key="BZW_TALK"; CString szTalk; CString szNumber; int nIdx = 0; do { szNumber.Format("%d",++nIdx); szTalk = f.GetKeyVal(key,"T"+szNumber,""); if (!szTalk.IsEmpty()) { CListLabelElementUI* p = new CListLabelElementUI(); p->SetText(szTalk.GetBuffer()); pCobCtrl->Add(p); } } while(!szTalk.IsEmpty()); SIZE si = {-1,600}; pCobCtrl->SetDropBoxSize(si); pEditCtrl->SetText(_T("")); return; }
void RedisConfigUI::DoFillData() { CEditUI exampleEditUI; CComboUI exampleComboUI; RedisClient::TDicConfig::const_iterator it = m_dicConfig.begin(); RedisClient::TDicConfig::const_iterator itend = m_dicConfig.end(); for ( ; it!=itend; ++it) { CDuiString name = _T("redisconfig_"); CDuiString key = Base::CharacterSet::ANSIToUnicode(it->first).c_str(); CDuiString val = Base::CharacterSet::ANSIToUnicode(it->second).c_str(); name.Append(key); CControlUI* pCtl = GetPaintMgr()->FindControl(name); /// xml中未配置该项 if (pCtl == NULL) continue; if (pCtl->GetClass() == exampleEditUI.GetClass()) { CEditUI* pEdit = static_cast<CEditUI*> (pCtl); pEdit->SetText(val); } else if (pCtl->GetClass() == exampleComboUI.GetClass()) { CComboUI* pCombo = static_cast<CComboUI*> (pCtl); int idx = 0; if (val == _T("yes")) idx = 0; else if (val == _T("no")) idx = 1; else if (it->first == "loglevel") { string loglevel = it->second; if (loglevel == "debug") idx = 0; else if (loglevel == "verbose") idx = 1; else if (loglevel == "notice") idx = 2; else if (loglevel == "warning") idx = 3; } pCombo->SetInternVisible(true); pCombo->SelectItem(idx); pCombo->SetFocus(); } } }
void CMainDialog::OnClick( CControlUI* pSender) { if (pSender->GetName() == TEXT ("btnExit")) { PostQuitMessage(0); return; } else if (pSender->GetName() == _T ("btnTip")) { CControlUI* pbtnTip = static_cast <CControlUI*> (m_pm.FindControl(_T ("btnTip"))); if (pbtnTip) { pbtnTip->SetVisible(false); } CEditUI* peditSearch = static_cast <CEditUI*> (m_pm.FindControl(_T ("editSearch"))); if (peditSearch != NULL) { peditSearch->SetFocus(); } } else if (pSender->GetName() == _T ("lstDelButton")) { int iIndex = 0; CMyList* pParent = static_cast <CMyList*> (pSender->GetParent()->GetParent()); if (pParent) { iIndex = pParent->GetItemIndex(pSender->GetParent()); } CDuiString str; str.Format(_T ("您要删除 %d 项"), iIndex); if (IDNO == MessageBox (GetHWND (), str, NULL, MB_OK | MB_YESNO)) return; CMyList* pList = static_cast <CMyList*> (m_pm.FindControl(_T ("lstControl"))); ASSERT(pList); if (pList) { pList->RemoveAt(iIndex); CControlUI* pItem = pList->GetItemAt(iIndex+5); if (pItem) { const RECT& rc = pItem->GetPos(); SIZE sz = {0, rc.top}; pList->SetScrollPos(sz); } } } else if (pSender->GetName() == _T ("btnAddComboItem")) { CComboUI* pcbx = static_cast <CComboUI*> (m_pm.FindControl(_T ("combo1"))); assert (pcbx); if (pcbx) { CListLabelElementUI* pItem = new CListLabelElementUI (); pItem->SetText(_T ("{b}{i}新加项{/i}{/b}")); pcbx->Add(pItem); } AddComboboxItem(); CComboUI* pcbx2 = static_cast <CComboUI*> (m_pm.FindControl(_T ("combo2"))); } else if (pSender->GetName() == _T ("btnGoIe")) { CActiveXUI* pActiveXUI = static_cast<CActiveXUI*>(m_pm.FindControl(_T("ie"))); if( pActiveXUI ) { IWebBrowser2* pWebBrowser = NULL; pActiveXUI->GetControl(IID_IWebBrowser2, (void**)&pWebBrowser); if( pWebBrowser != NULL ) { CEditUI* pEdit = static_cast <CEditUI*> (m_pm.FindControl(_T ("editIePath"))); ASSERT (pEdit); CDuiString strIePath = _T ("www.baidu.com"); if (pEdit) { strIePath = pEdit->GetText(); } WCHAR szPath [1024] = {0}; #if defined(_UNICODE) || defined(UNICODE) lstrcpyW (szPath, strIePath); #else ::MultiByteToWideChar(CP_ACP, 0, strIePath, -1, szPath, 1023); #endif pWebBrowser->Navigate(szPath,NULL,NULL,NULL,NULL); pWebBrowser->Release(); } } } }
//加载常规控件皮肤 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); }