// GAdminManagementDlg.cpp : ±¸Çö ÆÄÀÏÀÔ´Ï´Ù. // #include "stdafx.h" #include "AdminToolClient.h" #include "GAdminManagementDlg.h" #include "GlobalFunctions.h" #include "WindowMgr.h" #include "PacketManager.h" #include "CharacterDoc.h" #include "GAdminInfoEditDlg.h" #include "ListCtrlSortClass.h" // CGAdminManagementDlg ´ëÈ­ »óÀÚÀÔ´Ï´Ù. IMPLEMENT_DYNAMIC(CGAdminManagementDlg, CDialog) CGAdminManagementDlg::CGAdminManagementDlg(CWnd* pParent /*=NULL*/) : CDialog(CGAdminManagementDlg::IDD, pParent) , m_strRegAdminUID(_T("")) , m_strSearchedGroup(_T("")) , m_bSortListAsc(false) { } CGAdminManagementDlg::~CGAdminManagementDlg() { } void CGAdminManagementDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Control(pDX, IDC_GADMINLIST, m_ctrlGAdminList); DDX_Control(pDX, IDC_GAM_SERVERCB1, m_ctrlGAMServerCb1); DDX_Control(pDX, IDC_GAM_SERVERCB2, m_ctrlGAMServerCb2); DDX_Text(pDX, IDC_GAM_UID_EDIT, m_strRegAdminUID); DDX_Control(pDX, IDC_GAM_LIMITIPSTART_IP, m_ctrlLimitStartIP); DDX_Control(pDX, IDC_GAM_LIMITIPEND_IP, m_ctrlLimitEndIP); DDX_Control(pDX, IDC_GAM_ADMINLV_CB, m_ctrlNewAdminLV); DDX_Text(pDX, IDC_GAM_SEARCHEDGROUP_EDIT, m_strSearchedGroup); } BEGIN_MESSAGE_MAP(CGAdminManagementDlg, CDialog) ON_WM_CTLCOLOR() ON_WM_CONTEXTMENU() ON_WM_DESTROY() ON_BN_CLICKED(IDC_GAM_ADMINREG_BTN, OnBnClickedGamAdminregBtn) ON_BN_CLICKED(IDC_GAM_ADMINSEARCH_BTN, OnBnClickedGamAdminsearchBtn) ON_COMMAND(ID_GAM_ADMINEDIT, OnGamAdminedit) ON_COMMAND(ID_GAM_ADMINDEL, OnGamAdmindel) ON_NOTIFY(LVN_COLUMNCLICK, IDC_GAM_ADMIN_LIST, OnLvnColumnclickGamAdminList) END_MESSAGE_MAP() // CGAdminManagementDlg ¸Þ½ÃÁö 󸮱âÀÔ´Ï´Ù. HBRUSH CGAdminManagementDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); return hbr; } BOOL CGAdminManagementDlg::OnInitDialog() { CDialog::OnInitDialog(); INSERT_WINDOW(IDD_GADMINMANAGEMENTDLG, static_cast(this)); m_ctrlGAdminList.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_FLATSB); m_ctrlGAdminList.InsertColumn(0, _T("UID"), LVCFMT_LEFT, 110); m_ctrlGAdminList.InsertColumn(1, _T("Level"), LVCFMT_LEFT, 50); m_ctrlGAdminList.InsertColumn(2, GetLocalString("LIMIT_IP_START"), LVCFMT_LEFT, 120); m_ctrlGAdminList.InsertColumn(3, GetLocalString("LIMIT_IP_END"), LVCFMT_LEFT, 120); ServerGroupComboSet(m_ctrlGAMServerCb1); ServerGroupComboSet(m_ctrlGAMServerCb2); m_ctrlNewAdminLV.InsertString(0, _T("Supporter")); m_ctrlNewAdminLV.InsertString(1, _T("Admin LV1")); m_ctrlNewAdminLV.InsertString(2, _T("Admin LV2")); m_ctrlNewAdminLV.InsertString(3, _T("Admin LV3")); m_ctrlNewAdminLV.InsertString(4, _T("Developer")); SetWindowText(GetLocalString("IDD_GADMINMANAGEMENTDLG")); SetUIString(this->m_hWnd, IDC_GADMINMANEGE_01, "IDC_GADMINMANEGE_01"); SetUIString(this->m_hWnd, IDC_GADMINMANEGE_02, "IDC_GADMINMANEGE_02"); SetUIString(this->m_hWnd, IDC_GADMINMANEGE_03, "IDC_GADMINMANEGE_03"); SetUIString(this->m_hWnd, IDC_GADMINMANEGE_04, "IDC_GADMINMANEGE_04"); SetUIString(this->m_hWnd, IDC_GADMINMANEGE_05, "IDC_GADMINMANEGE_05"); SetUIString(this->m_hWnd, IDC_GADMINMANEGE_06, "IDC_GADMINMANEGE_06"); SetUIString(this->m_hWnd, IDC_GADMINMANEGE_07, "IDC_GADMINMANEGE_07"); SetUIString(this->m_hWnd, IDC_GAM_ADMINSEARCH_BTN, "IDC_GAM_ADMINSEARCH_BTN"); SetUIString(this->m_hWnd, IDC_GAM_ADMINREG_BTN, "IDC_GAM_ADMINREG_BTN"); return TRUE; } void CGAdminManagementDlg::OnContextMenu(CWnd* pWnd, CPoint point) { if(pWnd->GetSafeHwnd() == m_ctrlGAdminList.GetSafeHwnd() && m_ctrlGAdminList.GetSelectedCount() == 1) { CMenu muTemp, *pContextMenu; muTemp.LoadMenu(IDR_CONTEXTMENU); pContextMenu = muTemp.GetSubMenu(9); pContextMenu->ModifyMenu(0, MF_STRING | MF_BYPOSITION, ID_GAM_ADMINEDIT, GetLocalString("MENU_028")); pContextMenu->ModifyMenu(1, MF_STRING | MF_BYPOSITION, ID_GAM_ADMINDEL, GetLocalString("MENU_029")); pContextMenu->TrackPopupMenu(TPM_LEFTALIGN, point.x, point.y, this); } } void CGAdminManagementDlg::OnDestroy() { CDialog::OnDestroy(); ERASE_WINDOW(IDD_GADMINMANAGEMENTDLG); } void CGAdminManagementDlg::OnBnClickedGamAdminregBtn() { UpdateData(true); if((CB_ERR != m_ctrlGAMServerCb1.GetCurSel()) && (CB_ERR != m_ctrlNewAdminLV.GetCurSel())) { if(!m_strRegAdminUID.IsEmpty()) { unsigned long dwServerGroup; CString strGroupName; m_ctrlGAMServerCb1.GetLBText(m_ctrlGAMServerCb1.GetCurSel(), strGroupName); CCharacterDoc::GetInstance().GetServerIndex(strGroupName, dwServerGroup); TCHAR szStartIP[PktAdminMgr::MAX_IP], szEndIP[PktAdminMgr::MAX_IP]; if(m_ctrlLimitStartIP.IsBlank()) _sntprintf(szStartIP, PktAdminMgr::MAX_IP, _T("NULL")); if(m_ctrlLimitEndIP.IsBlank()) _sntprintf(szEndIP, PktAdminMgr::MAX_IP, _T("NULL")); if(!(m_ctrlLimitStartIP.IsBlank() && m_ctrlLimitEndIP.IsBlank())) { m_ctrlLimitStartIP.GetWindowText(szStartIP, PktAdminMgr::MAX_IP); m_ctrlLimitEndIP.GetWindowText(szEndIP, PktAdminMgr::MAX_IP); } #ifdef _UNICODE CPacketMgr::GetInstance()->SendGameAdmin(PktAdminMgr::PktGameAdmin::REG, dwServerGroup, _ttol(m_strRegAdminUID), m_ctrlNewAdminLV.GetCurSel() + 1, szStartIP, szEndIP); #endif CPacketMgr::GetInstance()->SendGameAdmin(PktAdminMgr::PktGameAdmin::REG, dwServerGroup, _ttol(m_strRegAdminUID), m_ctrlNewAdminLV.GetCurSel() + 1, szStartIP, szEndIP); } } } void CGAdminManagementDlg::OnBnClickedGamAdminsearchBtn() { if(CB_ERR != m_ctrlGAMServerCb2.GetCurSel()) { m_ctrlGAdminList.DeleteAllItems(); unsigned long dwServerGroup; CString strGroupName; m_ctrlGAMServerCb2.GetLBText(m_ctrlGAMServerCb2.GetCurSel(), strGroupName); CCharacterDoc::GetInstance().GetServerIndex(strGroupName, dwServerGroup); CPacketMgr::GetInstance()->SendGameAdmin(PktAdminMgr::PktGameAdmin::SEARCH, dwServerGroup); m_strSearchedGroup.Format(_T("%s"), strGroupName); UpdateData(false); } } void CGAdminManagementDlg::OnGamAdminedit() { if(m_ctrlGAdminList.GetSelectedCount() == 1) { int Index = m_ctrlGAdminList.GetNextItem(-1, LVIS_SELECTED); CGAdminInfoEditDlg dlg(m_strSearchedGroup, m_ctrlGAdminList.GetItemText(Index, 0)); dlg.DoModal(); } } void CGAdminManagementDlg::OnGamAdmindel() { if(m_ctrlGAdminList.GetSelectedCount() == 1) { UpdateData(true); unsigned long dwServerGroup; CCharacterDoc::GetInstance().GetServerIndex(m_strSearchedGroup, dwServerGroup); int Index = m_ctrlGAdminList.GetNextItem(-1, LVIS_SELECTED); unsigned long dwUID = _ttol(m_ctrlGAdminList.GetItemText(Index, 0)); CPacketMgr::GetInstance()->SendGameAdmin(PktAdminMgr::PktGameAdmin::DEL, dwServerGroup, dwUID); } } void CGAdminManagementDlg::ReFreshGameAdminList() { OnBnClickedGamAdminsearchBtn(); } BOOL CGAdminManagementDlg::PreTranslateMessage(MSG* pMsg) { if((WM_KEYDOWN == pMsg->message) && (VK_RETURN == pMsg->wParam)) { if(pMsg->hwnd == GetDlgItem(IDC_GAM_UID_EDIT)->m_hWnd || pMsg->hwnd == GetDlgItem(IDC_GAM_LIMITIPEND_IP)->m_hWnd) { OnBnClickedGamAdminregBtn(); } } return CDialog::PreTranslateMessage(pMsg); } void CGAdminManagementDlg::OnOK() { //CDialog::OnOK(); } void CGAdminManagementDlg::SortListWndItem(CListCtrl* pListCtrl, const int iCol) { CListCtrlSortClass SortClass(pListCtrl,iCol); switch(m_iSortListItem) { case SORT_TYPE::UID: SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtINT); break; case SORT_TYPE::LV: SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtINT); break; case SORT_TYPE::IP_S: SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRING); break; case SORT_TYPE::IP_E: SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRING); break; } } void CGAdminManagementDlg::OnLvnColumnclickGamAdminList(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_ctrlGAdminList, m_iSortListItem); *pResult = 0; }