#include "StdAfx.h" #include "MBCreateCrowdWnd.h" #include "MBAMWnd.h" CMBCreateCrowdWnd::CMBCreateCrowdWnd(void):SHostDialog(_T("LAYOUT:DLG_CREATECROWD")) { m_bLayoutInited = FALSE; m_pMBAMWnd = NULL; m_pServerMgr = NULL; m_pUserLogin = NULL; m_pTileVUserItem = NULL; m_pAdapterUserItemTile = NULL; m_bModify = FALSE; } CMBCreateCrowdWnd::~CMBCreateCrowdWnd(void) { } int CMBCreateCrowdWnd::OnCreate(LPCREATESTRUCT lpCreateStruct) { SetMsgHandled(FALSE); return 0; } BOOL CMBCreateCrowdWnd::OnInitDialog(HWND hWnd, LPARAM lParam) { m_bLayoutInited = TRUE; //tileView m_pTileVUserItem = FindChildByName2("tileex_groupuseritem"); if(m_pTileVUserItem) { m_pAdapterUserItemTile = new CMBGroupUserTileAdapter; m_pAdapterUserItemTile->SetDataPtr( &m_itemCrowd ); m_pAdapterUserItemTile->SetCreateCrowdWndtr(this); m_pAdapterUserItemTile->SetCreateCrowd(TRUE); m_pAdapterUserItemTile->SetMBOrgListMgr(m_pServerMgr->GetOrgListMgr()); m_pAdapterUserItemTile->SetServerMgrPtr(m_pServerMgr); m_pTileVUserItem->SetAdapter(m_pAdapterUserItemTile); m_pAdapterUserItemTile->Release(); // ²»»áÕæµÄÊÍ·Å£¬ÈüÆÊýÆ÷¼õÒ» } if(m_bModify) { SWindow *pWndCrowd = FindChildByName2(_T("wnd_crowduser")); if( pWndCrowd ){ pWndCrowd->SetVisible(false,true); } pWndCrowd = FindChildByName2(_T("wnd_crowdnotice")); if( pWndCrowd ){ pWndCrowd->SetVisible(true,true); } CString strText; SWindow *pWndCrowdgName = FindChildByName2(_T("ed_crowdname")); if( pWndCrowdgName ){ pWndCrowdgName->SetWindowText(m_itemCrowd.m_strName); pWndCrowdgName->SetFocus(); } SComboView* pCbxView = FindChildByName2(L"cbx_crowdscale"); if(pCbxView) { SListView* pListview = pCbxView->GetListView(); SASSERT(pListview); CObjectAdapter * pAdapter = new CObjectAdapter(this); pAdapter->SetCtrlName(L"cbx_crowdscale"); pListview->SetAdapter(pAdapter); pAdapter->Release(); strText.Format(_T("%d"),m_itemCrowd.m_nScaCount); pCbxView->SetWindowText(strText); } pCbxView = FindChildByName2(L"cbx_crowdverifytype"); if(pCbxView) { SListView* pListview = pCbxView->GetListView(); SASSERT(pListview); CObjectAdapter * pAdapter = new CObjectAdapter(this); pAdapter->SetCtrlName(L"cbx_crowdscale"); pListview->SetAdapter(pAdapter); pAdapter->Release(); pAdapter->AddText(_T("ÔÊÐíÈκÎÈ˼ÓÈë")); pAdapter->AddText(_T("ÐèÒªÑéÖ¤ºó¼ÓÈë")); pAdapter->AddText(_T("²»ÔÊÐíÈκÎÈ˼ÓÈë")); if(m_itemCrowd.m_nVerify < 0 || m_itemCrowd.m_nVerify >2 ) m_itemCrowd.m_nVerify = 0; pCbxView->SetCurSel(m_itemCrowd.m_nVerify); } SRichEdit *pRichEdit = FindChildByName2(_T("ed_crowddesc")); if( pRichEdit ) pRichEdit->SetWindowText(m_itemCrowd.m_strDesc); pRichEdit = FindChildByName2(_T("ed_crowdnotice")); if( pRichEdit ) pRichEdit->SetWindowText(m_itemCrowd.m_strNotice); } else { SWindow *pWndCrowd = FindChildByName2(_T("wnd_crowdnotice")); if( pWndCrowd ){ pWndCrowd->SetVisible(false,true); } pWndCrowd = FindChildByName2(_T("wnd_crowduser")); if( pWndCrowd ){ pWndCrowd->SetVisible(true,true); } SEdit *pEditName = FindChildByName2(_T("ed_crowdname")); if( pEditName ){ pEditName->SetWindowText(_T("н¨Èº")); pEditName->SetFocus(); } SComboView* pCbxView = FindChildByName2(L"cbx_crowdscale"); if(pCbxView) { SStringT strData; int nUserLimit= m_pServerMgr->GetUserLogin()->GetUserAce()->m_nCrowdUsersLimit; SListView* pListview = pCbxView->GetListView(); SASSERT(pListview); CObjectAdapter * pAdapter = new CObjectAdapter(this); pAdapter->SetCtrlName(L"cbx_crowdscale"); pListview->SetAdapter(pAdapter); pAdapter->Release(); if(nUserLimit < 1) { pAdapter->AddText(_T("10")); pAdapter->AddText(_T("50")); pAdapter->AddText(_T("100")); pAdapter->AddText(_T("200")); pAdapter->AddText(_T("300")); pAdapter->AddText(_T("500")); pCbxView->SetCurSel(3); } else if(nUserLimit <= 10) { strData.Format(_T("%d"), nUserLimit); pAdapter->AddText(strData); pCbxView->SetCurSel(0); } else if(nUserLimit <= 50) { pAdapter->AddText(_T("10")); strData.Format(_T("%d"), nUserLimit); pAdapter->AddText(strData); pCbxView->SetCurSel(1); } else if(nUserLimit <= 100) { pAdapter->AddText(_T("10")); pAdapter->AddText(_T("50")); strData.Format(_T("%d"), nUserLimit); pAdapter->AddText(strData); pCbxView->SetCurSel(2); } else if(nUserLimit <= 200) { pAdapter->AddText(_T("10")); pAdapter->AddText(_T("50")); pAdapter->AddText(_T("100")); strData.Format(_T("%d"), nUserLimit); pAdapter->AddText(strData); pCbxView->SetCurSel(3); } else if(nUserLimit <= 300) { pAdapter->AddText(_T("10")); pAdapter->AddText(_T("50")); pAdapter->AddText(_T("100")); pAdapter->AddText(_T("200")); strData.Format(_T("%d"), nUserLimit); pAdapter->AddText(strData); pCbxView->SetCurSel(3); } else if(nUserLimit <= 500) { pAdapter->AddText(_T("10")); pAdapter->AddText(_T("50")); pAdapter->AddText(_T("100")); pAdapter->AddText(_T("200")); pAdapter->AddText(_T("300")); strData.Format(_T("%d"), nUserLimit); pAdapter->AddText(strData); pCbxView->SetCurSel(3); } else { pAdapter->AddText(_T("10")); pAdapter->AddText(_T("50")); pAdapter->AddText(_T("100")); pAdapter->AddText(_T("200")); pAdapter->AddText(_T("300")); pAdapter->AddText(_T("500")); pCbxView->SetCurSel(3); } } pCbxView = FindChildByName2(L"cbx_crowdverifytype"); if(pCbxView) { SListView* pListview = pCbxView->GetListView(); SASSERT(pListview); CObjectAdapter * pAdapter = new CObjectAdapter(this); pAdapter->SetCtrlName(L"cbx_crowdscale"); pListview->SetAdapter(pAdapter); pAdapter->Release(); pAdapter->AddText(_T("ÔÊÐíÈκÎÈ˼ÓÈë")); pAdapter->AddText(_T("ÐèÒªÑéÖ¤ºó¼ÓÈë")); pAdapter->AddText(_T("²»ÔÊÐíÈκÎÈ˼ÓÈë")); pCbxView->SetCurSel(0); } } return 0; } // È·¶¨ void CMBCreateCrowdWnd::OnBtnDetermine() { SComboView* pCbxView = NULL; if( !m_bModify) { m_itemCrowd.m_strName = _T(""); m_itemCrowd.m_nScaCount = 100; m_itemCrowd.m_nVerify = 0; m_itemCrowd.m_strDesc = _T(""); m_itemCrowd.m_nType = CROWD_TYPE_NORMAL; pCbxView = FindChildByName2(L"cbx_crowdscale"); if(pCbxView) { m_itemCrowd.m_nScaCount = _tstol(pCbxView->GetWindowText()); } } SWindow *pWndCrowdgName = FindChildByName2(_T("ed_crowdname")); if( pWndCrowdgName ){ m_itemCrowd.m_strName =pWndCrowdgName->GetWindowText(); } pCbxView = FindChildByName2(L"cbx_crowdverifytype"); if(pCbxView) { m_itemCrowd.m_nVerify = pCbxView->GetCurSel(); } SWindow *pWndCrowdDesc = FindChildByName2(_T("ed_crowddesc")); if( pWndCrowdDesc ){ m_itemCrowd.m_strDesc =pWndCrowdDesc->GetWindowText(); } pWndCrowdDesc = FindChildByName2(_T("ed_crowdnotice")); if( pWndCrowdDesc ){ m_itemCrowd.m_strNotice =pWndCrowdDesc->GetWindowText(); } if(m_itemCrowd.m_strName.IsEmpty()) { MBMessageBox(m_hWnd,_T("ȺÃû³Æ²»ÄÜΪ¿Õ£¡"),_T("Ìáʾ"), MB_OK); return; } if ( CMBAMUIBaseFun::GetStringLen(m_itemCrowd.m_strName) > 32) { CString strMess; strMess.Format(_T("ȺÃû³ÆµÄ³¤¶È²»µÃ³¬¹ý32µÄ×Ö·û")); MBMessageBox(m_hWnd,strMess, _T("Ìáʾ"), MB_OK); return ; } if ( CMBAMUIBaseFun::GetStringLen(m_itemCrowd.m_strDesc) > 128) { CString strMess; strMess.Format(_T("ȺÃèÊöµÄ³¤¶È²»µÃ³¬¹ý128µÄ×Ö·û")); MBMessageBox(m_hWnd,strMess, _T("Ìáʾ"), MB_OK); return ; } if( !m_bModify) { int nSelCount = m_itemCrowd.m_listUserItem.GetCount(); m_itemCrowd.m_nUserCount = 1; if(1 + nSelCount > m_itemCrowd.m_nScaCount) { CString strMess; strMess.Format(_T("Ìí¼ÓµÄȺÓû§¸öÊý³¬¹ýÏÞÖÆÊý(%d)£¬ÇëÖØÐÂÑ¡ÔñÌí¼ÓÓû§ÔÙÀ´Ñ¡Ôñ"), m_itemCrowd.m_nScaCount); MBMessageBox(m_hWnd,strMess, _T("Ìáʾ"), MB_OK); return; } CString strUserInfo = _T(""); CString strTmpUserInfo = _T(""); POSITION pos; CCrowdUserItem *pUserItem; for(pos = m_itemCrowd.m_listUserItem.GetHeadPosition();pos; pos) { pUserItem = (CCrowdUserItem*)m_itemCrowd.m_listUserItem.GetNext(pos); strTmpUserInfo.Format(_T("%s;%s;%d"), pUserItem->m_strLoginName, pUserItem->m_strUserName,pUserItem->m_nSex); strUserInfo += strTmpUserInfo + APART_MULLOGIN; } if ( m_pMBAMWnd->NewNormalCrowd(&m_itemCrowd,strUserInfo)) { m_itemCrowd.DetachList(); SHostDialog::OnOK(); } } else { if ( m_pMBAMWnd->ModifyNormalCrowd(&m_itemCrowd)) { m_itemCrowd.DetachList(); SHostDialog::OnOK(); } } } void CMBCreateCrowdWnd::SetAMWndPtr(CMBAMWnd *pAMWnd) { m_pMBAMWnd = pAMWnd; } void CMBCreateCrowdWnd::SetServerMgrPtr( CMBServerMgr *pMBServerMgr ) { m_pServerMgr = pMBServerMgr; m_pUserLogin = pMBServerMgr->GetUserLogin(); } void CMBCreateCrowdWnd::SetModifyCrowd(CCrowdItem *pItemCrowd) { m_bModify = TRUE; m_itemCrowd = *pItemCrowd; } void CMBCreateCrowdWnd::InviteCrowdUsers() { CMBSelOrgList listSelOrg; listSelOrg.m_bMultiSelect = true; listSelOrg.m_nSelectStyle = SELORGITEM_TYPE_USER; CString strLoginName = m_pServerMgr->GetUserLogin()->m_strLoginName; BOOL bRet = CMBOrgUIBaseFun::ShowSelectOrgItemWnd(m_pServerMgr, &m_pMBAMWnd->GetMessengerPro()->m_mbLastContact,_T("ȺÑûÇëÓû§"),&listSelOrg) ; if( !bRet) return ; CMBSelOrgItem *pItemmOrg; CString strValue; CCrowdUserItem *pUserItem; int nSelCount = 0; for(int i = 0; i < listSelOrg.GetOrgCount();i++) { pItemmOrg= listSelOrg.GetOrgAt(i); if(m_itemCrowd.FindUserItem(pItemmOrg->m_strID)) continue; pUserItem = new CCrowdUserItem; pUserItem->m_strLoginName = pItemmOrg->m_strID; pUserItem->m_strUserName = pItemmOrg->m_strName; pUserItem->m_nSex = pItemmOrg->m_nSex; m_itemCrowd.AddUserItem(pUserItem); } m_pAdapterUserItemTile->SetDataChanged(); } void CMBCreateCrowdWnd::OnClickCBItem(CString strCtrlName,int nIndex,CString strText) { }