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

440 行
10 KiB

  1. #ifndef DLG_SERVER_WIZARD_HEAD_FILE
  2. #define DLG_SERVER_WIZARD_HEAD_FILE
  3. #pragma once
  4. #include "ModuleListControl.h"
  5. #include "ModuleInfoManager.h"
  6. #include "ServerInfoManager.h"
  7. #include "ModuleManagerHead.h"
  8. //////////////////////////////////////////////////////////////////////////////////
  9. //类说明
  10. class CDlgServerWizard;
  11. //////////////////////////////////////////////////////////////////////////////////
  12. //配置基类
  13. class MODULE_MANAGER_CLASS CDlgServerOptionItem : public CDialogEx
  14. {
  15. //友元定义
  16. friend class CDlgServerWizardItem2;
  17. //变量定义
  18. protected:
  19. CDlgServerWizard * m_pDlgServerWizard; //向导指针
  20. tagGameServiceAttrib * m_pGameServiceAttrib; //服务属性
  21. tagGameServiceOption * m_pGameServiceOption; //服务配置
  22. //函数定义
  23. protected:
  24. //构造函数
  25. CDlgServerOptionItem(UINT nIDTemplate);
  26. //析构函数
  27. virtual ~CDlgServerOptionItem();
  28. //重载函数
  29. protected:
  30. //确定函数
  31. virtual VOID OnOK();
  32. //取消消息
  33. virtual VOID OnCancel();
  34. //接口函数
  35. protected:
  36. //保存输入
  37. virtual bool SaveInputInfo() = NULL;
  38. //调整控件
  39. virtual VOID RectifyControl(INT nWidth, INT nHeight) = NULL;
  40. //功能函数
  41. private:
  42. //保存数据
  43. bool SaveItemData();
  44. //显示配置
  45. bool ShowOptionItem(const CRect & rcRect, CWnd * pParentWnd);
  46. //消息函数
  47. private:
  48. //位置消息
  49. VOID OnSize(UINT nType, INT cx, INT cy);
  50. DECLARE_MESSAGE_MAP()
  51. };
  52. //////////////////////////////////////////////////////////////////////////////////
  53. //房间配置 ///---基本配置
  54. class MODULE_MANAGER_CLASS CDlgServerOptionItem1 : public CDlgServerOptionItem
  55. {
  56. //函数定义
  57. public:
  58. //构造函数
  59. CDlgServerOptionItem1();
  60. //析构函数
  61. virtual ~CDlgServerOptionItem1();
  62. //重载函数
  63. protected:
  64. //初始化函数
  65. virtual BOOL OnInitDialog();
  66. //重载函数
  67. public:
  68. //保存输入
  69. virtual bool SaveInputInfo();
  70. //调整控件
  71. virtual VOID RectifyControl(INT nWidth, INT nHeight);
  72. //功能函数
  73. protected:
  74. //构造控件
  75. VOID InitCtrlWindow();
  76. //更新数据
  77. VOID UpdateDataBaseName();
  78. //控件函数
  79. protected:
  80. //选择改变
  81. VOID OnSelchangeServerType();
  82. //选择改变
  83. VOID OnSelchangeServerKind();
  84. ///---场馆改变
  85. VOID OnSelchangeVenueType();
  86. std::vector<tagVenueInfo> m_vecVenueInfo;
  87. tagVenueInfo& GetVenue(WORD wVenueID);
  88. DECLARE_MESSAGE_MAP()
  89. public:
  90. afx_msg void OnBnClickedRevenueRadio();
  91. afx_msg void OnBnClickedServiceRadio();
  92. };
  93. //////////////////////////////////////////////////////////////////////////////////
  94. //房间配置 ///---房间选项
  95. class MODULE_MANAGER_CLASS CDlgServerOptionItem2 : public CDlgServerOptionItem
  96. {
  97. //函数定义
  98. public:
  99. //构造函数
  100. CDlgServerOptionItem2();
  101. //析构函数
  102. virtual ~CDlgServerOptionItem2();
  103. //重载函数
  104. protected:
  105. //初始化函数
  106. virtual BOOL OnInitDialog();
  107. //重载函数
  108. public:
  109. //保存输入
  110. virtual bool SaveInputInfo();
  111. //调整控件
  112. virtual VOID RectifyControl(INT nWidth, INT nHeight);
  113. //功能函数
  114. protected:
  115. //构造控件
  116. VOID InitCtrlWindow();
  117. DECLARE_MESSAGE_MAP()
  118. };
  119. //////////////////////////////////////////////////////////////////////////////////
  120. //房间配置 ///---分组选项
  121. class MODULE_MANAGER_CLASS CDlgServerOptionItem3 : public CDlgServerOptionItem
  122. {
  123. //函数定义
  124. public:
  125. //构造函数
  126. CDlgServerOptionItem3();
  127. //析构函数
  128. virtual ~CDlgServerOptionItem3();
  129. //重载函数
  130. protected:
  131. //初始化函数
  132. virtual BOOL OnInitDialog();
  133. //重载函数
  134. public:
  135. //保存输入
  136. virtual bool SaveInputInfo();
  137. //调整控件
  138. virtual VOID RectifyControl(INT nWidth, INT nHeight);
  139. DECLARE_MESSAGE_MAP()
  140. };
  141. //////////////////////////////////////////////////////////////////////////////////
  142. //定制配置
  143. class MODULE_MANAGER_CLASS CDlgServerOptionItemCustom : public CDlgServerOptionItem
  144. {
  145. //控件变量
  146. protected:
  147. HWND m_hCustomRule; //定制规则
  148. IGameServiceCustomRule * m_pIGameServiceCustomRule; //自定配置
  149. //函数定义
  150. public:
  151. //构造函数
  152. CDlgServerOptionItemCustom();
  153. //析构函数
  154. virtual ~CDlgServerOptionItemCustom();
  155. //重载函数
  156. protected:
  157. //初始化函数
  158. virtual BOOL OnInitDialog();
  159. //重载函数
  160. public:
  161. //保存输入
  162. virtual bool SaveInputInfo();
  163. //调整控件
  164. virtual VOID RectifyControl(INT nWidth, INT nHeight);
  165. //消息函数
  166. private:
  167. //消耗消息
  168. VOID OnNcDestroy();
  169. //焦点消息
  170. VOID OnSetFocus(CWnd * pNewWnd);
  171. DECLARE_MESSAGE_MAP()
  172. };
  173. //////////////////////////////////////////////////////////////////////////////////
  174. //向导基类
  175. class MODULE_MANAGER_CLASS CDlgServerWizardItem : public CDialogEx
  176. {
  177. //友元定义
  178. friend class CDlgServerWizard;
  179. //变量定义
  180. protected:
  181. CDlgServerWizard * m_pDlgServerWizard; //向导指针
  182. tagGameServiceAttrib * m_pGameServiceAttrib; //服务属性
  183. tagGameServiceOption * m_pGameServiceOption; //服务配置
  184. //函数定义
  185. protected:
  186. //构造函数
  187. CDlgServerWizardItem(UINT nIDTemplate);
  188. //析构函数
  189. virtual ~CDlgServerWizardItem();
  190. //重载函数
  191. protected:
  192. //确定函数
  193. virtual VOID OnOK();
  194. //取消消息
  195. virtual VOID OnCancel();
  196. //接口函数
  197. protected:
  198. //保存输入
  199. virtual bool SaveInputInfo() = NULL;
  200. //调整控件
  201. virtual VOID RectifyControl(INT nWidth, INT nHeight) = NULL;
  202. //功能函数
  203. private:
  204. //保存数据
  205. bool SaveItemData();
  206. //创建向导
  207. bool ShowWizardItem(const CRect & rcRect, CWnd * pParentWnd);
  208. //消息函数
  209. private:
  210. //位置消息
  211. VOID OnSize(UINT nType, INT cx, INT cy);
  212. DECLARE_MESSAGE_MAP()
  213. };
  214. //////////////////////////////////////////////////////////////////////////////////
  215. //游戏选择
  216. class MODULE_MANAGER_CLASS CDlgServerWizardItem1 : public CDlgServerWizardItem
  217. {
  218. //友元定义
  219. friend class CDlgServerOptionItem1;
  220. //列表变量
  221. protected:
  222. CStatic m_StaticPrompt; //提示控件
  223. CModuleInfoBuffer m_ModuleInfoBuffer; //模块信息
  224. CModuleListControl m_ModuleListControl; //模块列表
  225. CModuleInfoManager m_ModuleInfoManager; //模块管理
  226. //服务组件
  227. protected:
  228. CGameServiceManagerHelper m_GameServiceManager; //游戏模块
  229. //函数定义
  230. public:
  231. //构造函数
  232. CDlgServerWizardItem1();
  233. //析构函数
  234. virtual ~CDlgServerWizardItem1();
  235. //重载函数
  236. protected:
  237. //控件绑定
  238. virtual VOID DoDataExchange(CDataExchange * pDX);
  239. //初始化函数
  240. virtual BOOL OnInitDialog();
  241. //重载函数
  242. public:
  243. //保存输入
  244. virtual bool SaveInputInfo();
  245. //调整控件
  246. virtual VOID RectifyControl(INT nWidth, INT nHeight);
  247. //功能函数
  248. protected:
  249. //加载模块
  250. bool LoadDBModuleItem();
  251. //控件消息
  252. protected:
  253. //双击列表
  254. VOID OnNMDblclkModuleList(NMHDR * pNMHDR, LRESULT * pResult);
  255. DECLARE_MESSAGE_MAP()
  256. };
  257. //////////////////////////////////////////////////////////////////////////////////
  258. //房间配置
  259. class MODULE_MANAGER_CLASS CDlgServerWizardItem2 : public CDlgServerWizardItem
  260. {
  261. //变量定义
  262. protected:
  263. WORD m_wItemCount; //子项数目
  264. WORD m_wActiveIndex; //活动索引
  265. CDlgServerOptionItem * m_pOptionItem[4]; //向导指针
  266. //控件变量
  267. protected:
  268. CTabCtrl m_TabCtrl; //选择控件
  269. CDlgServerOptionItem1 m_ServerOptionItem1; //设置步骤
  270. CDlgServerOptionItem2 m_ServerOptionItem2; //设置步骤
  271. CDlgServerOptionItem3 m_ServerOptionItem3; //设置步骤
  272. CDlgServerOptionItemCustom m_ServerOptionItemCustom; //定制配置
  273. //函数定义
  274. public:
  275. //构造函数
  276. CDlgServerWizardItem2();
  277. //析构函数
  278. virtual ~CDlgServerWizardItem2();
  279. //重载函数
  280. protected:
  281. //控件绑定
  282. virtual VOID DoDataExchange(CDataExchange * pDX);
  283. //初始化函数
  284. virtual BOOL OnInitDialog();
  285. //重载函数
  286. public:
  287. //保存输入
  288. virtual bool SaveInputInfo();
  289. //调整控件
  290. virtual VOID RectifyControl(INT nWidth, INT nHeight);
  291. //功能函数
  292. public:
  293. //激活配置
  294. bool ActiveOptionItem(WORD wIndex);
  295. //控件消息
  296. protected:
  297. //焦点消息
  298. VOID OnSetFocus(CWnd * pNewWnd);
  299. //选择改变
  300. VOID OnTcnSelchangeTabCtrl(NMHDR * pNMHDR, LRESULT * pResult);
  301. DECLARE_MESSAGE_MAP()
  302. };
  303. //////////////////////////////////////////////////////////////////////////////////
  304. //创建向导 ///---房间配置向导
  305. class MODULE_MANAGER_CLASS CDlgServerWizard : public CDialogEx
  306. {
  307. //友元定义
  308. friend class CDlgServerWizardItem2;
  309. friend class CDlgServerOptionItem1;
  310. friend class CDlgServerOptionItemCustom;
  311. //变量定义
  312. protected:
  313. WORD m_wActiveIndex; //活动索引
  314. CDlgServerWizardItem * m_pWizardItem[2]; //向导指针
  315. //配置信息
  316. public:
  317. tagModuleInitParameter m_ModuleInitParameter; //配置参数 ///---模块初始化参数
  318. //控件变量
  319. protected:
  320. CDlgServerWizardItem1 m_ServerWizardItem1; //设置步骤
  321. CDlgServerWizardItem2 m_ServerWizardItem2; //设置步骤
  322. //接口变量
  323. protected:
  324. IGameServiceManager * m_pIGameServiceManager; //服务管理
  325. IGameServiceCustomRule * m_pIGameServiceCustomRule; //自定配置
  326. //函数定义
  327. public:
  328. //构造函数
  329. CDlgServerWizard();
  330. //析构函数
  331. virtual ~CDlgServerWizard();
  332. //重载函数
  333. public:
  334. //初始化函数
  335. virtual BOOL OnInitDialog();
  336. //确定函数
  337. virtual VOID OnOK();
  338. //配置函数
  339. public:
  340. //创建房间
  341. bool CreateGameServer();
  342. //设置配置
  343. VOID SetWizardParameter(IGameServiceManager * pIGameServiceManager, tagGameServiceOption * pGameServiceOption);
  344. //辅助函数
  345. private:
  346. //激活向导
  347. bool ActiveWizardItem(WORD wIndex);
  348. //消息映射
  349. public:
  350. //上一步
  351. VOID OnBnClickedLast();
  352. //下一步
  353. VOID OnBnClickedNext();
  354. //完成按钮
  355. VOID OnBnClickedFinish();
  356. DECLARE_MESSAGE_MAP()
  357. };
  358. //////////////////////////////////////////////////////////////////////////////////
  359. #endif