// UserBillingLogDlg.cpp : ±¸Çö ÆÄÀÏÀÔ´Ï´Ù. // #include "stdafx.h" #include "AdminToolClient.h" #include "UserBillingLogDlg.h" #include "PacketManager.h" #include "WindowMgr.h" #include "ListCtrlSortClass.h" #include "GlobalFunctions.h" // CUserBillingLogDlg ´ëÈ­ »óÀÚÀÔ´Ï´Ù. IMPLEMENT_DYNAMIC(CUserBillingLogDlg, CDialog) CUserBillingLogDlg::CUserBillingLogDlg(CWnd* pParent /*=NULL*/) : CDialog(CUserBillingLogDlg::IDD, pParent) , m_strSearchValue(_T("")) , m_bSortListAsc(false) , m_dwSearchCount(0) , m_bIsPushCtrl(false) { } CUserBillingLogDlg::~CUserBillingLogDlg() { ERASE_WINDOW(IDD_USERBILLINGLOGDLG); } void CUserBillingLogDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Control(pDX, IDC_BILLINGLOG_STARTTIME_TP, m_ctrlStartTime); DDX_Control(pDX, IDC_BILLINGLOG_ENDTIME_TP, m_ctrlEndTime); DDX_Control(pDX, IDC_BILLINGLOG_SEARCHCONDITION_CB, m_ctrlSearchConditionCb); DDX_Text(pDX, IDC_BILLINGLOG_SEARCHVALUE_EDIT, m_strSearchValue); DDX_Control(pDX, IDC_BILLINGLOG_USELOG_LIST, m_ctrlUserBillingLogList); DDX_Text(pDX, IDC_BILLINGLOG_SEARCHNUM_EDIT, m_dwSearchCount); } BEGIN_MESSAGE_MAP(CUserBillingLogDlg, CDialog) ON_BN_CLICKED(IDC_BILLINGLOG_SEARCH_BTN, OnBnClickedSearchBtn) ON_NOTIFY(LVN_ITEMCHANGED, IDC_BILLINGLOG_USELOG_LIST, OnLvnItemchangedBillinglogUselogList) ON_NOTIFY(LVN_COLUMNCLICK, IDC_BILLINGLOG_USELOG_LIST, OnLvnColumnclickBillinglogUselogList) ON_BN_CLICKED(IDC_BILLLOG_TO_CLIP_BTN, OnBnClickedBilllogToClipBtn) END_MESSAGE_MAP() // CUserBillingLogDlg ¸Þ½ÃÁö 󸮱âÀÔ´Ï´Ù. BOOL CUserBillingLogDlg::OnInitDialog() { CDialog::OnInitDialog(); INSERT_WINDOW(IDD_USERBILLINGLOGDLG, static_cast(this)); m_ctrlSearchConditionCb.InsertString(0, _T("ACCOUNT")); m_ctrlSearchConditionCb.InsertString(1, _T("UID")); m_ctrlSearchConditionCb.SetCurSel(0); m_ctrlUserBillingLogList.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_FLATSB); m_ctrlUserBillingLogList.InsertColumn(0, GetLocalString("ACCOUNT"), LVCFMT_LEFT, 100); m_ctrlUserBillingLogList.InsertColumn(1, _T("UID"), LVCFMT_LEFT, 90); m_ctrlUserBillingLogList.InsertColumn(2, _T("IP"), LVCFMT_LEFT, 120); m_ctrlUserBillingLogList.InsertColumn(3, GetLocalString("SERVER_GROUP"), LVCFMT_LEFT, 90); m_ctrlUserBillingLogList.InsertColumn(4, GetLocalString("LOGIN_TIME"), LVCFMT_LEFT, 140); m_ctrlUserBillingLogList.InsertColumn(5, GetLocalString("LOGOUT_TIME"), LVCFMT_LEFT, 140); // °Ë»ö ½ÃÀ۽ð£À» ÇÑ´Þ ÀüÀ¸·Î ¼ÂÆÃ SYSTEMTIME tSystemTime; GetLocalTime(&tSystemTime); --tSystemTime.wMonth; m_ctrlStartTime.SetTime(&tSystemTime); SetWindowText(GetLocalString("IDD_USERBILLINGLOGDLG")); SetUIString(this->m_hWnd, IDC_USERBILLING_01, "IDC_USERBILLING_01"); SetUIString(this->m_hWnd, IDC_USERBILLING_02, "IDC_USERBILLING_02"); SetUIString(this->m_hWnd, IDC_USERBILLING_03, "IDC_USERBILLING_03"); SetUIString(this->m_hWnd, IDC_USERBILLING_04, "IDC_USERBILLING_04"); SetUIString(this->m_hWnd, IDC_BILLINGLOG_SEARCH_BTN, "IDC_BILLINGLOG_SEARCH_BTN"); SetUIString(this->m_hWnd, IDC_BILLLOG_TO_CLIP_BTN, "IDC_BILLLOG_TO_CLIP_BTN"); return TRUE; } void CUserBillingLogDlg::OnBnClickedSearchBtn() { UpdateData(true); if(0 != m_strSearchValue.Compare(_T(""))) { m_ctrlUserBillingLogList.DeleteAllItems(); COleDateTime tStartTime; COleDateTime tEndTime; m_ctrlStartTime.GetTime(tStartTime); m_ctrlEndTime.GetTime(tEndTime); switch(m_ctrlSearchConditionCb.GetCurSel()) { case 0: CPacketMgr::GetInstance()->SendUserBillingLogRequest( PktAdminMgr::PktUserBillingLog::ACCOUNT, m_strSearchValue, tStartTime, tEndTime); break; case 1: CPacketMgr::GetInstance()->SendUserBillingLogRequest( PktAdminMgr::PktUserBillingLog::UID, m_strSearchValue, tStartTime, tEndTime); break; default: break; } } } BOOL CUserBillingLogDlg::PreTranslateMessage(MSG* pMsg) { // CtrlŰ ´©¸§ »óÅ üũ if ((WM_KEYDOWN == pMsg->message) && (VK_CONTROL == pMsg->wParam)) m_bIsPushCtrl = true; else if((WM_KEYUP == pMsg->message) && (VK_CONTROL == pMsg->wParam)) m_bIsPushCtrl = false; if((WM_KEYDOWN == pMsg->message) && (VK_RETURN == pMsg->wParam)) { if(pMsg->hwnd == GetDlgItem(IDC_BILLINGLOG_SEARCHVALUE_EDIT)->m_hWnd) OnBnClickedSearchBtn(); } if(m_bIsPushCtrl) { if(pMsg->hwnd == GetDlgItem(IDC_BILLINGLOG_USELOG_LIST)->m_hWnd) { if(WM_KEYDOWN == pMsg->message) { if('C' == pMsg->wParam) { ClippingListCtrl(m_ctrlUserBillingLogList, 6); } else if('A' == pMsg->wParam) { for(int nIndex = 0; nIndex < m_ctrlUserBillingLogList.GetItemCount(); ++nIndex) { m_ctrlUserBillingLogList.SetItemState(nIndex, LVIS_SELECTED, LVIS_SELECTED); } } } } } return CDialog::PreTranslateMessage(pMsg); } void CUserBillingLogDlg::OnOK() { //CDialog::OnOK(); } void CUserBillingLogDlg::SortListWndItem(CListCtrl* pListCtrl, const int iCol) { CListCtrlSortClass SortClass(pListCtrl,iCol); switch(m_iSortListItem) { case SORT_TYPE::ACCOUNT: SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRING); break; case SORT_TYPE::UID: SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtINT); break; case SORT_TYPE::IP: SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRING); break; case SORT_TYPE::SERVER_GROUP: SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRINGNOCASE); break; case SORT_TYPE::LOGIN_TIME: SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRING); break; case SORT_TYPE::LOGOUT_TIME: SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRING); break; default: break; } } void CUserBillingLogDlg::OnLvnColumnclickBillinglogUselogList(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_ctrlUserBillingLogList, m_iSortListItem); *pResult = 0; } void CUserBillingLogDlg::OnLvnItemchangedBillinglogUselogList(NMHDR *pNMHDR, LRESULT *pResult) { LPNMLISTVIEW pNMLV = reinterpret_cast(pNMHDR); *pResult = 0; } void CUserBillingLogDlg::OnBnClickedBilllogToClipBtn() { ClippingListCtrl(m_ctrlUserBillingLogList, 6, true); }