// CharSocietyPage.cpp : ±¸Çö ÆÄÀÏÀÔ´Ï´Ù. // #include "stdafx.h" #include "AdminToolClient.h" #include "CharSocietyPage.h" #include "PacketManager.h" #include "MainFrm.h" #include "GlobalFunctions.h" #include #include // CCharSocietyPage ´ëÈ­ »óÀÚÀÔ´Ï´Ù. IMPLEMENT_DYNAMIC(CCharSocietyPage, CPropertyPage) CCharSocietyPage::CCharSocietyPage() : CPropertyPage(CCharSocietyPage::IDD) , m_lpModifyCharacter(NULL) , m_dwDocKey(0) , m_dwPartyID(0) , m_dwGID(0) { } CCharSocietyPage::~CCharSocietyPage() { } void CCharSocietyPage::DoDataExchange(CDataExchange* pDX) { CPropertyPage::DoDataExchange(pDX); DDX_Control(pDX, IDC_CHARPARTYLIST, m_ctrlCharPartyList); DDX_Control(pDX, IDC_CHARFRIENDLIST, m_ctrlCharFriendList); DDX_Control(pDX, IDC_CHARBANLIST, m_ctrlCharBanList); DDX_Text(pDX, IDC_PARTY_ID, m_dwPartyID); DDX_Text(pDX, IDC_CHARACTERPAGE_GID, m_dwGID); } BEGIN_MESSAGE_MAP(CCharSocietyPage, CPropertyPage) ON_WM_CONTEXTMENU() ON_COMMAND(ID_NEWDOC_CHARSEARCH, OnNewdocCharsearch) ON_BN_CLICKED(IDC_PARTYPAGE_PARTYCLIP_BTN, OnBnClickedPartypagePartyclipBtn) ON_BN_CLICKED(IDC_PARTYPAGE_BANCLIP_BTN, OnBnClickedPartypageBanclipBtn) ON_BN_CLICKED(IDC_PARTYPAGE_FRICLIP_BTN, OnBnClickedPartypageFriclipBtn) END_MESSAGE_MAP() // CCharSocietyPage ¸Þ½ÃÁö 󸮱âÀÔ´Ï´Ù. BOOL CCharSocietyPage::OnInitDialog() { CPropertyPage::OnInitDialog(); m_ctrlCharPartyList.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_FLATSB); m_ctrlCharFriendList.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_FLATSB); m_ctrlCharBanList.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_FLATSB); m_ctrlCharPartyList.InsertColumn(0, _T("CID"), LVCFMT_LEFT, 95); m_ctrlCharPartyList.InsertColumn(1, GetLocalString("CHAR_NAME"), LVCFMT_LEFT, 130); m_ctrlCharFriendList.InsertColumn(0, _T("CID"), LVCFMT_LEFT, 95); m_ctrlCharFriendList.InsertColumn(1, GetLocalString("CHAR_NAME"), LVCFMT_LEFT, 130); m_ctrlCharBanList.InsertColumn(0, _T("CID"), LVCFMT_LEFT, 95); m_ctrlCharBanList.InsertColumn(1, GetLocalString("CHAR_NAME"), LVCFMT_LEFT, 130); SetUIString(this->m_hWnd, IDC_SOCIETYPAGE_01, "IDC_SOCIETYPAGE_01"); SetUIString(this->m_hWnd, IDC_SOCIETYPAGE_02, "IDC_SOCIETYPAGE_02"); SetUIString(this->m_hWnd, IDC_SOCIETYPAGE_03, "IDC_SOCIETYPAGE_03"); SetUIString(this->m_hWnd, IDC_SOCIETYPAGE_04, "IDC_SOCIETYPAGE_04"); SetUIString(this->m_hWnd, IDC_SOCIETYPAGE_05, "IDC_SOCIETYPAGE_05"); SetUIString(this->m_hWnd, IDC_SOCIETYPAGE_06, "IDC_SOCIETYPAGE_06"); SetUIString(this->m_hWnd, IDC_PARTYPAGE_PARTYCLIP_BTN, "IDC_PARTYPAGE_PARTYCLIP_BTN"); SetUIString(this->m_hWnd, IDC_PARTYPAGE_BANCLIP_BTN, "IDC_PARTYPAGE_BANCLIP_BTN"); SetUIString(this->m_hWnd, IDC_PARTYPAGE_FRICLIP_BTN, "IDC_PARTYPAGE_FRICLIP_BTN"); return TRUE; } bool CCharSocietyPage::SetSocietyPageData( unsigned int dwDocKey, CModifyCharacter* lpModifyCharacter ) { if(dwDocKey != 0) { m_lpModifyCharacter = lpModifyCharacter; m_dwDocKey = dwDocKey; } return true; } void CCharSocietyPage::OnContextMenu(CWnd* pWnd, CPoint point) { bool bIsSel = false; if((pWnd->GetSafeHwnd() == m_ctrlCharPartyList.GetSafeHwnd()) && (m_ctrlCharPartyList.GetSelectedCount() == 1)) { bIsSel = true; m_lpSelList = &m_ctrlCharPartyList; } else if((pWnd->GetSafeHwnd() == m_ctrlCharBanList.GetSafeHwnd()) && (m_ctrlCharBanList.GetSelectedCount() == 1)) { bIsSel = true; m_lpSelList = &m_ctrlCharBanList; } else if((pWnd->GetSafeHwnd() == m_ctrlCharFriendList.GetSafeHwnd()) && (m_ctrlCharFriendList.GetSelectedCount() == 1)) { bIsSel = true; m_lpSelList = &m_ctrlCharFriendList; } if(false == bIsSel) { return; } CMenu muTemp, *pContextMenu; muTemp.LoadMenu(IDR_CONTEXTMENU); pContextMenu = muTemp.GetSubMenu(4); pContextMenu->ModifyMenu(0, MF_STRING | MF_BYPOSITION, ID_NEWDOC_CHARSEARCH, GetLocalString("MENU_023")); pContextMenu->TrackPopupMenu(TPM_LEFTALIGN, point.x, point.y, this); } // ¸ñ·Ï±¸¼ºÀ» À§ÇÑ Å¬·¡½º -------------------------------------------------------------- class CMakeItList { public: CMakeItList(CListCtrl& ctrlFriendList) : m_FriendList(ctrlFriendList) { ; } bool operator() (CFriendList::Rebind& rebind) { CString strCID; strCID.Format(_T("%d"), rebind.GetCID()); m_FriendList.InsertItem(0, strCID); m_FriendList.SetItemText(0, 1, rebind.GetCharacterName()); return true; } bool operator() (CBanList::Rebind& rebind) { CString strCID; strCID.Format(_T("%d"), rebind.GetCID()); m_FriendList.InsertItem(0, strCID); m_FriendList.SetItemText(0, 1, rebind.GetCharacterName()); return true; } private: CListCtrl& m_FriendList; }; //--------------------------------------------------------------------------------------------- void CCharSocietyPage::MakeItFriendList() { if(NULL != m_lpModifyCharacter) { m_lpModifyCharacter->GetFriendList().Process(CMakeItList(m_ctrlCharFriendList)); } } void CCharSocietyPage::MakeItBanList() { if(NULL != m_lpModifyCharacter) { m_lpModifyCharacter->GetBanList().Process(CMakeItList(m_ctrlCharBanList)); } } void CCharSocietyPage::SetSocietyPage(CModifyCharacter* lpModifyCharacter) { m_ctrlCharFriendList.DeleteAllItems(); m_ctrlCharBanList.DeleteAllItems(); if(NULL != lpModifyCharacter) { m_dwPartyID = lpModifyCharacter->GetPID(); m_dwGID = lpModifyCharacter->GetGID(); MakeItFriendList(); MakeItBanList(); UpdateData(false); } } void CCharSocietyPage::OnNewdocCharsearch() { int nIndex = m_lpSelList->GetNextItem(-1, LVIS_SELECTED); CString strCID = m_lpSelList->GetItemText(nIndex, 0); CPacketMgr::GetInstance()->SendSearchID( PktAdminMgr::PktSearchID::SearchCID, m_lpModifyCharacter->GetServerGroup(), _ttoi(strCID)); } void CCharSocietyPage::OnBnClickedPartypagePartyclipBtn() { ClippingListCtrl(m_ctrlCharPartyList, 2, true); } void CCharSocietyPage::OnBnClickedPartypageBanclipBtn() { ClippingListCtrl(m_ctrlCharBanList, 2, true); } void CCharSocietyPage::OnBnClickedPartypageFriclipBtn() { ClippingListCtrl(m_ctrlCharFriendList, 2, true); }