// GuildSearchDlg.cpp : ±¸Çö ÆÄÀÏÀÔ´Ï´Ù. // #include "stdafx.h" #include "AdminToolClient.h" #include "GuildSearchDlg.h" #include "GlobalFunctions.h" #include "PacketManager.h" #include "WindowMgr.h" #include #include "CharacterDoc.h" #include "AdminClientConstants.h" #include "ListCtrlSortClass.h" #include "GuildMainDlg.h" #include ".\guildsearchdlg.h" // CGuildSearchDlg ´ëÈ­ »óÀÚÀÔ´Ï´Ù. IMPLEMENT_DYNAMIC(CGuildSearchDlg, CDialog) CGuildSearchDlg::CGuildSearchDlg(CWnd* pParent /*=NULL*/) : CDialog(CGuildSearchDlg::IDD, pParent) , m_bAllGroupChk(TRUE) , m_strSearchValue(_T("")) , m_dwSearchCount(0) , m_bSortListAsc(false) , m_dwSelCount(0) { INSERT_WINDOW(IDD_GUILDSEARCH_DLG, static_cast(this)); } CGuildSearchDlg::~CGuildSearchDlg() { ERASE_WINDOW(IDD_GUILDSEARCH_DLG); } void CGuildSearchDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Control(pDX, IDC_GUILDSEARCH_SERVERGROUP_CB, m_ctrlServerGroupCb); DDX_Control(pDX, IDC_GUILDSEARCH_SEARCHCONDITION_CB, m_ctrlSearchConditionCb); DDX_Check(pDX, IDC_GUILSEARCH_SERVERGROUP_CHK, m_bAllGroupChk); DDX_Text(pDX, IDC_GUILDSEARCH_SEARCHVALUE_EDIT, m_strSearchValue); DDX_Control(pDX, IDC_GUILDSEARCH_SEARCHED_LIST, m_ctrlGuildSearchList); DDX_Text(pDX, IDC_GUILDSEARCH_SEARCHCOUNT, m_dwSearchCount); DDX_Text(pDX, IDC_GUILDSEARCH_SELCOUNT, m_dwSelCount); } BEGIN_MESSAGE_MAP(CGuildSearchDlg, CDialog) ON_BN_CLICKED(IDC_GUILDSEARCH_SEARCH_BTN, OnBnClickedGuildSearch) ON_BN_CLICKED(IDC_GUILSEARCH_SERVERGROUP_CHK, OnBnClickedAllGroupChk) ON_NOTIFY(LVN_COLUMNCLICK, IDC_GUILDSEARCH_SEARCHED_LIST, OnLvnColumnclickSearchedList) ON_NOTIFY(NM_DBLCLK, IDC_GUILDSEARCH_SEARCHED_LIST, OnNMDblclkSearchedList) ON_NOTIFY(LVN_ITEMCHANGED, IDC_GUILDSEARCH_SEARCHED_LIST, OnLvnItemchangedGuildsearchSearchedList) END_MESSAGE_MAP() // CGuildSearchDlg ¸Þ½ÃÁö 󸮱âÀÔ´Ï´Ù. BOOL CGuildSearchDlg::OnInitDialog() { CDialog::OnInitDialog(); ServerGroupComboSet(m_ctrlServerGroupCb); m_ctrlSearchConditionCb.InsertString(0, _T("GID")); m_ctrlSearchConditionCb.InsertString(1, _T("Name")); m_ctrlGuildSearchList.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_FLATSB); m_ctrlGuildSearchList.InsertColumn(0, _T("GID"), LVCFMT_LEFT, 65); m_ctrlGuildSearchList.InsertColumn(1, GetLocalString("ADDED_STRING_001"), LVCFMT_LEFT, 80); m_ctrlGuildSearchList.InsertColumn(2, GetLocalString("SERVER_GROUP"), LVCFMT_LEFT, 80); m_ctrlGuildSearchList.InsertColumn(3, GetLocalString("NATION"), LVCFMT_LEFT, 80); m_ctrlGuildSearchList.InsertColumn(4, GetLocalString("GUILD_NAME"), LVCFMT_LEFT, 105); m_ctrlGuildSearchList.InsertColumn(5, GetLocalString("FAME"), LVCFMT_LEFT, 95); m_ctrlGuildSearchList.InsertColumn(6, _T("Level"), LVCFMT_LEFT, 43); m_ctrlGuildSearchList.InsertColumn(7, GetLocalString("MEMBER_NUM"), LVCFMT_LEFT, 90); m_ctrlGuildSearchList.InsertColumn(8, _T("Gold"), LVCFMT_LEFT, 110); SetWindowText(GetLocalString("IDD_GUILDSEARCH_DLG")); SetUIString(this->m_hWnd, IDC_GUILSEARCH_SERVERGROUP_CHK, "IDC_GUILSEARCH_SERVERGROUP_CHK"); SetUIString(this->m_hWnd, IDC_GUILDSEARCH_SEARCH_BTN, "IDC_GUILDSEARCH_SEARCH_BTN"); SetUIString(this->m_hWnd, IDC_GUILDSEARCH_01, "IDC_GUILDSEARCH_01"); SetUIString(this->m_hWnd, IDC_GUILDSEARCH_02, "IDC_GUILDSEARCH_02"); SetUIString(this->m_hWnd, IDC_GUILDSEARCH_03, "IDC_GUILDSEARCH_03"); SetUIString(this->m_hWnd, IDC_GUILDSEARCH_04, "IDC_GUILDSEARCH_04"); return TRUE; } void CGuildSearchDlg::OnBnClickedGuildSearch() { UpdateData(true); unsigned char cSearchType = PktAdminMgr::PktGuildSearch::NONE; unsigned long dwServerGroup = 0; TCHAR szSearchValue[MAX_PATH]; bool bAllGroupSerchFlag = false; if(m_bAllGroupChk) { bAllGroupSerchFlag = true; if(0 == m_strSearchValue.GetLength()) { cSearchType = PktAdminMgr::PktGuildSearch::ALLGROUP_ALLGUILD; } else { if(CB_ERR == m_ctrlSearchConditionCb.GetCurSel()) Report(GetLocalString("MSG_0100"), CAUTION); else if(m_ctrlSearchConditionCb.GetCurSel() == 0) cSearchType = PktAdminMgr::PktGuildSearch::ALLGROUP_SPEGUILD_GID; else if(m_ctrlSearchConditionCb.GetCurSel() == 1) cSearchType = PktAdminMgr::PktGuildSearch::ALLGROUP_SPEGUILD_NAME; } } else if(CB_ERR != m_ctrlServerGroupCb.GetCurSel()) { CString strGroupName; m_ctrlServerGroupCb.GetLBText(m_ctrlServerGroupCb.GetCurSel(), strGroupName); CCharacterDoc::GetInstance().GetServerIndex(strGroupName, dwServerGroup); if(0 == m_strSearchValue.GetLength()) cSearchType = PktAdminMgr::PktGuildSearch::SPEGROUP_ALLGUILD; else { if(CB_ERR == m_ctrlSearchConditionCb.GetCurSel()) Report(GetLocalString("MSG_0100"), CAUTION); else if(m_ctrlSearchConditionCb.GetCurSel() == 0) cSearchType = PktAdminMgr::PktGuildSearch::SPEGROUP_SPEGUILD_GID; else if(m_ctrlSearchConditionCb.GetCurSel() == 1) cSearchType = PktAdminMgr::PktGuildSearch::SPEGROUP_SPEGUILD_NAME; } } else { Report(GetLocalString("MSG_0101"), CAUTION); } if(PktAdminMgr::PktGuildSearch::NONE != cSearchType) { m_ctrlGuildSearchList.DeleteAllItems(); _tcsncpy(szSearchValue, m_strSearchValue, m_strSearchValue.GetLength()); szSearchValue[m_strSearchValue.GetLength()] = '\0'; if(bAllGroupSerchFlag) { for(unsigned long dwGroupIndex = 0; dwGroupIndex < CON::MAX_GROUP_NUM; dwGroupIndex++) CPacketMgr::GetInstance()->SendGuildSearch(cSearchType, dwGroupIndex, szSearchValue); m_dwSearchCount = 0; UpdateData(false); } else { CPacketMgr::GetInstance()->SendGuildSearch(cSearchType, dwServerGroup, szSearchValue); m_dwSearchCount = 0; UpdateData(false); } } } void CGuildSearchDlg::OnBnClickedAllGroupChk() { UpdateData(true); m_ctrlServerGroupCb.EnableWindow(!m_bAllGroupChk); } BOOL CGuildSearchDlg::PreTranslateMessage(MSG* pMsg) { if((WM_KEYDOWN == pMsg->message) && (VK_RETURN == pMsg->wParam)) { if(pMsg->hwnd == GetDlgItem(IDC_GUILDSEARCH_SEARCHVALUE_EDIT)->m_hWnd) { OnBnClickedGuildSearch(); } } return CDialog::PreTranslateMessage(pMsg); } void CGuildSearchDlg::OnLvnColumnclickSearchedList(NMHDR *pNMHDR, LRESULT *pResult) { LPNMLISTVIEW pNMLV = reinterpret_cast(pNMHDR); if(pNMLV->iSubItem == m_iSortListItem) { m_bSortListAsc = !m_bSortListAsc; } else { m_iSortListItem = pNMLV->iSubItem; m_bSortListAsc = true; } SortListWndItem(&m_ctrlGuildSearchList, m_iSortListItem); *pResult = 0; } void CGuildSearchDlg::SortListWndItem(CListCtrl* pListCtrl, const int iCol) { CListCtrlSortClass SortClass(pListCtrl,iCol); switch(m_iSortListItem) { case SORT_TYPE::GID: SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtINT); break; case SORT_TYPE::GROUP: SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRING); break; case SORT_TYPE::NATION: SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRING); break; case SORT_TYPE::NAME: SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRINGNOCASE); break; case SORT_TYPE::FAME: SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtINT); break; case SORT_TYPE::LEVEL: SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtINT); break; case SORT_TYPE::MEMBER_NUM: SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtINT); break; case SORT_TYPE::GOLD: SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtINT); break; } } void CGuildSearchDlg::OnOK() { //CDialog::OnOK(); } void CGuildSearchDlg::OnNMDblclkSearchedList(NMHDR *pNMHDR, LRESULT *pResult) { if(0 < m_ctrlGuildSearchList.GetSelectedCount()) { int Index = m_ctrlGuildSearchList.GetNextItem(-1, LVIS_SELECTED); if(-1 != Index) { TCHAR szValue[m_stSelGuildInfo.MAX_STRING]; m_ctrlGuildSearchList.GetItemText(Index, 0, szValue, sizeof(szValue)); m_stSelGuildInfo.m_dwGID = _ttol(szValue); m_ctrlGuildSearchList.GetItemText(Index, 2, szValue, sizeof(szValue)); _tcsncpy(m_stSelGuildInfo.m_szServerGroupName, szValue, m_stSelGuildInfo.MAX_STRING); m_ctrlGuildSearchList.GetItemText(Index, 3, szValue, sizeof(szValue)); _tcsncpy(m_stSelGuildInfo.m_szNation, szValue, m_stSelGuildInfo.MAX_STRING); m_ctrlGuildSearchList.GetItemText(Index, 4, szValue, sizeof(szValue)); _tcsncpy(m_stSelGuildInfo.m_szGuildName, szValue, m_stSelGuildInfo.MAX_STRING); m_ctrlGuildSearchList.GetItemText(Index, 5, szValue, sizeof(szValue)); m_stSelGuildInfo.m_dwFame = _ttol(szValue); m_ctrlGuildSearchList.GetItemText(Index, 6, szValue, sizeof(szValue)); m_stSelGuildInfo.m_nLevel = _ttoi(szValue); m_ctrlGuildSearchList.GetItemText(Index, 7, szValue, sizeof(szValue)); m_stSelGuildInfo.m_nMemberNum = _ttoi(szValue); m_ctrlGuildSearchList.GetItemText(Index, 8, szValue, sizeof(szValue)); m_stSelGuildInfo.m_dwGold = _ttol(szValue); CGuildMainDlg dlg(m_stSelGuildInfo); dlg.DoModal(); } } *pResult = 0; } void CGuildSearchDlg::OnLvnItemchangedGuildsearchSearchedList(NMHDR *pNMHDR, LRESULT *pResult) { LPNMLISTVIEW pNMLV = reinterpret_cast(pNMHDR); m_dwSelCount = m_ctrlGuildSearchList.GetSelectedCount(); UpdateData(false); *pResult = 0; }