|
- // DlgServerMatch.cpp : 实现文件
- //
-
- #include "stdafx.h"
- #include "Resource.h"
- #include "DlgServerMatch.h"
- #include "afxdialogex.h"
-
- //列表属性
- #define LIST_STYTE LVS_EX_FULLROWSELECT|LVS_EX_HEADERDRAGDROP|LVS_EX_FLATSB
-
- // CDlgServerMatch 对话框
-
- IMPLEMENT_DYNAMIC(CDlgServerMatch, CDialogEx)
-
- CDlgServerMatch::CDlgServerMatch(CWnd* pParent /*=NULL*/)
- : CDialogEx(IDD_SERVER_MATCH, pParent)
- {
- //标识变量
- m_wKindID = 0;
-
- //模块参数
- ZeroMemory(&m_GameMatchOption, sizeof(m_GameMatchOption));
-
- }
-
- CDlgServerMatch::~CDlgServerMatch()
- {
- }
-
- void CDlgServerMatch::DoDataExchange(CDataExchange* pDX)
- {
- CDialogEx::DoDataExchange(pDX);
- DDX_Control(pDX, IDC_MATCH_LIST, m_MatchListControl);
- }
-
-
- bool CDlgServerMatch::OpenGameMatch(WORD wKindID)
- {
- //设置变量
- m_wKindID = wKindID;
-
- //设置资源
- AfxSetResourceHandle(GetModuleHandle(MODULE_MANAGER_DLL_NAME));
-
- //配置房间
- if (DoModal() == IDC_LOAD_SERVER)
- {
- return true;
- }
-
- return false;
- }
-
- bool CDlgServerMatch::LoadDBMatchItem()
- {
- //重置列表
- m_MatchListControl.DeleteAllItems();
-
- //设置按钮
- GetDlgItem(IDC_LOAD_MATCH)->EnableWindow(FALSE);
-
- //加载信息
- CServerInfoManager ServerInfoManager;
- if (ServerInfoManager.LoadGameMatchOption(m_wKindID, m_MatchOptionBuffer) == true)
- {
- //变量定义
- tagGameMatchOption * pGameMatchOption = NULL;
-
- for (INT_PTR nIndex = 0; nIndex < m_MatchOptionBuffer.m_GameMatchOptionArray.GetCount(); nIndex++)
- {
- //获取对象
- pGameMatchOption = m_MatchOptionBuffer.m_GameMatchOptionArray[nIndex];
-
- //插入列表
- ASSERT(pGameMatchOption != NULL);
- if (pGameMatchOption != NULL) m_MatchListControl.InsertMatchOption(pGameMatchOption);
- }
-
- return true;
- }
-
- return false;
- }
-
- BEGIN_MESSAGE_MAP(CDlgServerMatch, CDialogEx)
- ON_BN_CLICKED(IDC_LOAD_MATCH, &CDlgServerMatch::OnBnClickedLoadMatch)
- ON_NOTIFY(LVN_ITEMCHANGED, IDC_MATCH_LIST, &CDlgServerMatch::OnLvnItemchangedMatchList)
- ON_NOTIFY(NM_DBLCLK, IDC_MATCH_LIST, &CDlgServerMatch::OnNMDblclkMatchList)
- END_MESSAGE_MAP()
-
-
- // CDlgServerMatch 消息处理程序
-
-
- BOOL CDlgServerMatch::OnInitDialog()
- {
- CDialogEx::OnInitDialog();
-
- //加载比赛
- LoadDBMatchItem();
-
- return TRUE; // return TRUE unless you set the focus to a control
- // 异常: OCX 属性页应返回 FALSE
- }
-
-
- void CDlgServerMatch::OnBnClickedLoadMatch()
- {
- //获取选择
- ASSERT(m_MatchListControl.GetFirstSelectedItemPosition() != NULL);
- POSITION Position = m_MatchListControl.GetFirstSelectedItemPosition();
-
- //获取房间
- INT nListItem = m_MatchListControl.GetNextSelectedItem(Position);
- tagGameMatchOption * pGameMatchOption = (tagGameMatchOption *)m_MatchListControl.GetItemData(nListItem);
-
- //加载奖励
- CServerInfoManager ServerInfoManager;
- pGameMatchOption->wRewardCount = ServerInfoManager.LoadGameMatchReward(pGameMatchOption->dwMatchID, pGameMatchOption->dwMatchNO);
-
- //设置变量
- CopyMemory(&m_GameMatchOption, pGameMatchOption, sizeof(m_GameMatchOption));
-
- //结束对话框
- EndDialog(IDC_LOAD_SERVER);
- }
-
-
- void CDlgServerMatch::OnLvnItemchangedMatchList(NMHDR *pNMHDR, LRESULT *pResult)
- {
- //获取选择
- POSITION Position = m_MatchListControl.GetFirstSelectedItemPosition();
-
- //设置列表
- if (Position != NULL)
- {
- //设置按钮
- GetDlgItem(IDC_LOAD_MATCH)->EnableWindow(TRUE);
- }
- else
- {
- //设置按钮
- GetDlgItem(IDC_LOAD_MATCH)->EnableWindow(FALSE);
- }
-
- return;
- }
-
-
- void CDlgServerMatch::OnNMDblclkMatchList(NMHDR *pNMHDR, LRESULT *pResult)
- {
- //加载配置
- if (((NMITEMACTIVATE *)pNMHDR)->iItem != LB_ERR)
- {
- OnBnClickedLoadMatch();
- }
-
- return;
- }
|