// ItemQuantityControlDlg.cpp : ±¸Çö ÆÄÀÏÀÔ´Ï´Ù. // #include "stdafx.h" #include "MainFrm.h" #include "AdminToolClient.h" #include "ItemQuantityControlDlg.h" #include "GlobalFunctions.h" #include "WindowMgr.h" #include "PacketManager.h" #include "CharacterDoc.h" #include #include #include "ItemQtyControlAddDlg.h" // CItemQuantityControlDlg ´ëÈ­ »óÀÚÀÔ´Ï´Ù. IMPLEMENT_DYNAMIC(CItemQuantityControlDlg, CDialog) CItemQuantityControlDlg::CItemQuantityControlDlg(CWnd* pParent /*=NULL*/) : CDialog(CItemQuantityControlDlg::IDD, pParent) , m_strMessage(_T("")) , m_strFrequencyStartHour(_T("")) , m_strFrequencyStartMin(_T("")) , m_strFrequencyEndHour(_T("")) , m_strFrequencyEndMin(_T("")) , m_dwItemQty(0) , m_strSelItemName(_T("")) , m_dwSelItemTypeID(0) , m_dwCurrentItemQty(0) , m_strCurrentDropItemCount(_T("")) , m_strLimitDropItemCount(_T("Undisided")) { } CItemQuantityControlDlg::~CItemQuantityControlDlg() { ERASE_WINDOW(IDD_ITEMQUANTITYCONTROLDLG); } void CItemQuantityControlDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Control(pDX, IDC_DROPCONTROL_DROPITEM_LIST, m_ctrlDropItemList); DDX_Control(pDX, IDC_DROPCONTROL_GROUP_CB, m_ctrlServerGroupCb); DDX_Text(pDX, IDC_DROPCONTROL_MESSAGE_EDIT, m_strMessage); DDX_Control(pDX, IDC_DROPCONTROL_STARTDROP_DATE, m_ctrlStartDropDate); DDX_Control(pDX, IDC_DROPCONTROL_ENDDROP_DATE, m_ctrlEndDropDate); DDX_Text(pDX, IDC_DROPCONTROL_FREQUENCY_H1_EDIT, m_strFrequencyStartHour); DDX_Text(pDX, IDC_DROPCONTROL_FREQUENCY_M1_EDIT, m_strFrequencyStartMin); DDX_Text(pDX, IDC_DROPCONTROL_FREQUENCY_H2_EDIT, m_strFrequencyEndHour); DDX_Text(pDX, IDC_DROPCONTROL_FREQUENCY_M2_EDIT, m_strFrequencyEndMin); DDX_Text(pDX, IDC_DROPCONTROL_QUANTITY_EDIT, m_dwItemQty); DDX_Text(pDX, IDC_DROPCONTROL_SELITEMNAME_EDIT, m_strSelItemName); DDX_Text(pDX, IDC_DROPCONTROL_SELITEMID_EDIT, m_dwSelItemTypeID); DDX_Text(pDX, IDC_DROPCONTROL_CURRENTQUANTITY_EDIT, m_dwCurrentItemQty); DDX_Text(pDX, IDC_DROPCONTROL_MINCOUNT_EDIT, m_strCurrentDropItemCount); DDX_Text(pDX, IDC_DROPCONTROL_MAXCOUNT_EDIT, m_strLimitDropItemCount); } BEGIN_MESSAGE_MAP(CItemQuantityControlDlg, CDialog) ON_BN_CLICKED(IDC_DROPCONTROL_ADDITEM_BTN, OnBnClickedAdditemBtn) ON_BN_CLICKED(IDC_DROPCONTROL_DELITEM_BTN, OnBnClickedDelitemBtn) ON_NOTIFY(LVN_ITEMCHANGED, IDC_DROPCONTROL_DROPITEM_LIST, OnLvnItemchangedlDropitemList) ON_BN_CLICKED(IDC_DROPCONTROL_EDIT_BTN, OnBnClickedDropcontrolEditBtn) ON_CBN_SELCHANGE(IDC_DROPCONTROL_GROUP_CB, OnCbnSelchangeDropcontrolGroupCb) END_MESSAGE_MAP() // CItemQuantityControlDlg ¸Þ½ÃÁö 󸮱âÀÔ´Ï´Ù. BOOL CItemQuantityControlDlg::OnInitDialog() { CDialog::OnInitDialog(); INSERT_WINDOW(IDD_ITEMQUANTITYCONTROLDLG, static_cast(this)); ServerGroupComboSet(m_ctrlServerGroupCb); m_ctrlDropItemList.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_FLATSB); m_ctrlDropItemList.InsertColumn(0, GetLocalString("TYPE_ID"), LVCFMT_LEFT,100); m_ctrlDropItemList.InsertColumn(1, GetLocalString("NAME"), LVCFMT_LEFT,150); SetWindowText(GetLocalString("IDD_ITEMQUANTITYCONTROLDLG")); SetUIString(this->m_hWnd, IDC_DROPCONTROL_01, "IDC_DROPCONTROL_01"); SetUIString(this->m_hWnd, IDC_DROPCONTROL_02, "IDC_DROPCONTROL_02"); SetUIString(this->m_hWnd, IDC_DROPCONTROL_03, "IDC_DROPCONTROL_03"); SetUIString(this->m_hWnd, IDC_DROPCONTROL_04, "IDC_DROPCONTROL_04"); SetUIString(this->m_hWnd, IDC_DROPCONTROL_05, "IDC_DROPCONTROL_05"); SetUIString(this->m_hWnd, IDC_DROPCONTROL_06, "IDC_DROPCONTROL_06"); SetUIString(this->m_hWnd, IDC_DROPCONTROL_07, "IDC_DROPCONTROL_07"); SetUIString(this->m_hWnd, IDC_DROPCONTROL_08, "IDC_DROPCONTROL_08"); SetUIString(this->m_hWnd, IDC_DROPCONTROL_09, "IDC_DROPCONTROL_09"); SetUIString(this->m_hWnd, IDC_DROPCONTROL_10, "IDC_DROPCONTROL_10"); SetUIString(this->m_hWnd, IDC_DROPCONTROL_11, "IDC_DROPCONTROL_11"); SetUIString(this->m_hWnd, IDC_DROPCONTROL_12, "IDC_DROPCONTROL_12"); SetUIString(this->m_hWnd, IDC_DROPCONTROL_13, "IDC_DROPCONTROL_13"); SetUIString(this->m_hWnd, IDC_DROPCONTROL_14, "IDC_DROPCONTROL_14"); SetUIString(this->m_hWnd, IDC_DROPCONTROL_15, "IDC_DROPCONTROL_15"); SetUIString(this->m_hWnd, IDC_DROPCONTROL_16, "IDC_DROPCONTROL_16"); SetUIString(this->m_hWnd, IDC_DROPCONTROL_17, "IDC_DROPCONTROL_17"); SetUIString(this->m_hWnd, IDC_DROPCONTROL_ADDITEM_BTN, "IDC_DROPCONTROL_ADDITEM_BTN"); SetUIString(this->m_hWnd, IDC_DROPCONTROL_DELITEM_BTN, "IDC_DROPCONTROL_DELITEM_BTN"); SetUIString(this->m_hWnd, IDC_DROPCONTROL_EDIT_BTN, "IDC_DROPCONTROL_EDIT_BTN"); return TRUE; } void CItemQuantityControlDlg::OnBnClickedAdditemBtn() { if(CB_ERR != m_ctrlServerGroupCb.GetCurSel()) { CItemQtyControlAddDlg dlg; dlg.DoModal(); } } void CItemQuantityControlDlg::OnBnClickedDelitemBtn() { UpdateData(true); if(1 == m_ctrlDropItemList.GetSelectedCount()) { int Index = m_ctrlDropItemList.GetNextItem(-1, LVIS_SELECTED); if(-1 != Index) { unsigned long dwServerGroup = 0; CString strGroupName; m_ctrlServerGroupCb.GetLBText(m_ctrlServerGroupCb.GetCurSel(), strGroupName); CCharacterDoc::GetInstance().GetServerIndex(strGroupName, dwServerGroup); CPacketMgr::GetInstance()->SendItemQtyControlData( PktAdminMgr::PktItemQtyControl::DEL, (unsigned char)dwServerGroup, _ttol(m_ctrlDropItemList.GetItemText(Index, 0))); } } else { m_strMessage.Format(_T("%s"), GetLocalString("MSG_0107")); UpdateData(false); } } void CItemQuantityControlDlg::OnCbnSelchangeDropcontrolGroupCb() { unsigned long dwServerGroup = 0; CString strGroupName; m_ctrlServerGroupCb.GetLBText(m_ctrlServerGroupCb.GetCurSel(), strGroupName); CCharacterDoc::GetInstance().GetServerIndex(strGroupName, dwServerGroup); CPacketMgr::GetInstance()->SendItemQtyControlData( PktAdminMgr::PktItemQtyControl::STATUS_REQUEST, (unsigned char)dwServerGroup); for(int nCnt = 0; nCnt < m_ctrlDropItemList.GetItemCount(); ++nCnt) { PktAdminMgr::PktItemQtyControl* lpItemData = reinterpret_cast (m_ctrlDropItemList.GetItemData(nCnt)); delete lpItemData; } m_ctrlDropItemList.DeleteAllItems(); } void CItemQuantityControlDlg::OnLvnItemchangedlDropitemList(NMHDR *pNMHDR, LRESULT *pResult) { LPNMLISTVIEW pNMLV = reinterpret_cast(pNMHDR); if(1 == m_ctrlDropItemList.GetSelectedCount()) { int Index = m_ctrlDropItemList.GetNextItem(-1, LVIS_SELECTED); if(-1 != Index) { PktAdminMgr::PktItemQtyControl* lpPktItemQtyControl = reinterpret_cast(m_ctrlDropItemList.GetItemData(Index)); if(NULL != lpPktItemQtyControl) { const Item::ItemInfo* ItemInfo = Item::CItemMgr::GetInstance().GetItemInfo((unsigned short)lpPktItemQtyControl->m_dwItemTypeID); if(NULL != ItemInfo) { m_strSelItemName.Format(_T("%s"), ItemInfo->m_SpriteData.m_szName); m_dwSelItemTypeID = lpPktItemQtyControl->m_dwItemTypeID; m_dwItemQty = lpPktItemQtyControl->m_dwItemQty; m_dwCurrentItemQty = lpPktItemQtyControl->m_dwCurrentItemQty; COleDateTime tStartOleDateTime(lpPktItemQtyControl->m_tStartTime); COleDateTime tEndOleDateTime(lpPktItemQtyControl->m_tEndTime); m_ctrlStartDropDate.SetTime(tStartOleDateTime); m_ctrlEndDropDate.SetTime(tEndOleDateTime); tm tOutStartTime; tm tOutEndTime; tOutStartTime = *(localtime(&lpPktItemQtyControl->m_tStartTime)); tOutEndTime = *(localtime(&lpPktItemQtyControl->m_tEndTime)); m_strFrequencyStartHour.Format(_T("%d"), tOutStartTime.tm_hour); m_strFrequencyStartMin.Format(_T("%d"), tOutStartTime.tm_min); m_strFrequencyEndHour.Format(_T("%d"), tOutEndTime.tm_hour); m_strFrequencyEndMin.Format(_T("%d"), tOutEndTime.tm_min); } } else { m_strMessage = _T("Selected row has not data"); } } } UpdateData(false); *pResult = 0; } void CItemQuantityControlDlg::OnBnClickedDropcontrolEditBtn() { UpdateData(true); if(m_strSelItemName != "" && m_dwSelItemTypeID != 0 && "" != m_strFrequencyStartHour && "" != m_strFrequencyStartMin && "" != m_strFrequencyEndHour && "" != m_strFrequencyEndMin && 0 != m_dwItemQty) { unsigned long dwServerGroup = 0; CString strGroupName; m_ctrlServerGroupCb.GetLBText(m_ctrlServerGroupCb.GetCurSel(), strGroupName); CCharacterDoc::GetInstance().GetServerIndex(strGroupName, dwServerGroup); COleDateTime GetTime1, GetTime2; m_ctrlStartDropDate.GetTime(GetTime1); m_ctrlEndDropDate.GetTime(GetTime2); tm tInStartTime; memset(&tInStartTime, 0, sizeof(tm)); tInStartTime.tm_year = GetTime1.GetYear() - 1900; tInStartTime.tm_mon = GetTime1.GetMonth() - 1; tInStartTime.tm_mday = GetTime1.GetDay(); tInStartTime.tm_hour = _ttoi(m_strFrequencyStartHour); tInStartTime.tm_min = _ttoi(m_strFrequencyStartMin); tm tInEndTime; memset(&tInEndTime, 0, sizeof(tm)); tInEndTime.tm_year = GetTime2.GetYear() - 1900; tInEndTime.tm_mon = GetTime2.GetMonth() - 1; tInEndTime.tm_mday = GetTime2.GetDay(); tInEndTime.tm_hour = _ttoi(m_strFrequencyEndHour); tInEndTime.tm_min = _ttoi(m_strFrequencyEndMin); time_t tStartTime = mktime(&tInStartTime); time_t tEndTime = mktime(&tInEndTime); CPacketMgr::GetInstance()->SendItemQtyControlData( PktAdminMgr::PktItemQtyControl::ADD, (unsigned char)dwServerGroup, m_dwSelItemTypeID, tStartTime, tEndTime, m_dwItemQty); } } void CItemQuantityControlDlg::PostNcDestroy() { ((CMainFrame*)AfxGetMainWnd())->m_lpItemQtyControlDlg = NULL; delete this; CDialog::PostNcDestroy(); } void CItemQuantityControlDlg::OnCancel() { DestroyWindow(); //CDialog::OnCancel(); }