Files

165 lines
3.5 KiB
C++
Raw Permalink Normal View History

2026-03-03 13:56:44 +08:00
#include "Stdafx.h"
#include "Resource.h"
#include "DlgServerMatch.h"
//<2F>б<EFBFBD><D0B1><EFBFBD><EFBFBD><EFBFBD>
#define LIST_STYTE LVS_EX_FULLROWSELECT|LVS_EX_HEADERDRAGDROP|LVS_EX_FLATSB
//////////////////////////////////////////////////////////////////////////////////////////////////
BEGIN_MESSAGE_MAP(CDlgServerMatch, CDialog)
//<2F><>ť<EFBFBD><C5A5>Ϣ
ON_BN_CLICKED(IDC_LOAD_MATCH, OnBnClickedLoadMatch)//ȷ<><C8B7><EFBFBD><EFBFBD><EFBFBD>ر<EFBFBD><D8B1><EFBFBD>
//<2F>ؼ<EFBFBD><D8BC><EFBFBD>Ϣ
ON_NOTIFY(NM_DBLCLK, IDC_MATCH_LIST, OnNMDblclkServerList)//ȷ<><C8B7><EFBFBD><EFBFBD><EFBFBD>ر<EFBFBD><D8B1><EFBFBD>
ON_NOTIFY(LVN_ITEMCHANGED, IDC_MATCH_LIST, OnLvnItemChangedServerList)
END_MESSAGE_MAP()
//////////////////////////////////////////////////////////////////////////////////////////////////
//<2F><><EFBFBD><EFBFBD><ECBAAF>
CDlgServerMatch::CDlgServerMatch() : CDialog(IDD_SERVER_MATCH)
{
//<2F><>ʶ<EFBFBD><CAB6><EFBFBD><EFBFBD>
m_wKindID=0;
//ģ<><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ZeroMemory(&m_GameMatchOption,sizeof(m_GameMatchOption));
return;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CDlgServerMatch::~CDlgServerMatch()
{
}
//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
BOOL CDlgServerMatch::OnInitDialog()
{
__super::OnInitDialog();
//<2F><><EFBFBD>ر<EFBFBD><D8B1><EFBFBD>
LoadDBMatchItem();
return TRUE;
}
//<2F><><EFBFBD>ݽ<EFBFBD><DDBD><EFBFBD>
void CDlgServerMatch::DoDataExchange(CDataExchange* pDX)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
__super::DoDataExchange(pDX);
DDX_Control(pDX,IDC_MATCH_LIST,m_MatchListControl);
}
//<2F>򿪱<EFBFBD><F2BFAAB1><EFBFBD>
bool CDlgServerMatch::OpenGameMatch(WORD wKindID)
{
//<2F><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD>
m_wKindID=wKindID;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ
AfxSetResourceHandle(GetModuleHandle(MODULE_MANAGER_DLL_NAME));
//<2F><><EFBFBD>÷<EFBFBD><C3B7><EFBFBD>
if (DoModal()==IDC_LOAD_SERVER)
{
return true;
}
return false;
}
//<2F><><EFBFBD>ط<EFBFBD><D8B7><EFBFBD>
bool CDlgServerMatch::LoadDBMatchItem()
{
//<2F><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
m_MatchListControl.DeleteAllItems();
//<2F><><EFBFBD>ð<EFBFBD>ť
GetDlgItem(IDC_LOAD_MATCH)->EnableWindow(FALSE);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
CServerInfoManager ServerInfoManager;
if (ServerInfoManager.LoadGameMatchOption(m_wKindID,m_MatchOptionBuffer)==true)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
tagGameMatchOption * pGameMatchOption=NULL;
for(INT_PTR nIndex=0;nIndex<m_MatchOptionBuffer.m_GameMatchOptionArray.GetCount();nIndex++)
{
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
pGameMatchOption=m_MatchOptionBuffer.m_GameMatchOptionArray[nIndex];
//<2F><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
ASSERT(pGameMatchOption!=NULL);
if (pGameMatchOption!=NULL) m_MatchListControl.InsertMatchOption(pGameMatchOption);
}
return true;
}
return false;
}
//<2F><><EFBFBD>ط<EFBFBD><D8B7><EFBFBD>
VOID CDlgServerMatch::OnBnClickedLoadMatch()
{
//<2F><>ȡѡ<C8A1><D1A1>
ASSERT(m_MatchListControl.GetFirstSelectedItemPosition()!=NULL);
POSITION Position=m_MatchListControl.GetFirstSelectedItemPosition();
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
INT nListItem=m_MatchListControl.GetNextSelectedItem(Position);
tagGameMatchOption * pGameMatchOption=(tagGameMatchOption *)m_MatchListControl.GetItemData(nListItem);
//<2F><><EFBFBD>ؽ<EFBFBD><D8BD><EFBFBD>
CServerInfoManager ServerInfoManager;
pGameMatchOption->wRewardCount=ServerInfoManager.LoadGameMatchReward(pGameMatchOption->dwMatchID,pGameMatchOption->dwMatchNO);
//<2F><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD>
CopyMemory(&m_GameMatchOption,pGameMatchOption,sizeof(m_GameMatchOption));
//<2F><><EFBFBD><EFBFBD><EFBFBD>Ի<EFBFBD><D4BB><EFBFBD>
EndDialog(IDC_LOAD_SERVER);
}
//˫<><CBAB><EFBFBD>б<EFBFBD>
VOID CDlgServerMatch::OnNMDblclkServerList(NMHDR * pNMHDR, LRESULT * pResult)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (((NMITEMACTIVATE *)pNMHDR)->iItem!=LB_ERR)
{
OnBnClickedLoadMatch();
}
return;
}
//ѡ<><D1A1><EFBFBD>ı<EFBFBD>
VOID CDlgServerMatch::OnLvnItemChangedServerList(NMHDR * pNMHDR, LRESULT * pResult)
{
//<2F><>ȡѡ<C8A1><D1A1>
POSITION Position=m_MatchListControl.GetFirstSelectedItemPosition();
//<2F><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
if (Position!=NULL)
{
//<2F><><EFBFBD>ð<EFBFBD>ť
GetDlgItem(IDC_LOAD_MATCH)->EnableWindow(TRUE);
}
else
{
//<2F><><EFBFBD>ð<EFBFBD>ť
GetDlgItem(IDC_LOAD_MATCH)->EnableWindow(FALSE);
}
return;
}
//////////////////////////////////////////////////////////////////////////////////////////////////