// CharRestoreDlg.cpp : ±¸Çö ÆÄÀÏÀÔ´Ï´Ù. // #include "stdafx.h" #include "AdminToolClient.h" #include "CharRestoreDlg.h" #include "GlobalFunctions.h" #include "WindowMgr.h" #include "CharacterDoc.h" #include "PacketManager.h" #include "ChangeDeleteTimeDlg.h" // CCharRestoreDlg ´ëÈ­ »óÀÚÀÔ´Ï´Ù. IMPLEMENT_DYNAMIC(CCharRestoreDlg, CDialog) CCharRestoreDlg::CCharRestoreDlg(CWnd* pParent /*=NULL*/) : CDialog(CCharRestoreDlg::IDD, pParent) { INSERT_WINDOW(IDD_CHARRESTOREDLG, this); } CCharRestoreDlg::~CCharRestoreDlg() { ERASE_WINDOW(IDD_CHARRESTOREDLG); } void CCharRestoreDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Control(pDX, IDC_CR_SEARCHCONDITION, m_ctrlSearchConditionCb); DDX_Control(pDX, IDC_CR_SEARCHGROUP, m_ctrlSearchServerCb); DDX_Control(pDX, IDC_CR_DELHISTORYLIST, m_ctrlDelHistoryList); } BEGIN_MESSAGE_MAP(CCharRestoreDlg, CDialog) ON_WM_CTLCOLOR() ON_BN_CLICKED(IDC_CHARRESTORE_SEARCH, OnBnClickedCharRestoreSearch) ON_WM_CONTEXTMENU() ON_COMMAND(ID_RESTORE_TIME, OnRestoreTime) ON_COMMAND(ID_RESTORE_CHAR, OnRestoreChar) END_MESSAGE_MAP() // CCharRestoreDlg ¸Þ½ÃÁö 󸮱âÀÔ´Ï´Ù. BOOL CCharRestoreDlg::OnInitDialog() { CDialog::OnInitDialog(); m_ctrlSearchConditionCb.AddString(_T("UID")); m_ctrlSearchConditionCb.AddString(_T("CID")); ServerGroupComboSet(m_ctrlSearchServerCb); m_ctrlDelHistoryList.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_FLATSB); m_ctrlDelHistoryList.InsertColumn(0, _T("UID"), LVCFMT_LEFT, 80); m_ctrlDelHistoryList.InsertColumn(1, _T("CID"), LVCFMT_LEFT, 80); m_ctrlDelHistoryList.InsertColumn(2, GetLocalString("ADDED_STRING_001"), LVCFMT_LEFT, 50); m_ctrlDelHistoryList.InsertColumn(3, GetLocalString("ADDED_STRING_002"), LVCFMT_LEFT, 50); m_ctrlDelHistoryList.InsertColumn(4, GetLocalString("CHAR_NAME"), LVCFMT_LEFT, 100); m_ctrlDelHistoryList.InsertColumn(5, _T("Level"), LVCFMT_LEFT, 40); m_ctrlDelHistoryList.InsertColumn(6, _T("Gold"), LVCFMT_LEFT, 80); m_ctrlDelHistoryList.InsertColumn(7, GetLocalString("CHAR_DEL_TIME"), LVCFMT_LEFT, 170); m_ctrlDelHistoryList.InsertColumn(8, GetLocalString("CHAR_DEL_DB_TIME"), LVCFMT_LEFT, 170); m_ctrlSearchConditionCb.SetCurSel(1); // UID·Î Ãʱ⼱Åà SetWindowText(GetLocalString("IDD_CHARRESTOREDLG")); SetUIString(this->m_hWnd, IDC_CHARRESTORE_01,"IDC_CHARRESTORE_01"); SetUIString(this->m_hWnd, IDC_CHARRESTORE_02,"IDC_CHARRESTORE_02"); SetUIString(this->m_hWnd, IDC_CHARRESTORE_03,"IDC_CHARRESTORE_03"); SetUIString(this->m_hWnd, IDC_CHARRESTORE_04,"IDC_CHARRESTORE_04"); SetUIString(this->m_hWnd, IDC_CHARRESTORE_05,"IDC_CHARRESTORE_05"); SetUIString(this->m_hWnd, IDC_CHARRESTORE_SEARCH,"IDC_CHARRESTORE_SEARCH"); return TRUE; } void CCharRestoreDlg::OnSearchSend() { const unsigned char UID = 1; const unsigned char CID = 2; int SearchType = m_ctrlSearchConditionCb.GetCurSel(); int ServerGroup = m_ctrlSearchServerCb.GetCurSel(); unsigned long dwServerGroup; unsigned char cSearchType = cSearchType = CID; if((-1 != SearchType) && (-1 != ServerGroup)) { CString strSrvName; m_ctrlSearchServerCb.GetLBText(ServerGroup, strSrvName); if(0 != SearchType) cSearchType = UID; if(CCharacterDoc::GetInstance().GetServerIndex(strSrvName, dwServerGroup)) { CString strValue; unsigned long dwValue; this->GetDlgItemText(IDC_CHARRESTORE_EDIT, strValue); if(0 < strValue.GetLength()) { dwValue = _ttol(strValue); if(CPacketMgr::GetInstance()->SendDelCharHistory(SearchType, dwServerGroup, dwValue)) { m_ctrlDelHistoryList.DeleteAllItems(); } } } } } HBRUSH CCharRestoreDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); return hbr; } void CCharRestoreDlg::OnBnClickedCharRestoreSearch() { OnSearchSend(); } void CCharRestoreDlg::OnContextMenu(CWnd* pWnd, CPoint point) { if((pWnd->GetSafeHwnd() == m_ctrlDelHistoryList.GetSafeHwnd()) && (1 == m_ctrlDelHistoryList.GetSelectedCount())) { CMenu muTemp, *pContextMenu; muTemp.LoadMenu(IDR_CONTEXTMENU); pContextMenu = muTemp.GetSubMenu(12); pContextMenu->ModifyMenu(0, MF_STRING | MF_BYPOSITION, ID_RESTORE_CHAR, GetLocalString("MENU_034")); pContextMenu->ModifyMenu(2, MF_STRING | MF_BYPOSITION, ID_RESTORE_TIME, GetLocalString("MENU_035")); pContextMenu->TrackPopupMenu(TPM_LEFTALIGN, point.x, point.y, this); } } void CCharRestoreDlg::OnRestoreTime() { CChangeDeleteTimeDlg ChangeDlg; ChangeDlg.DoModal(); } void CCharRestoreDlg::OnRestoreChar() { if(0 < m_ctrlDelHistoryList.GetSelectedCount()) { CString strSrvName; unsigned long dwServerGroup; int index = m_ctrlDelHistoryList.GetNextItem(-1, LVIS_SELECTED); CString strUID = m_ctrlDelHistoryList.GetItemText(index, 0); CString strCID = m_ctrlDelHistoryList.GetItemText(index, 1); CString strNewServerGroupID = m_ctrlDelHistoryList.GetItemText(index, 2); CString strOldServerGroupID = m_ctrlDelHistoryList.GetItemText(index, 3); m_ctrlSearchServerCb.GetLBText(m_ctrlSearchServerCb.GetCurSel(), strSrvName); if(CCharacterDoc::GetInstance().GetServerIndex(strSrvName, dwServerGroup)) { unsigned long dwUID, dwCID, dwNewServerGroupID, dwOldServerGroupID; dwUID = _ttol(strUID); dwCID = _ttol(strCID); dwNewServerGroupID = _ttoi(strNewServerGroupID); dwOldServerGroupID = _ttoi(strOldServerGroupID); CPacketMgr::GetInstance()->SendPktCharRestore(dwUID, dwCID, (unsigned char)dwNewServerGroupID, (unsigned char)dwOldServerGroupID, dwServerGroup); } } } BOOL CCharRestoreDlg::PreTranslateMessage(MSG* pMsg) { if((WM_KEYDOWN == pMsg->message) && (VK_RETURN == pMsg->wParam)) { if(pMsg->hwnd == this->GetDlgItem(IDC_CHARRESTORE_EDIT)->m_hWnd) { OnSearchSend(); } } return CDialog::PreTranslateMessage(pMsg); } void CCharRestoreDlg::OnCancel() { CDialog::OnCancel(); } void CCharRestoreDlg::OnOK() { //CDialog::OnOK(); }