// DuplicatedItemDlg.cpp : ±¸Çö ÆÄÀÏÀÔ´Ï´Ù. // #include "stdafx.h" #include "AdminToolClient.h" #include "DuplicatedItemDlg.h" #include "PacketManager.h" #include "GlobalFunctions.h" #include "WindowMgr.h" #include "ListCtrlSortClass.h" #include "CharacterDoc.h" #include // CDuplicatedItemDlg ´ëÈ­ »óÀÚÀÔ´Ï´Ù. IMPLEMENT_DYNAMIC(CDuplicatedItemDlg, CDialog) CDuplicatedItemDlg::CDuplicatedItemDlg(CWnd* pParent /*=NULL*/) : CDialog(CDuplicatedItemDlg::IDD, pParent) , m_bSortListAsc(false) { INSERT_WINDOW(IDD_DUPLICATEDITEMDLG, static_cast(this)); } CDuplicatedItemDlg::~CDuplicatedItemDlg() { ERASE_WINDOW(IDD_DUPLICATEDITEMDLG); } void CDuplicatedItemDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Control(pDX, IDC_DS_DITEM_LIST, m_ctrlDItemList); DDX_Control(pDX, IDC_DS_GROUP_CB, m_ctrlServerGroupCb); DDX_Control(pDX, IDC_DS_ISCHK_CB, m_ctrlIsChkCb); } BEGIN_MESSAGE_MAP(CDuplicatedItemDlg, CDialog) ON_BN_CLICKED(IDC_DS_SEARCH_BTN, OnBnClickedDsSearchBtn) ON_BN_CLICKED(IDC_DS_DELETELIST_BTN, OnBnClickedDsDeletelistBtn) ON_BN_CLICKED(IDC_DS_CHK_BTN, OnBnClickedDsChkBtn) ON_NOTIFY(HDN_ITEMCHANGING, 0, OnHdnItemchangingDsDitemList) ON_NOTIFY(LVN_COLUMNCLICK, IDC_DS_DITEM_LIST, OnLvnColumnclickDsDitemList) ON_BN_CLICKED(IDC_DUPITEM_CLIPPING_BTN, OnBnClickedDupitemClippingBtn) END_MESSAGE_MAP() // CDuplicatedItemDlg ¸Þ½ÃÁö 󸮱âÀÔ´Ï´Ù. BOOL CDuplicatedItemDlg::OnInitDialog() { CDialog::OnInitDialog(); m_ctrlDItemList.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_FLATSB); m_ctrlDItemList.InsertColumn(0, GetLocalString("INSERT_TIME"), LVCFMT_LEFT, 120); m_ctrlDItemList.InsertColumn(1, GetLocalString("CHK_TIME"), LVCFMT_LEFT, 120); m_ctrlDItemList.InsertColumn(2, _T("UID"), LVCFMT_LEFT, 100); m_ctrlDItemList.InsertColumn(3, _T("CID"), LVCFMT_LEFT, 100); m_ctrlDItemList.InsertColumn(4, _T("CharName"), LVCFMT_LEFT, 100); m_ctrlDItemList.InsertColumn(5, _T("ItemSerial"), LVCFMT_LEFT, 135); m_ctrlDItemList.InsertColumn(6, _T("Qty"), LVCFMT_LEFT, 60); m_ctrlDItemList.InsertColumn(7, GetLocalString("CHK_RESULT"), LVCFMT_LEFT, 90); ServerGroupComboSet(m_ctrlServerGroupCb); m_ctrlIsChkCb.InsertString(0, _T("0 : DO NOT")); m_ctrlIsChkCb.InsertString(1, _T("1 : DO")); m_ctrlIsChkCb.SetCurSel(0); SetWindowText(GetLocalString("IDD_DUPLICATEDITEMDLG")); SetUIString(this->m_hWnd, IDC_DUPITEM_01, "IDC_DUPITEM_01"); SetUIString(this->m_hWnd, IDC_DUPITEM_02, "IDC_DUPITEM_02"); SetUIString(this->m_hWnd, IDC_DUPITEM_03, "IDC_DUPITEM_03"); SetUIString(this->m_hWnd, IDC_DUPITEM_04, "IDC_DUPITEM_04"); SetUIString(this->m_hWnd, IDC_DS_SEARCH_BTN, "IDC_DS_SEARCH_BTN"); SetUIString(this->m_hWnd, IDC_DS_DELETELIST_BTN, "IDC_DS_DELETELIST_BTN"); SetUIString(this->m_hWnd, IDC_DUPITEM_CLIPPING_BTN, "IDC_DUPITEM_CLIPPING_BTN"); SetUIString(this->m_hWnd, IDC_DS_CHK_BTN, "IDC_DS_CHK_BTN"); return TRUE; } void CDuplicatedItemDlg::OnBnClickedDsSearchBtn() { if(CB_ERR != m_ctrlServerGroupCb.GetCurSel()) { m_ctrlDItemList.DeleteAllItems(); CPacketMgr::GetInstance()->SendSearchDupItem( (unsigned long)m_ctrlServerGroupCb.GetCurSel(), (m_ctrlIsChkCb.GetCurSel() == 0) ? true : false); } } void CDuplicatedItemDlg::OnBnClickedDsChkBtn() { int iIndex = m_ctrlDItemList.GetNextItem(-1, LVIS_SELECTED); if (-1 != iIndex) { unsigned long dwUID = atol(m_ctrlDItemList.GetItemText(iIndex, 2)); unsigned long dwCID = atol(m_ctrlDItemList.GetItemText(iIndex, 3)); unsigned __int64 i64ItemSerial = Math::Convert::StrToHex64(m_ctrlDItemList.GetItemText(iIndex, 5)); unsigned long dwServerGroup = 100; CString strServerName; GetDlgItemText(IDC_DUPLICATEDITEM_SELGROUP_EDIT, strServerName); CCharacterDoc::GetInstance().GetServerIndex(strServerName, dwServerGroup); CPacketMgr::GetInstance()->SendChkDupItem(dwUID, dwCID, dwServerGroup, i64ItemSerial); m_ctrlDItemList.DeleteAllItems(); CPacketMgr::GetInstance()->SendSearchDupItem(dwServerGroup, true); } } void CDuplicatedItemDlg::OnBnClickedDsDeletelistBtn() { POSITION pos; while(pos = m_ctrlDItemList.GetFirstSelectedItemPosition()) { m_ctrlDItemList.DeleteItem(m_ctrlDItemList.GetNextSelectedItem(pos)); } } void CDuplicatedItemDlg::OnHdnItemchangingDsDitemList(NMHDR *pNMHDR, LRESULT *pResult) { LPNMHEADER phdr = reinterpret_cast(pNMHDR); *pResult = 0; } void CDuplicatedItemDlg::OnLvnColumnclickDsDitemList(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_ctrlDItemList, m_iSortListItem); *pResult = 0; } void CDuplicatedItemDlg::SortListWndItem(CListCtrl* lpListCtrl, const int iCol) { CListCtrlSortClass SortClass(lpListCtrl, iCol); switch(m_iSortListItem) { case SORT_TYPE::INSERT_TIME: SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRING); break; case SORT_TYPE::CHK_TIME: SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRING); break; case SORT_TYPE::UID: SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtINT); break; case SORT_TYPE::CID: SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtINT); break; case SORT_TYPE::ITEM_SERIAL: SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRING); break; case SORT_TYPE::CHARNAME: SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRING); break; case SORT_TYPE::QTY: SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtINT); break; case SORT_TYPE::CHK_RESULT: SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRINGNOCASE); break; } } void CDuplicatedItemDlg::OnBnClickedDupitemClippingBtn() { ClippingListCtrl(m_ctrlDItemList, 8, true); }