void SessionLayout::FreshGroupMemberAvatar(IN const std::string& sID) { module::UserInfoEntity userInfo; if (!module::getUserListModule()->getUserInfoBySId(sID, userInfo)) { APP_LOG(LOG_ERROR, _T("SessionLayout::_updateGroupMembersList(),can't find the userInfo")); return; } if (!m_pGroupMemberList) { return; } for (int n = 0; n < m_pGroupMemberList->GetCount(); n++) { CListContainerElementUI* pItem = (CListContainerElementUI*)m_pGroupMemberList->GetItemAt(n); if (pItem) { CDuiString userData = pItem->GetUserData(); if (!userData.IsEmpty()) { std::string sid = util::cStringToString(CString(userData)); if (sid == sID) { CButtonUI* btnAvatarInfo = (CButtonUI*)pItem->FindSubControl(_T("AvatarInfo")); if (btnAvatarInfo) { btnAvatarInfo->SetBkImage(util::stringToCString(userInfo.getAvatarPath())); } } } } } m_pGroupMemberList->SortItems(GroupMemberListItemCompareFunc, 0); }
void SessionLayout::_AddGroupMemberToList(IN const std::string& sID, IN const BOOL bCreator) { module::UserInfoEntity userInfo; if (!module::getUserListModule()->getUserInfoBySId(sID, userInfo)) { LOG__(ERR, _T("can't find the userInfo:%s,GroupId:%s"),util::stringToCString(sID),util::stringToCString(m_sId)); return; } CDialogBuilder dlgBuilder; CListContainerElementUI* pListElement = (CListContainerElementUI*)dlgBuilder.Create(_T("SessionDialog\\groupMembersListItem.xml"), (UINT)0, NULL, &m_paint_manager); if (!pListElement) { LOG__(ERR, _T("群item创建失败")); return; } CButtonUI* pLogo = static_cast<CButtonUI*>(pListElement->FindSubControl(_T("AvatarInfo"))); PTR_VOID(pLogo); pLogo->SetBkImage(util::stringToCString(userInfo.getAvatarPath())); if (bCreator) { CButtonUI* pCreator = static_cast<CButtonUI*>(pListElement->FindSubControl(_T("Creator"))); PTR_VOID(pCreator); pCreator->SetVisible(true); pCreator->SetUserData(_T("Creator")); } CLabelUI* pNameLable = static_cast<CLabelUI*>(pListElement->FindSubControl(_T("nickname"))); PTR_VOID(pNameLable); pNameLable->SetText(userInfo.getRealName()); pListElement->SetUserData(util::stringToCString(userInfo.sId)); m_pGroupMemberList->Add(pListElement); }
void SessionLayout::FreshAllGroupMemberAvatar() { if (!m_pGroupMemberList) { return; } for (int n = 0; n < m_pGroupMemberList->GetCount(); n++) { CListContainerElementUI* pItem = (CListContainerElementUI*)m_pGroupMemberList->GetItemAt(n); if (pItem) { CDuiString userData = pItem->GetUserData(); if (!userData.IsEmpty()) { std::string sid = util::cStringToString(CString(userData)); module::UserInfoEntity userInfo; if (!module::getUserListModule()->getUserInfoBySId(sid, userInfo)) { LOG__(ERR, _T("can't find the userInfo:%s,GroupId:%s"),util::stringToCString(sid),util::stringToCString(m_sId)); continue;; } CButtonUI* btnAvatarInfo = (CButtonUI*)pItem->FindSubControl(_T("AvatarInfo")); if (btnAvatarInfo) { btnAvatarInfo->SetBkImage(util::stringToCString(userInfo.getAvatarPath())); } } } } m_pGroupMemberList->SortItems(GroupMemberListItemCompareFunc, 0); }
void SessionLayout::_AddGroupMemberToList(IN const std::string& sID) { module::UserInfoEntity userInfo; if (!module::getUserListModule()->getUserInfoBySId(sID, userInfo)) { APP_LOG(LOG_ERROR, _T("SessionLayout::_updateGroupMembersList(),can't find the userInfo")); return; } CDialogBuilder dlgBuilder; CListContainerElementUI* pListElement = (CListContainerElementUI*)dlgBuilder.Create(_T("SessionDialog\\groupMembersListItem.xml"), (UINT)0, NULL, &m_paint_manager); if (!pListElement) { APP_LOG(LOG_ERROR, _T("群item创建失败")); return; } CButtonUI* pLogo = static_cast<CButtonUI*>(pListElement->FindSubControl(_T("AvatarInfo"))); if (!pLogo) { return; } pLogo->SetBkImage(util::stringToCString(userInfo.getAvatarPath())); CLabelUI* pNameLable = static_cast<CLabelUI*>(pListElement->FindSubControl(_T("nickname"))); if (!pNameLable) { return; } pNameLable->SetText(userInfo.getRealName()); pListElement->SetUserData(util::stringToCString(userInfo.sId)); m_pGroupMemberList->Add(pListElement); }
void CProjectInfoPage::RemoveAllListItems() { int nCount = m_pListProjs->GetCount(); if (nCount>0) { for (int i=0; i<nCount; i++) { CListContainerElementUI* pListItem = static_cast<CListContainerElementUI*>(m_pListProjs->GetItemAt(i)); if (NULL != pListItem) { sProjectItem* pProjData = (sProjectItem*)pListItem->GetTag(); if (NULL != pProjData) { delete pProjData; pProjData = NULL; } } } m_pListProjs->RemoveAll(); } //还原Index m_nCurrentPageIndex = -1; }
CHorizontalLayoutUI* CListUIEx::GetListSubItem(int iIndex, int iSubIndex) { //获取具体行控件 CListContainerElementUI *pListItem = static_cast<CListContainerElementUI*>(CListUI::GetItemAt(iIndex)); if (pListItem == NULL) return NULL; return static_cast<CHorizontalLayoutUI*>(pListItem->GetItemAt(iSubIndex)); }
static bool OnLogoButtonEvent(void* event) { if( ((TEventUI*)event)->Type == UIEVENT_BUTTONDOWN ) { CControlUI* pButton = ((TEventUI*)event)->pSender; if( pButton != NULL ) { CListContainerElementUI* pListElement = (CListContainerElementUI*)(pButton->GetTag()); if( pListElement != NULL ) pListElement->DoEvent(*(TEventUI*)event); } } return true; }
bool CFriendsUI::SelectItem(int iIndex, bool bTakeFocus) { if( iIndex == m_iCurSel ) return true; // We should first unselect the currently selected item if( m_iCurSel >= 0 ) { CControlUI* pControl = GetItemAt(m_iCurSel); if( pControl != NULL) { IListItemUI* pListItem = static_cast<IListItemUI*>(pControl->GetInterface(_T("ListItem"))); if( pListItem != NULL ) { CListContainerElementUI* pFriendListItem = static_cast<CListContainerElementUI*>(pControl); Node* node = (Node*)pControl->GetTag(); if ((pFriendListItem != NULL) && (node != NULL) && !node->folder()) { pFriendListItem->SetFixedHeight(kFriendListItemNormalHeight); CContainerUI* pOperatorPannel = static_cast<CContainerUI*>(paint_manager_.FindSubControlByName(pFriendListItem, kOperatorPannelControlName)); if (pOperatorPannel != NULL) { pOperatorPannel->SetVisible(false); } } pListItem->Select(false); } } m_iCurSel = -1; } if( iIndex < 0 ) return false; if (!__super::SelectItem(iIndex, bTakeFocus)) return false; CControlUI* pControl = GetItemAt(m_iCurSel); if( pControl != NULL) { CListContainerElementUI* pFriendListItem = static_cast<CListContainerElementUI*>(pControl); Node* node = (Node*)pControl->GetTag(); if ((pFriendListItem != NULL) && (node != NULL) && !node->folder()) { pFriendListItem->SetFixedHeight(kFriendListItemSelectedHeight); CContainerUI* pOperatorPannel = static_cast<CContainerUI*>(paint_manager_.FindSubControlByName(pFriendListItem, kOperatorPannelControlName)); if (pOperatorPannel != NULL) { pOperatorPannel->SetVisible(true); } } } return true; }
static bool OnLogoButtonEvent(void* event) { if (((TEventUI*)event)->Type == UIEVENT_BUTTONDOWN) { CControlUI* pButton = ((TEventUI*)event)->pSender; if (pButton != NULL) { CListContainerElementUI* pListElement = (CListContainerElementUI*)(pButton->GetTag()); if (pListElement != NULL) { pListElement->DoEvent(*(TEventUI*)event); std::string sid = util::cStringToString(CString(pListElement->GetUserData())); if (!sid.empty()) { //show the detail window. module::getSysConfigModule()->asynNotifyObserver(module::KEY_SYSCONFIG_SHOW_USERDETAILDIALOG, sid); } } } } return true; }
//聊天框信息已准备好 void CRightFrame::OnTalkBufferReady(BzDui::CStdString strBuf,int iTextHeight) { if (strBuf.GetLength() == 0) { return; } CTextUI* pText = new CTextUI(); pText->SetFloat(false); pText->SetShowHtml(true); pText->SetText(strBuf); CListContainerElementUI* pCtn = new CListContainerElementUI(); pCtn->SetFixedHeight(iTextHeight); pCtn->Add(pText); m_pTalkBoxList->Add(pCtn); return; }
static bool OnButtonEvent(void* event) { if (((TEventUI*)event)->Type == UIEVENT_BUTTONDOWN) { CControlUI* pButton = ((TEventUI*)event)->pSender; if (pButton != NULL) { CListContainerElementUI* pListElement = (CListContainerElementUI*)(pButton->GetTag()); if (pButton->GetName() == kcreatGroupControlName) { //创建讨论组 std::string sid; module::getGroupListModule()->onCreateDiscussionGrpDialog(sid); } else { if (pListElement != NULL) pListElement->DoEvent(*(TEventUI*)event); } } } return true; }
void SessionLayout::_GetGroupNameListByShortName(IN const CString& sShortName, OUT std::vector<string>& nameList) { for (int n = 0; n < m_pGroupMemberList->GetCount();++n) { CListContainerElementUI* pListElement = static_cast<CListContainerElementUI*>(m_pGroupMemberList->GetItemAt(n)); if (pListElement) { CLabelUI* pNameLable = static_cast<CLabelUI*>(pListElement->FindSubControl(_T("nickname"))); if (!pNameLable) { continue;; } CString Name = pNameLable->GetText(); std::string sid = util::cStringToString(CString(pListElement->GetUserData())); if (util::isIncludeChinese(util::cStringToString(sShortName, CP_ACP)))//检索中文 { if (Name.Find(sShortName) != -1) { nameList.push_back(sid); } } else//检索字母 { CString firstPY = util::HZ2FirstPY(util::cStringToString(Name, CP_ACP)); if (firstPY.Find(sShortName) != -1)//先检索简拼 { nameList.push_back(sid); } else { CString allPY = util::HZ2AllPY(Name);//再检索全拼 if (allPY.Find(sShortName) != -1) { nameList.push_back(sid); } } } } } }
int CListUIEx::InsertItem(int nItem, int nHeight) { CListContainerElementUI *pListItem = new CListContainerElementUI; pListItem->SetFixedHeight(nHeight);/*固定一个行高*/ pListItem->m_pHeader = CListUI::GetHeader(); if (NULL != pListItem->m_pHeader) { int nHeaderCount = pListItem->m_pHeader->GetCount(); for (int i = 0; i < nHeaderCount; i++) { pListItem->Add(new CHorizontalLayoutUI); } } if ( !CListUI::AddAt(pListItem, nItem) ) { delete pListItem; pListItem = NULL; return -1; } return nItem; }
void SessionLayout::_UpdateSearchRsultList(IN const std::vector<std::string>& nameList) { if (nameList.empty()) { return; } for (std::string sid : nameList) { module::UserInfoEntity userInfo; if (!module::getUserListModule()->getUserInfoBySId(sid, userInfo)) { LOG__(ERR, _T("can't find the userInfo:%s,GroupId: %s"),util::stringToCString(sid),util::stringToCString(m_sId)); continue; } CDialogBuilder dlgBuilder; CListContainerElementUI* pListElement = (CListContainerElementUI*)dlgBuilder.Create(_T("SessionDialog\\groupMembersListItem.xml"), (UINT)0, NULL, &m_paint_manager); if (!pListElement) { LOG__(ERR, _T("creat group item failed")); return; } CButtonUI* pLogo = static_cast<CButtonUI*>(pListElement->FindSubControl(_T("AvatarInfo"))); if (!pLogo) { return; } pLogo->SetBkImage(util::stringToCString(userInfo.getAvatarPath())); CLabelUI* pNameLable = static_cast<CLabelUI*>(pListElement->FindSubControl(_T("nickname"))); if (!pNameLable) { return; } pNameLable->SetText(userInfo.getRealName()); pListElement->SetUserData(util::stringToCString(userInfo.sId)); m_pSearchResultList->Add(pListElement); } }
void CMonitoringUI::ShowMonitInfoList() { CDialogBuilder builder; CListContainerElementUI* SubList = (CListContainerElementUI*)(builder.Create(_T("xml//RegInfoList.xml"), (UINT)0, NULL, &m_PaintManager)); CListUI* pList = dynamic_cast<CListUI*>(m_PaintManager.FindControl(_T("Refer_InfoList"))); pList->Add(SubList); CControlUI* photoUI = dynamic_cast<CControlUI*>(m_PaintManager.FindSubControlByClass(SubList, DUI_CTR_CONTROL)); CLabelUI* lab_ID = dynamic_cast<CLabelUI*>(m_PaintManager.FindSubControlByClass(SubList, DUI_CTR_LABEL, 1)); CLabelUI* lab_similarity = dynamic_cast<CLabelUI*>(m_PaintManager.FindSubControlByClass(SubList, DUI_CTR_LABEL, 3)); CLabelUI* lab_time = dynamic_cast<CLabelUI*>(m_PaintManager.FindSubControlByClass(SubList, DUI_CTR_LABEL, 5)); std::string strName = std::string(_T("file = 'bmp/test")) + std::to_string(m_nBmp) + std::string(".bmp'"); photoUI->SetBkImage(strName.c_str()); lab_ID->SetText(std::to_string(m_testID).c_str()); lab_similarity->SetText("76%"); lab_time->SetText("2016-7-29 17:12:55"); if (m_testID % 3 == 0) { SubList->SetBkColor(0xFFFFDDDD); } m_testID++; }
void CreateDiscussionGrpDialog::_updateSearchResultList(IN const std::vector<std::string>& nameList) { if (nameList.empty()) { return; } for (std::string sid : nameList) { module::UserInfoEntity userInfo; if (!module::getUserListModule()->getUserInfoBySId(sid, userInfo)) { LOG__(ERR, _T("can't find the userInfo:%s"), util::stringToCString(sid)); return; } CDialogBuilder dlgBuilder; CListContainerElementUI* pListElement = (CListContainerElementUI*)dlgBuilder.Create(_T("CreateDiscussionGrpDialog\\ListGroupMembersItem.xml"), (UINT)0, NULL, &m_PaintManager); if (!pListElement) { LOG__(ERR, _T("群item创建失败")); return; } pListElement->SetName(_T("SearchResultItem")); CControlUI* pLogo = static_cast<CControlUI*>(pListElement->FindSubControl(_T("AvatarInfo"))); if (!pLogo) { return; } pLogo->SetBkImage(util::stringToCString(userInfo.getAvatarPath())); CLabelUI* pNameLable = static_cast<CLabelUI*>(pListElement->FindSubControl(_T("nickname"))); if (!pNameLable) { return; } pNameLable->SetText(userInfo.getRealName()); CButtonUI* pRemoveBtn = static_cast<CButtonUI*>(pListElement->FindSubControl(_T("removebtn"))); if (pRemoveBtn) { pRemoveBtn->SetVisible(false); } pListElement->SetUserData(util::stringToCString(userInfo.sId)); m_pListSearchResult->Add(pListElement); } }
void SessionLayout::Notify(TNotifyUI& msg) { if (_tcsicmp(msg.sType, DUI_MSGTYPE_WINDOWINIT) == 0 ) { OnWindowInitialized(msg); } else if (msg.sType == DUI_MSGTYPE_CLICK) { if (msg.pSender == m_pBtnSendMsg) { SendMsg(); } else if (m_pBtnClose == msg.pSender) { } else if (msg.pSender == m_pBtnEmotion) { //表情先不展示 POINT pt = { 0 }; CDuiRect rcEmotionBtn = msg.pSender->GetPos(); CDuiRect rcWindow; GetWindowRect(m_pManager->GetPaintWindow(), &rcWindow); pt.y = rcWindow.top + rcEmotionBtn.top; pt.x = rcWindow.left + rcEmotionBtn.left; module::getEmotionModule()->showEmotionDialog(m_sId,pt); } else if (msg.pSender == m_pBtnSendImage) { std::list<CString> lstFile; util::GetOpenFilePath(AfxGetMainWnd(), lstFile, FALSE, _T("图片 文件|*.png;*.jpeg;*.jpg;*.gif;*.bmp||")); if (lstFile.empty()) return; CString strFile = lstFile.front(); if (strFile.IsEmpty()) { return; } _SendImage(strFile); } else if (msg.pSender == m_pBtnbanGroupMsg) { _OnBanGroupMsg(true); } else if (msg.pSender == m_pBtndisplayGroupMsg) { _OnBanGroupMsg(false); } else if (msg.pSender == m_pBtnshock) { module::UserInfoEntity userInfo; if (module::getUserListModule()->getUserInfoBySId(m_sId, userInfo)) { if (userInfo.onlineState != USER_STATUS_ONLINE) { _DisplaySysMsg(_T("STRID_SESSIONMODULE_SHAKEWINDOW_OFFLINE_TIP")); return; } } else { return; } DWORD CurTime = GetTickCount(); if (CurTime - m_tShakeWindow < 5000) { _DisplaySysMsg(_T("STRID_SESSIONMODULE_SHAKEWINDOW_TOOMAMY_TIP")); return; } m_tShakeWindow = CurTime; _DisplaySysMsg(_T("STRID_SESSIONMODULE_SHAKEWINDOW_SEND_TIP")); logic::GetLogic()->asynNotifyObserver(module::KEY_SESSION_SHAKEWINDOW_MSG, m_sId); module::getP2PCmdModule()->tcpSendShakeWindowCMD(m_sId); } //文件传输 else if (msg.pSender == m_pBtnsendfile) { module::UserInfoEntity userInfo; if (!module::getUserListModule()->getUserInfoBySId(m_sId, userInfo)) { APP_LOG(LOG_ERROR, _T("SendFile can't find the sid")); return; } std::list<CString> lstFile; util::GetOpenFilePath(AfxGetMainWnd(), lstFile, FALSE, _T("文件|*.*||")); if (lstFile.empty()) return; CString strFile = lstFile.front(); if (strFile.IsEmpty()) { return; } module::getFileTransferModule()->sendFile(strFile, m_sId, userInfo.isOnlne()); } else if (msg.pSender == m_pBtnadduser) { module::getGroupListModule()->onCreateDiscussionGrpDialog(m_sId); } } else if (msg.sType == _T("return")) { if (msg.pSender == m_pInputRichEdit) { SendMsg(); } } else if (0 == _tcsicmp(msg.sType, DUI_MSGTYPE_ITEMACTIVATE)) { if (msg.pSender->GetName() == _T("ListGroupMembersItem")) { CListContainerElementUI* pListElement = static_cast<CListContainerElementUI*>(msg.pSender); if (!pListElement->GetUserData().IsEmpty()) { std::string sid = util::cStringToString(CString(pListElement->GetUserData())); logic::GetLogic()->asynNotifyObserver(module::KEY_SESSION_OPENNEWSESSION, sid);//通知主窗口创建会话 } } } else if (0 == _tcsicmp(msg.sType, UIIMEdit_MSGTYPE_TEXTCHANGED)) { if (msg.pSender->GetName() == _T("input_richedit")) { if (!m_bGroupSession) { module::getP2PCmdModule()->tcpSendWritingCMD(m_sId, TRUE); m_pManager->KillTimer(this, TIMER_CHECK_WRITING); m_pManager->SetTimer(this, TIMER_CHECK_WRITING, 5000); } } } else if (0 == _tcsicmp(msg.sType, DUI_MSGTYPE_KILLFOCUS)) { if (!m_bGroupSession) { m_pManager->KillTimer(this, TIMER_CHECK_WRITING); module::getP2PCmdModule()->tcpSendWritingCMD(m_sId, FALSE); } } else if (0 == _tcsicmp(msg.sType, DUI_MSGTYPE_TEXTCHANGED)) { if (msg.pSender == m_pSearchEdit) { m_pSearchResultList->RemoveAll(); CDuiString inputText = m_pSearchEdit->GetText(); if (inputText.IsEmpty()) { m_pSearchResultList->SetVisible(false); m_pGroupMemberList->SetVisible(true); } else { m_pGroupMemberList->SetVisible(false); m_pSearchResultList->SetVisible(true); module::UserInfoEntityVec userList; _GetGroupNameListByShortName(inputText.GetData(), userList); _UpdateSearchRsultList(userList); } } } }
Node* CUIRecentSessionList::AddNode(const SessionListItemInfo& item, Node* parent /*= NULL*/, int index /*= 0*/) { if (!parent) parent = root_node_; TCHAR szBuf[MAX_PATH] = { 0 }; CListContainerElementUI* pListElement = NULL; if (!m_dlgBuilder.GetMarkup()->IsValid()) { pListElement = static_cast<CListContainerElementUI*>(m_dlgBuilder.Create(_T("MainDialog\\recentlyListItem.xml"), (UINT)0, NULL, &paint_manager_)); } else { pListElement = static_cast<CListContainerElementUI*>(m_dlgBuilder.Create((UINT)0, &paint_manager_)); } if (pListElement == NULL) return NULL; Node* node = new Node; node->data().level_ = parent->data().level_ + 1; if (item.folder) node->data().has_child_ = !item.empty; else node->data().has_child_ = false; node->data().folder_ = item.folder; node->data().child_visible_ = (node->data().level_ == 0); node->data().sId = item.id; node->data().text_ = item.nickName; node->data().list_elment_ = pListElement; if (!parent->data().child_visible_) pListElement->SetVisible(false); if (parent != root_node_ && !parent->data().list_elment_->IsVisible()) pListElement->SetVisible(false); CDuiRect rcPadding = text_padding_; for (int i = 0; i < node->data().level_; ++i) { rcPadding.left += level_text_start_pos_; } pListElement->SetPadding(rcPadding); CControlUI* log_button = static_cast<CControlUI*>(paint_manager_.FindSubControlByName(pListElement, kLogoButtonControlName)); if (log_button != NULL) { if (!item.folder && !item.avatarPath.IsEmpty()) { _stprintf_s(szBuf, MAX_PATH - 1, _T("%s"), item.avatarPath); log_button->SetBkImage(szBuf); } else { CContainerUI* logo_container = static_cast<CContainerUI*>(paint_manager_.FindSubControlByName(pListElement, kLogoContainerControlName)); if (logo_container != NULL) logo_container->SetVisible(false); } log_button->SetTag((UINT_PTR)pListElement); //log_button->OnEvent += MakeDelegate(&OnLogoButtonEvent);//右键替代了该功能,不用绑定 } CDuiString html_text; if (node->data().has_child_) { if (node->data().child_visible_) html_text += level_expand_image_; else html_text += level_collapse_image_; _stprintf_s(szBuf, MAX_PATH - 1, _T("<x %d>"), level_text_start_pos_); html_text += szBuf; } if (item.folder) { html_text += node->data().text_; } else { _stprintf_s(szBuf, MAX_PATH - 1, _T("%s"), item.nickName); html_text += szBuf; } CLabelUI* nick_name = static_cast<CLabelUI*>(paint_manager_.FindSubControlByName(pListElement, kNickNameControlName)); if (nick_name != NULL) { if (item.folder) nick_name->SetFixedWidth(0); nick_name->SetShowHtml(true); nick_name->SetText(html_text); } CLabelUI* lastTime = static_cast<CLabelUI*>(paint_manager_.FindSubControlByName(pListElement, lastContentTimeControlName)); if (lastTime != NULL) { lastTime->SetShowHtml(true); CString strTime = module::getMiscModule()->makeShortTimeDescription(item.Time);//timeData.Format(_T("-%Y%m%d-%H-%M-%S-")); lastTime->SetText(strTime); } CLabelUI* plastMsgUI = static_cast<CLabelUI*>(paint_manager_.FindSubControlByName(pListElement, klastmsgControlName)); if (plastMsgUI) { CString strContent = item.description; ReceiveMsgManage::getInstance()->parseContent(strContent, TRUE, 400);//需要转换成本地的格式 plastMsgUI->SetText(strContent); } pListElement->SetFixedHeight(kIMListItemNormalHeight); pListElement->SetTag((UINT_PTR)node); pListElement->SetUserData(item.id); if (0 == index) { if (parent->has_children()) { Node* prev = parent->get_last_child(); index = prev->data().list_elment_->GetIndex() + 1; } else { if (parent == root_node_) index = 0; else index = parent->data().list_elment_->GetIndex() + 1; } } if (!CListUI::AddAt(pListElement, index)) { delete pListElement; delete node; node = NULL; } parent->add_child(node); return node; }
void CreateDiscussionGrpDialog::_AddToGroupMemberList(std::string sid) { if (sid.empty()) { return; } //确认没有重复的项 for (int n = 0; n < m_pListGroupMembers->GetCount();n++) { CControlUI* pItem = m_pListGroupMembers->GetItemAt(n); if (pItem) { CString strId = pItem->GetUserData(); if (!strId.IsEmpty()) { std::string sId = util::cStringToString(strId); if (sId == sid) { return; } } } } //插入ITEM module::UserInfoEntity userInfo; if (!module::getUserListModule()->getUserInfoBySId(sid, userInfo)) { LOG__(DEBG, _T("can't find the userInfo:%s"), util::stringToCString(sid)); return; } CDialogBuilder dlgBuilder; CListContainerElementUI* pListElement = (CListContainerElementUI*)dlgBuilder.Create(_T("CreateDiscussionGrpDialog\\ListGroupMembersItem.xml"), (UINT)0, NULL, &m_PaintManager); if (!pListElement) { LOG__(ERR, _T("群item创建失败")); return; } CControlUI* pLogo = static_cast<CControlUI*>(pListElement->FindSubControl(_T("AvatarInfo"))); if (!pLogo) { return; } pLogo->SetBkImage(util::stringToCString(userInfo.getAvatarPath())); CLabelUI* pNameLable = static_cast<CLabelUI*>(pListElement->FindSubControl(_T("nickname"))); if (!pNameLable) { return; } pNameLable->SetText(userInfo.getRealName()); CButtonUI* pRemoveBtn = static_cast<CButtonUI*>(pListElement->FindSubControl(_T("removebtn"))); if (pRemoveBtn) { //点击删除按钮的时候根据这个来判断是哪个项 pRemoveBtn->SetTag(UINT_PTR(pListElement)); } if (module::getSysConfigModule()->userID() == userInfo.sId)//自己不能删除 { pRemoveBtn->SetVisible(false); } pListElement->SetUserData(util::stringToCString(userInfo.sId)); m_pListGroupMembers->Add(pListElement); }
void CProjectInfoPage::AddListItem(int nFromIndex, int nCount) { for (int i=nFromIndex; i<nCount+nFromIndex; i++) { CDialogBuilder DlgBuilder; CListContainerElementUI *plstItem = NULL; if (!DlgBuilder.GetMarkup()->IsValid()) { plstItem = static_cast<CListContainerElementUI*>(DlgBuilder.Create(_T("project_list_item.xml"), (UINT)0, NULL, m_PaintManager)); } else { plstItem = static_cast<CListContainerElementUI*>(DlgBuilder.Create((UINT)0, m_PaintManager)); } if (plstItem == NULL) return ; else { sProjectItem& oneProj = m_vecProjects[i]; sProjectItem* pNewData = new sProjectItem; pNewData->strCreateTime = oneProj.strCreateTime; pNewData->strDestOrgID = oneProj.strDestOrgID; pNewData->strDestOrgName = oneProj.strDestOrgName; pNewData->strProjID = oneProj.strProjID; pNewData->strProjName = oneProj.strProjName; pNewData->strRoomID = oneProj.strRoomID; pNewData->vecDestParticipants = oneProj.vecDestParticipants; CLabelUI *pLabelProjName = static_cast<CLabelUI *>(m_PaintManager->FindSubControlByName(plstItem, _T("lable_project_name"))); if (pLabelProjName != NULL) { pLabelProjName->SetText(oneProj.strProjName.c_str()); } tstring strShowDest; //判断是个人还是机构。 if (oneProj.strDestOrgID.empty() && oneProj.strDestOrgName.empty() && oneProj.vecDestParticipants.size()>0) { tstring strAccount = oneProj.vecDestParticipants[0]; strAccount += MMPC_ACCOUNT; //策略修改:取消了用户的备注名 sUserVCard oneUser; if (GetDBTaskModule()->LoadUserVCard(strAccount, oneUser)) { strShowDest = oneUser.strUserNickname.c_str(); } sUserVCard oneNewVCard; if(CController::Instance()->GetUserInfoMgr()->GetUserVCard(strAccount, oneNewVCard)) { strShowDest = oneNewVCard.strUserNickname; } if (strShowDest.empty()) { strShowDest = oneProj.vecDestParticipants[0]; } } else { strShowDest = oneProj.strDestOrgName; } CLabelUI *pLabelOrgName = static_cast<CLabelUI *>(m_PaintManager->FindSubControlByName(plstItem, _T("label_orgnization_name"))); if (pLabelOrgName != NULL) { pLabelOrgName->SetText(strShowDest.c_str()); } CLabelUI *pLabelTime = static_cast<CLabelUI *>(m_PaintManager->FindSubControlByName(plstItem, _T("label_project_time"))); if (pLabelTime != NULL) { pLabelTime->SetText(oneProj.strCreateTime.c_str()); } //用roomID来标识唯一的Item plstItem->SetTag((UINT_PTR)pNewData); plstItem->SetFixedHeight(50); if (!m_pListProjs->Add(plstItem)) { delete plstItem; } } } }
void DuiLib::CRecentCallContactUI::AddItem( recentCallContactItem *item, int indx/*=-1*/ ) { CListContainerElementUI *pListElement = NULL; if (!m_DlgBuilder.GetMarkup()->IsValid()) { pListElement = static_cast<CListContainerElementUI*>(m_DlgBuilder.Create(_T("Call\\recent_call_contacts_list_item.xml"), (UINT)0, NULL, m_pPaintManager)); } else { pListElement = static_cast<CListContainerElementUI*>(m_DlgBuilder.Create((UINT)0, m_pPaintManager)); } if (pListElement == NULL) return; CControlUI* pBtnLogo = static_cast<CControlUI*>(m_pPaintManager->FindSubControlByName(pListElement, kLogoControl)); if (pBtnLogo != NULL) { pBtnLogo->SetBkImage(item->m_strLogo); } CLabelUI *pLblNickName = static_cast<CLabelUI*>(m_pPaintManager->FindSubControlByName(pListElement, kNickNameLabel)); if (pLblNickName != NULL) { pLblNickName->SetText(item->m_strNickName); } CLabelUI *pOrgNameLabel = static_cast<CLabelUI*>(m_pPaintManager->FindSubControlByName(pListElement, kOrgNameLabel)); if (pOrgNameLabel != NULL) { pOrgNameLabel->SetText(item->m_strOrgName); } CControlUI *pDialIndicate = static_cast<CControlUI*>(m_pPaintManager->FindSubControlByName(pListElement, "dialIndicateLogo")); if (pDialIndicate != NULL) { CDuiString strImg; strImg.Format("Call\\call%d.png", item->dialIndicate); pDialIndicate->SetBkImage(strImg); } pListElement->SetTag(item->nItemID); pListElement->SetFixedHeight(kContactListItemNormalHeight); CButtonUI* pBtnVoiceCall= static_cast<CButtonUI*>(m_pPaintManager->FindSubControlByName(pListElement, kVoiceCallBtnName)); CButtonUI* pBtnVedioCall= static_cast<CButtonUI*>(m_pPaintManager->FindSubControlByName(pListElement, kVedioCallBtnName)); if (NULL != pBtnVoiceCall) pBtnVoiceCall->SetTag(item->nItemID); if (NULL != pBtnVedioCall) pBtnVedioCall->SetTag(item->nItemID); if (-1 == indx) { if (!CListUI::Add(pListElement)) { delete pListElement; } } else if(indx >= 0) { if (!CListUI::AddAt(pListElement,indx)) { delete pListElement; } } }
Node* CGroupsTreelistUI::AddNode(const GroupsListItemInfo& item, Node* parent) { if (!parent) parent = root_node_; TCHAR szBuf[MAX_PATH] = {0}; CListContainerElementUI* pListElement = NULL; if (!UIIMList::m_dlgBuilder.GetMarkup()->IsValid()) { pListElement = static_cast<CListContainerElementUI*>(UIIMList::m_dlgBuilder.Create(kXMLFilePath, (UINT)0, NULL, &paint_manager_)); } else { pListElement = static_cast<CListContainerElementUI*>(UIIMList::m_dlgBuilder.Create((UINT)0, &paint_manager_)); } if (pListElement == NULL) return NULL; Node* node = new Node; node->data().level_ = parent->data().level_ + 1; if (item.folder) node->data().has_child_ = !item.empty; else node->data().has_child_ = false; node->data().folder_ = item.folder; node->data().child_visible_ = (node->data().level_ == 0); node->data().child_visible_ = false; node->data().sId = item.id; node->data().text_ = item.nickName; node->data().list_elment_ = pListElement; if (!parent->data().child_visible_) pListElement->SetVisible(false); if (parent != UIIMList::root_node_ && !parent->data().list_elment_->IsVisible()) pListElement->SetVisible(false); CDuiRect rcPadding = UIIMList::text_padding_; for (int i = 0; i < node->data().level_; ++i) { rcPadding.left += UIIMList::level_text_start_pos_; } pListElement->SetPadding(rcPadding); CButtonUI* log_button = static_cast<CButtonUI*>(UIIMList::paint_manager_.FindSubControlByName(pListElement, kLogoButtonControlName)); if (log_button != NULL) { if (!item.folder && !item.avatarPath.IsEmpty()) { _stprintf_s(szBuf, MAX_PATH - 1, _T("%s"), item.avatarPath); log_button->SetNormalImage(szBuf); } else { CContainerUI* logo_container = static_cast<CContainerUI*>(paint_manager_.FindSubControlByName(pListElement, kLogoContainerControlName)); if (logo_container != NULL) logo_container->SetVisible(false); } log_button->SetTag((UINT_PTR)pListElement); log_button->OnEvent += MakeDelegate(&OnButtonEvent); } CDuiString html_text; if (node->data().has_child_) { if (node->data().child_visible_) html_text += UIIMList::level_expand_image_; else html_text += UIIMList::level_collapse_image_; _stprintf_s(szBuf, MAX_PATH - 1, _T("<x %d>"), level_text_start_pos_); html_text += szBuf; } if (item.folder) { html_text += node->data().text_; } else { _stprintf_s(szBuf, MAX_PATH - 1, _T("%s"), item.nickName); html_text += szBuf; } CLabelUI* nick_name = static_cast<CLabelUI*>(UIIMList::paint_manager_.FindSubControlByName(pListElement, kNickNameControlName)); if (nick_name != NULL) { if (item.folder) nick_name->SetFixedWidth(0); nick_name->SetShowHtml(true); nick_name->SetText(html_text); } if (item.folder && item.id == MY_DISCUSSGROUP_ITEMID) { CButtonUI* btnCreatGroup = static_cast<CButtonUI*>(UIIMList::paint_manager_.FindSubControlByName(pListElement, kcreatGroupControlName)); if (btnCreatGroup != NULL) { btnCreatGroup->SetVisible(true); btnCreatGroup->SetTag((UINT_PTR)pListElement); btnCreatGroup->OnEvent += MakeDelegate(&OnButtonEvent); } } if (!item.folder && !item.description.IsEmpty()) { CLabelUI* description = static_cast<CLabelUI*>(UIIMList::paint_manager_.FindSubControlByName(pListElement, kDescriptionControlName)); if (description != NULL) { _stprintf_s(szBuf, MAX_PATH - 1, _T("<x 10><c #808080>%s</c>"), item.description); description->SetShowHtml(true); description->SetText(szBuf); } } if (item.folder) { pListElement->SetFixedHeight(kGroupListFolderItemHeight); } else pListElement->SetFixedHeight(kGroupListNormalItemHeight); pListElement->SetTag((UINT_PTR)node); int index = 0; if (parent->has_children()) { Node* prev = parent->get_last_child(); index = prev->data().list_elment_->GetIndex() + 1; } else { if (parent == UIIMList::root_node_) index = 0; else index = parent->data().list_elment_->GetIndex() + 1; } if (!CListUI::AddAt(pListElement, index)) { delete pListElement; delete node; node = NULL; } parent->add_child(node); return node; }
Node* CGroupsUI::AddNode(const FriendListItemInfo& item, Node* parent) { if (!parent) parent = root_node_; TCHAR szBuf[MAX_PATH] = {0}; CListContainerElementUI* pListElement = NULL; if( !m_dlgBuilder.GetMarkup()->IsValid() ) { if (uiType == eUI_Group) { pListElement = static_cast<CListContainerElementUI*>(m_dlgBuilder.Create(_T("item_group_list.xml"), (UINT)0, NULL, &paint_manager_)); kGroupListItemNormalHeight = 26; kGroupListItemSelectedHeight = 44; } else if (uiType == eUI_Member) { pListElement = static_cast<CListContainerElementUI*>(m_dlgBuilder.Create(_T("item_member_list.xml"), (UINT)0, NULL, &paint_manager_)); kGroupListItemNormalHeight = 26; kGroupListItemSelectedHeight = 44; } else if (uiType == eUI_Recent) { pListElement = static_cast<CListContainerElementUI*>(m_dlgBuilder.Create(_T("item_recent_list.xml"), (UINT)0, NULL, &paint_manager_)); kGroupListItemNormalHeight = 56; kGroupListItemSelectedHeight = 56; } } else { pListElement = static_cast<CListContainerElementUI*>(m_dlgBuilder.Create((UINT)0, &paint_manager_)); } if (pListElement == NULL) return NULL; Node* node = new Node; node->data().level_ = parent->data().level_ + 1; if (item.folder) node->data().has_child_ = !item.empty; else node->data().has_child_ = false; node->data().folder_ = item.folder; node->data().child_visible_ = (node->data().level_ == 0); node->data().nodetype = item.nodetype; node->data().type = item.type; node->data().rusertype = item.rusertype; node->data().text_ = item.showname; node->data().value = item.id; node->data().id = item.id; node->data().numid = item.numid; node->data().Parentid = item.Parentid; node->data().nickname = item.nick_name; node->data().list_elment_ = pListElement; //IM2.0 node->data().Lastword = item.Lastword; node->data().GoodAt = item.GoodAt; node->data().lastwordtime = item.lastwordtime; node->data().isvip = item.isvip; node->data().hasright = item.hasright; node->data().totlenum = item.totlenum; node->data().onlinenum = item.onlinenum; if (!parent->data().child_visible_) pListElement->SetVisible(false); if (parent != root_node_ && !parent->data().list_elment_->IsVisible()) pListElement->SetVisible(false); CDuiRect rcPadding = text_padding_; for (int i = 0; i < node->data().level_; ++i) { rcPadding.left += level_text_start_pos_; } pListElement->SetPadding(rcPadding); CButtonUI* log_button = static_cast<CButtonUI*>(paint_manager_.FindSubControlByName(pListElement, kLogoButtonControlName)); if (log_button != NULL) { if (!item.folder && !item.logo.IsEmpty()) { _stprintf_s(szBuf, MAX_PATH - 1, _T("%s"), item.logo); log_button->SetNormalImage(szBuf); } else { CContainerUI* logo_container = static_cast<CContainerUI*>(paint_manager_.FindSubControlByName(pListElement, kLogoContainerControlName)); if (logo_container != NULL) logo_container->SetVisible(false); } log_button->SetTag((UINT_PTR)pListElement); log_button->OnEvent += MakeDelegate(&OnLogoButtonEvent); } CDuiString html_text; if (node->data().has_child_) { if (node->data().child_visible_) html_text += level_expand_image_; else html_text += level_collapse_image_; _stprintf_s(szBuf, MAX_PATH - 1, _T("<x %d>"), level_text_start_pos_); html_text += szBuf; } if (item.folder) { html_text += node->data().text_; } else { _stprintf_s(szBuf, MAX_PATH - 1, _T("%s"), node->data().text_); html_text += szBuf; } CLabelUI* nick_name = static_cast<CLabelUI*>(paint_manager_.FindSubControlByName(pListElement, kNickNameControlName)); if (nick_name != NULL) { if (item.folder) nick_name->SetFixedWidth(0); nick_name->SetShowHtml(true); nick_name->SetText(html_text); } ////////////////////////////////////////////////////////////////////////// //IM2.0 CLabelUI* l_time = static_cast<CLabelUI*>(paint_manager_.FindSubControlByName(pListElement, kTimeControlName)); if (l_time != NULL) { CDuiString lastwordtime = _T(""); long time = item.lastwordtime ; CTime tempTime(time) ; CTime curTime = CTime::GetCurrentTime() ; // 昨天 if( ( curTime.GetYear() == tempTime.GetYear() && curTime.GetMonth() == tempTime.GetMonth() ) && ( curTime.GetDay() == tempTime.GetDay() + 1 ) ) { l_time->SetText(_T("昨天")) ; } else if( ( curTime.GetYear() == tempTime.GetYear() && curTime.GetMonth() == tempTime.GetMonth() ) && ( curTime.GetDay() == tempTime.GetDay() + 2 ) ) { l_time->SetText(_T("前天")) ; } else if( ( curTime.GetYear() == tempTime.GetYear() && curTime.GetMonth() == tempTime.GetMonth() ) && ( curTime.GetDay() == tempTime.GetDay()) ) { // 当天 CString strText = _T(" ") ; strText.Format("%d:%d" ,tempTime.GetHour(),tempTime.GetMinute()) ; l_time->SetText(strText.GetBuffer()) ; } else { CString strText = _T(" ") ; strText.Format("%d-%d" ,tempTime.GetMonth(),tempTime.GetDay()) ; l_time->SetText(strText.GetBuffer()) ; } //lastwordtime.Format("%02d:%02d", item.lastwordtime/100, item.lastwordtime%100); //l_time->SetText(lastwordtime); } CLabelUI* l_lastword = static_cast<CLabelUI*>(paint_manager_.FindSubControlByName(pListElement, kLastWordControlName)); if (l_lastword != NULL) l_lastword->SetText(item.Lastword); ////////////////////////////////////////////////////////////////////////// if (!item.folder && !item.description.IsEmpty()) { CLabelUI* description = static_cast<CLabelUI*>(paint_manager_.FindSubControlByName(pListElement, kDescriptionControlName)); if (description != NULL) { _stprintf_s(szBuf, MAX_PATH - 1, _T("<x 8><c #808080>%s</c>"), item.description); description->SetShowHtml(true); description->SetText(szBuf); } } pListElement->SetFixedHeight(kGroupListItemNormalHeight); pListElement->SetTag((UINT_PTR)node); int index = 0; if (parent->has_children()) { Node* prev = parent->get_last_child(); index = prev->data().list_elment_->GetIndex() + 1; } else { if (parent == root_node_) index = 0; else index = parent->data().list_elment_->GetIndex() + 1; } if (!CListUI::AddAt(pListElement, index)) { delete pListElement; delete node; node = NULL; } parent->add_child(node); CString strID = item.id.GetData(); allNodeInfo[strID] = node; return node; }
Node* CGroupsUI::AddNode(const GroupsListItemInfo& item, Node* parent) { if (!parent) parent = root_node_; TCHAR szBuf[MAX_PATH] = {0}; CListContainerElementUI* pListElement = NULL; if( !m_dlgBuilder.GetMarkup()->IsValid() ) { pListElement = static_cast<CListContainerElementUI*>(m_dlgBuilder.Create(_T("group_list_item.xml"), (UINT)0, NULL, &paint_manager_)); } else { pListElement = static_cast<CListContainerElementUI*>(m_dlgBuilder.Create((UINT)0, &paint_manager_)); } if (pListElement == NULL) return NULL; Node* node = new Node; node->data().level_ = parent->data().level_ + 1; if (item.folder) node->data().has_child_ = !item.empty; else node->data().has_child_ = false; node->data().folder_ = item.folder; node->data().child_visible_ = (node->data().level_ == 0); node->data().text_ = item.nick_name; node->data().list_elment_ = pListElement; if (!parent->data().child_visible_) pListElement->SetVisible(false); if (parent != root_node_ && !parent->data().list_elment_->IsVisible()) pListElement->SetVisible(false); CRect rcPadding = text_padding_; for (int i = 0; i < node->data().level_; ++i) { rcPadding.left += level_text_start_pos_; } pListElement->SetPadding(rcPadding); CButtonUI* log_button = static_cast<CButtonUI*>(paint_manager_.FindSubControlByName(pListElement, kLogoButtonControlName)); if (log_button != NULL) { if (!item.folder && !item.logo.empty()) { #if defined(UNDER_WINCE) _stprintf(szBuf, _T("%s"), item.logo.c_str()); #else _stprintf_s(szBuf, MAX_PATH - 1, _T("%s"), item.logo.c_str()); #endif log_button->SetNormalImage(szBuf); } else { CContainerUI* logo_container = static_cast<CContainerUI*>(paint_manager_.FindSubControlByName(pListElement, kLogoContainerControlName)); if (logo_container != NULL) logo_container->SetVisible(false); } log_button->SetTag((UINT_PTR)pListElement); log_button->OnEvent += MakeDelegate(&OnLogoButtonEvent); } tString html_text; if (node->data().has_child_) { if (node->data().child_visible_) html_text += level_expand_image_; else html_text += level_collapse_image_; #if defined(UNDER_WINCE) _stprintf(szBuf, _T("<x %d>"), level_text_start_pos_); #else _stprintf_s(szBuf, MAX_PATH - 1, _T("<x %d>"), level_text_start_pos_); #endif html_text += szBuf; } if (item.folder) { html_text += node->data().text_; } else { #if defined(UNDER_WINCE) _stprintf(szBuf, _T("%s"), item.nick_name.c_str()); #else _stprintf_s(szBuf, MAX_PATH - 1, _T("%s"), item.nick_name.c_str()); #endif html_text += szBuf; } CLabelUI* nick_name = static_cast<CLabelUI*>(paint_manager_.FindSubControlByName(pListElement, kNickNameControlName)); if (nick_name != NULL) { if (item.folder) nick_name->SetFixedWidth(0); nick_name->SetShowHtml(true); nick_name->SetText(html_text.c_str()); } if (!item.folder && !item.description.empty()) { CLabelUI* description = static_cast<CLabelUI*>(paint_manager_.FindSubControlByName(pListElement, kDescriptionControlName)); if (description != NULL) { #if defined(UNDER_WINCE) _stprintf(szBuf, _T("<x 20><c #808080>%s</c>"), item.description.c_str()); #else _stprintf_s(szBuf, MAX_PATH - 1, _T("<x 20><c #808080>%s</c>"), item.description.c_str()); #endif description->SetShowHtml(true); description->SetText(szBuf); } } pListElement->SetFixedHeight(kGroupListItemNormalHeight); pListElement->SetTag((UINT_PTR)node); int index = 0; if (parent->has_children()) { Node* prev = parent->get_last_child(); index = prev->data().list_elment_->GetIndex() + 1; } else { if (parent == root_node_) index = 0; else index = parent->data().list_elment_->GetIndex() + 1; } if (!CListUI::AddAt(pListElement, index)) { delete pListElement; delete node; node = NULL; } parent->add_child(node); return node; }
void CVisitor::Paging() { m_pList->RemoveAll(); CEditUI* pName = static_cast<CEditUI*>(m_pManager->FindControl(_T("Visitor_SearchEdit"))); std::string strName = pName->GetText().GetStringA(); std::string y = "'"; std::string d = ","; std::string b = "%"; std::string strCount = "select count(serial_ID) from (select * from visitor where name like "+y+b+strName+b+y+") CountTable"; std::auto_ptr<sql::ResultSet> result = CLoginWnd::m_mySql.ExecuteQuery(strCount); if (result->next()) { m_iPage = result->getInt("count(serial_ID)"); m_iPage = (m_iPage/10)+1; } if (m_iCurrentPage<1) { m_iCurrentPage = 1; } if (m_iCurrentPage>m_iPage) { m_iCurrentPage = m_iPage; } int PageSize = 10; int count = (m_iCurrentPage-1) * PageSize; char start[24]; sprintf_s(start,sizeof(start),"%d",count); char data[24]; sprintf_s(data,sizeof(data),"%d",PageSize); std::string strStart = start; std::string strData = data; std::string strsql = "select * from (select * from visitor where name like "+y+b+strName+b+y+") table1 where serial_ID limit "+strStart+d+strData; std::auto_ptr<sql::ResultSet> res = CLoginWnd::m_mySql.ExecuteQuery(strsql); while(res->next()) { CDialogBuilder builder; CListContainerElementUI* pListItem = NULL; pListItem = static_cast<CListContainerElementUI*>(builder.Create(_T("xmls/VisitorList_item.xml"),UINT(0),NULL,m_pManager,NULL)); int index = m_pList->GetCount(); pListItem->SetFixedHeight(60); m_pList->AddAt(pListItem,index); CLabelUI* pName = (CLabelUI*)m_pManager->FindSubControlByName(pListItem,_T("Visitorname")); CLabelUI* pGender = (CLabelUI*)m_pManager->FindSubControlByName(pListItem,_T("VisitorGender")); CLabelUI* pCard = (CLabelUI*)m_pManager->FindSubControlByName(pListItem,_T("VisitorCard")); CLabelUI* pIdentity = (CLabelUI*)m_pManager->FindSubControlByName(pListItem,_T("VisitorIdentity")); CLabelUI* pAddr = (CLabelUI*)m_pManager->FindSubControlByName(pListItem,_T("VisitorAddr")); CLabelUI* pCarLicence = (CLabelUI*)m_pManager->FindSubControlByName(pListItem,_T("VisitorCarLicence")); CLabelUI* pMobile = (CLabelUI*)m_pManager->FindSubControlByName(pListItem,_T("VisitorMobile")); CLabelUI* pReason = (CLabelUI*)m_pManager->FindSubControlByName(pListItem,_T("VisitReason")); CLabelUI* pQuantity = (CLabelUI*)m_pManager->FindSubControlByName(pListItem,_T("VisitorQuantity")); CLabelUI* pVisitTime = (CLabelUI*)m_pManager->FindSubControlByName(pListItem,_T("VisitTime")); CLabelUI* pLeaveTime = (CLabelUI*)m_pManager->FindSubControlByName(pListItem,_T("LeaveTime")); CLabelUI* pIsLeft = (CLabelUI*)m_pManager->FindSubControlByName(pListItem,_T("IsLeft")); CButtonUI* pBlack = static_cast<CButtonUI*>(m_pManager->FindSubControlByName(pListItem,_T("AddToBlackList"))); pBlack->SetTag((UINT_PTR)pListItem); char name[100]; WCHAR wname[200]; strcpy_s(name,sizeof(name),res->getString("name").c_str()); CCommonConvert::Char2WChar(name,sizeof(name),wname); pName->SetText(wname); CDuiString wgender; int gender = res->getInt("gender"); if (gender == 2) { wgender = (_T("女")); } else { wgender = (_T("男")); } pGender->SetText(wgender); char card[100]; WCHAR wcard[200]; strcpy_s(card,sizeof(card),res->getString("card_num").c_str()); CCommonConvert::Char2WChar(card,sizeof(card),wcard); pCard->SetText(wcard); char identity[100]; WCHAR widentity[200]; strcpy_s(identity,sizeof(identity),res->getString("identity_num").c_str()); CCommonConvert::Char2WChar(identity,sizeof(identity),widentity); pIdentity->SetText(widentity); char addr[200]; WCHAR waddr[400]; strcpy_s(addr,sizeof(addr),res->getString("address").c_str()); CCommonConvert::Char2WChar(addr,sizeof(addr),waddr); pAddr->SetText(waddr); char car[200]; WCHAR wcar[400]; strcpy_s(car,sizeof(car),res->getString("car_num").c_str()); CCommonConvert::Char2WChar(car,sizeof(car),wcar); pCarLicence->SetText(wcar); char mobile[50]; WCHAR wmobile[100]; strcpy_s(mobile,sizeof(mobile),res->getString("phone_num").c_str()); CCommonConvert::Char2WChar(mobile,sizeof(mobile),wmobile); pMobile->SetText(wmobile); char reason[200]; WCHAR wreason[400]; strcpy_s(reason,sizeof(reason),res->getString("visit_reason").c_str()); CCommonConvert::Char2WChar(reason,sizeof(reason),wreason); pReason->SetText(wreason); int quantity = res->getInt("visit_num"); CDuiString wquantity; wquantity.Format(_T("%d"),quantity); pQuantity->SetText(wquantity); char visit_time[50]; WCHAR wvisit_time[100]; strcpy_s(visit_time,sizeof(visit_time),res->getString("visit_time").c_str()); CCommonConvert::Char2WChar(visit_time,sizeof(visit_time),wvisit_time); pVisitTime->SetText(wvisit_time); char leave_time[50]; WCHAR wleave_time[100]; strcpy_s(leave_time,sizeof(leave_time),res->getString("leave_time").c_str()); CCommonConvert::Char2WChar(leave_time,sizeof(leave_time),wleave_time); pLeaveTime->SetText(wleave_time); int isleft = res->getInt("is_leave"); CDuiString wisleft; if (isleft == 0) { wisleft = _T("否"); } else { wisleft = _T("是"); } pIsLeft->SetText(wisleft); } ShowStatus(); SetPageBtn(); }