诸暨麻将添加redis
您不能選擇超過 %s 個話題 話題必須以字母或數字為開頭,可包含連接號 ('-') 且最長為 35 個字
 
 
 
 
 
 

161 行
3.8 KiB

  1. // DlgServerMatch.cpp : 实现文件
  2. //
  3. #include "stdafx.h"
  4. #include "Resource.h"
  5. #include "DlgServerMatch.h"
  6. #include "afxdialogex.h"
  7. //列表属性
  8. #define LIST_STYTE LVS_EX_FULLROWSELECT|LVS_EX_HEADERDRAGDROP|LVS_EX_FLATSB
  9. // CDlgServerMatch 对话框
  10. IMPLEMENT_DYNAMIC(CDlgServerMatch, CDialogEx)
  11. CDlgServerMatch::CDlgServerMatch(CWnd* pParent /*=NULL*/)
  12. : CDialogEx(IDD_SERVER_MATCH, pParent)
  13. {
  14. //标识变量
  15. m_wKindID = 0;
  16. //模块参数
  17. ZeroMemory(&m_GameMatchOption, sizeof(m_GameMatchOption));
  18. }
  19. CDlgServerMatch::~CDlgServerMatch()
  20. {
  21. }
  22. void CDlgServerMatch::DoDataExchange(CDataExchange* pDX)
  23. {
  24. CDialogEx::DoDataExchange(pDX);
  25. DDX_Control(pDX, IDC_MATCH_LIST, m_MatchListControl);
  26. }
  27. bool CDlgServerMatch::OpenGameMatch(WORD wKindID)
  28. {
  29. //设置变量
  30. m_wKindID = wKindID;
  31. //设置资源
  32. AfxSetResourceHandle(GetModuleHandle(MODULE_MANAGER_DLL_NAME));
  33. //配置房间
  34. if (DoModal() == IDC_LOAD_SERVER)
  35. {
  36. return true;
  37. }
  38. return false;
  39. }
  40. bool CDlgServerMatch::LoadDBMatchItem()
  41. {
  42. //重置列表
  43. m_MatchListControl.DeleteAllItems();
  44. //设置按钮
  45. GetDlgItem(IDC_LOAD_MATCH)->EnableWindow(FALSE);
  46. //加载信息
  47. CServerInfoManager ServerInfoManager;
  48. if (ServerInfoManager.LoadGameMatchOption(m_wKindID, m_MatchOptionBuffer) == true)
  49. {
  50. //变量定义
  51. tagGameMatchOption * pGameMatchOption = NULL;
  52. for (INT_PTR nIndex = 0; nIndex < m_MatchOptionBuffer.m_GameMatchOptionArray.GetCount(); nIndex++)
  53. {
  54. //获取对象
  55. pGameMatchOption = m_MatchOptionBuffer.m_GameMatchOptionArray[nIndex];
  56. //插入列表
  57. ASSERT(pGameMatchOption != NULL);
  58. if (pGameMatchOption != NULL) m_MatchListControl.InsertMatchOption(pGameMatchOption);
  59. }
  60. return true;
  61. }
  62. return false;
  63. }
  64. BEGIN_MESSAGE_MAP(CDlgServerMatch, CDialogEx)
  65. ON_BN_CLICKED(IDC_LOAD_MATCH, &CDlgServerMatch::OnBnClickedLoadMatch)
  66. ON_NOTIFY(LVN_ITEMCHANGED, IDC_MATCH_LIST, &CDlgServerMatch::OnLvnItemchangedMatchList)
  67. ON_NOTIFY(NM_DBLCLK, IDC_MATCH_LIST, &CDlgServerMatch::OnNMDblclkMatchList)
  68. END_MESSAGE_MAP()
  69. // CDlgServerMatch 消息处理程序
  70. BOOL CDlgServerMatch::OnInitDialog()
  71. {
  72. CDialogEx::OnInitDialog();
  73. //加载比赛
  74. LoadDBMatchItem();
  75. return TRUE; // return TRUE unless you set the focus to a control
  76. // 异常: OCX 属性页应返回 FALSE
  77. }
  78. void CDlgServerMatch::OnBnClickedLoadMatch()
  79. {
  80. //获取选择
  81. ASSERT(m_MatchListControl.GetFirstSelectedItemPosition() != NULL);
  82. POSITION Position = m_MatchListControl.GetFirstSelectedItemPosition();
  83. //获取房间
  84. INT nListItem = m_MatchListControl.GetNextSelectedItem(Position);
  85. tagGameMatchOption * pGameMatchOption = (tagGameMatchOption *)m_MatchListControl.GetItemData(nListItem);
  86. //加载奖励
  87. CServerInfoManager ServerInfoManager;
  88. pGameMatchOption->wRewardCount = ServerInfoManager.LoadGameMatchReward(pGameMatchOption->dwMatchID, pGameMatchOption->dwMatchNO);
  89. //设置变量
  90. CopyMemory(&m_GameMatchOption, pGameMatchOption, sizeof(m_GameMatchOption));
  91. //结束对话框
  92. EndDialog(IDC_LOAD_SERVER);
  93. }
  94. void CDlgServerMatch::OnLvnItemchangedMatchList(NMHDR *pNMHDR, LRESULT *pResult)
  95. {
  96. //获取选择
  97. POSITION Position = m_MatchListControl.GetFirstSelectedItemPosition();
  98. //设置列表
  99. if (Position != NULL)
  100. {
  101. //设置按钮
  102. GetDlgItem(IDC_LOAD_MATCH)->EnableWindow(TRUE);
  103. }
  104. else
  105. {
  106. //设置按钮
  107. GetDlgItem(IDC_LOAD_MATCH)->EnableWindow(FALSE);
  108. }
  109. return;
  110. }
  111. void CDlgServerMatch::OnNMDblclkMatchList(NMHDR *pNMHDR, LRESULT *pResult)
  112. {
  113. //加载配置
  114. if (((NMITEMACTIVATE *)pNMHDR)->iItem != LB_ERR)
  115. {
  116. OnBnClickedLoadMatch();
  117. }
  118. return;
  119. }