165 lines
3.5 KiB
C++
165 lines
3.5 KiB
C++
|
|
#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;
|
|||
|
|
}
|
|||
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////
|