// GuildRestoreDlg.cpp : ±¸Çö ÆÄÀÏÀÔ´Ï´Ù. // #include "stdafx.h" #include "AdminToolClient.h" #include "GuildRestoreDlg.h" #include "GlobalFunctions.h" #include "CharacterDoc.h" #include "PacketManager.h" #include "WindowMgr.h" #include "AdminClientConstants.h" #include "ListCtrlSortClass.h" // CGuildRestoreDlg ´ëÈ­ »óÀÚÀÔ´Ï´Ù. IMPLEMENT_DYNAMIC(CGuildRestoreDlg, CDialog) CGuildRestoreDlg::CGuildRestoreDlg(CWnd* pParent /*=NULL*/) : CDialog(CGuildRestoreDlg::IDD, pParent) , m_bAllGroupChk(TRUE) , m_dwSearchCount(0) { INSERT_WINDOW(IDD_GUILDRESTOREDLG, static_cast(this)); } CGuildRestoreDlg::~CGuildRestoreDlg() { ERASE_WINDOW(IDD_GUILDRESTOREDLG); } void CGuildRestoreDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Control(pDX, IDC_GUILDRESTORE_DELGUILD_LIST, m_ctrlRestoreGuildList); DDX_Control(pDX, IDC_GUILDRESTORE_SERVERGROUP_CB, m_ctrlServerGroupCb); DDX_Check(pDX, IDC_GUILDRESTORE_ALLSERVERGROUP_CHK, m_bAllGroupChk); DDX_Text(pDX, IDC_GUILDRESTORE_SEARCHCOUNT, m_dwSearchCount); } BEGIN_MESSAGE_MAP(CGuildRestoreDlg, CDialog) ON_BN_CLICKED(IDC_GUILDRESTORE_ALLSERVERGROUP_CHK, OnBnClickedAllServergroupChk) ON_BN_CLICKED(IDC_GUILDRESTORE_SEARCH_BTN, OnBnClickedSearchBtn) ON_NOTIFY(LVN_COLUMNCLICK, IDC_GUILDRESTORE_DELGUILD_LIST, OnLvnColumnclickGuildrestoreDelguildList) END_MESSAGE_MAP() // CGuildRestoreDlg ¸Þ½ÃÁö 󸮱âÀÔ´Ï´Ù. BOOL CGuildRestoreDlg::OnInitDialog() { CDialog::OnInitDialog(); ServerGroupComboSet(m_ctrlServerGroupCb); m_ctrlRestoreGuildList.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_FLATSB); m_ctrlRestoreGuildList.SetBkColor(RGB(255, 236, 236)); m_ctrlRestoreGuildList.SetTextBkColor(RGB(255, 236, 236)); m_ctrlRestoreGuildList.InsertColumn(0, GetLocalString("SERVER_GROUP"), LVCFMT_LEFT, 80); m_ctrlRestoreGuildList.InsertColumn(1, _T("GID"), LVCFMT_LEFT, 65); m_ctrlRestoreGuildList.InsertColumn(2, GetLocalString("GUILD_NAME"), LVCFMT_LEFT, 90); m_ctrlRestoreGuildList.InsertColumn(3, _T("Gold"), LVCFMT_LEFT, 80); m_ctrlRestoreGuildList.InsertColumn(4, GetLocalString("DISBAND_GUILD_TIME"), LVCFMT_LEFT, 130); SetWindowText(GetLocalString("IDD_GUILDRESTOREDLG")); SetUIString(this->m_hWnd, IDC_GUILDRESTORE_ALLSERVERGROUP_CHK, "IDC_GUILDRESTORE_ALLSERVERGROUP_CHK"); SetUIString(this->m_hWnd, IDC_GUILDRESTORE_SEARCH_BTN, "IDC_GUILDRESTORE_SEARCH_BTN"); SetUIString(this->m_hWnd, IDC_GUILDRESTORE_01, "IDC_GUILDRESTORE_01"); return TRUE; } void CGuildRestoreDlg::OnBnClickedAllServergroupChk() { UpdateData(true); m_ctrlServerGroupCb.EnableWindow(!m_bAllGroupChk); } void CGuildRestoreDlg::OnBnClickedSearchBtn() { m_ctrlRestoreGuildList.DeleteAllItems(); CString strGroupName; unsigned long dwServerGroup; if(m_bAllGroupChk) { for(unsigned long dwGroupIndex = 0; dwGroupIndex < CON::MAX_GROUP_NUM; dwGroupIndex++) CPacketMgr::GetInstance()->SendGuildRestoreDataList(m_bAllGroupChk, dwGroupIndex); } else { m_ctrlServerGroupCb.GetLBText(m_ctrlServerGroupCb.GetCurSel(), strGroupName); CCharacterDoc::GetInstance().GetServerIndex(strGroupName, dwServerGroup); CPacketMgr::GetInstance()->SendGuildRestoreDataList(m_bAllGroupChk, dwServerGroup); } } void CGuildRestoreDlg::OnLvnColumnclickGuildrestoreDelguildList(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_ctrlRestoreGuildList, m_iSortListItem); *pResult = 0; } void CGuildRestoreDlg::SortListWndItem(CListCtrl* pListCtrl, const int iCol) { CListCtrlSortClass SortClass(pListCtrl,iCol); switch(m_iSortListItem) { case SORT_TYPE::SERVER_GROUP: SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRING); break; case SORT_TYPE::GID: SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtINT); break; case SORT_TYPE::NAME: SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRING); break; case SORT_TYPE::GOLD: SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtINT); break; case SORT_TYPE::DELETE_TIME: SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRING); break; } }