UiNewPlayerStartMsg.cpp
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:5k
源码类别:

模拟服务器

开发平台:

C/C++

  1. /*****************************************************************************************
  2. // 界面--新手进入的提示界面
  3. // Copyright : Kingsoft 2003
  4. // Author :   Freeway Chen
  5. // CreateTime: 2003-7-8
  6. ------------------------------------------------------------------------------------------
  7. *****************************************************************************************/
  8. #include "KWin32.h"
  9. #include "KIniFile.h"
  10. #include "../Elem/WndMessage.h"
  11. #include "../Elem/Wnds.h"
  12. #include "../UiBase.h"
  13. #include "../UiShell.h"
  14. #include "UiInit.h"
  15. #include "UiNewPlayerStartMsg.h"
  16. #include "UiHelper.h"
  17. //#include "../UiSoundSetting.h"
  18. #include <crtdbg.h>
  19. #define SCHEME_INI_NEWENTERINFO "新手进入的初始界面.ini"
  20. #define NEWENTERINFO_INI "\Ui\NewEnterInfo.ini"
  21. KUiNewPlayerStartMsg* KUiNewPlayerStartMsg::m_pSelf = NULL;
  22. //--------------------------------------------------------------------------
  23. // 功能:构造函数
  24. //--------------------------------------------------------------------------
  25. KUiNewPlayerStartMsg::KUiNewPlayerStartMsg()
  26. {
  27. }
  28. KUiNewPlayerStartMsg::~KUiNewPlayerStartMsg()
  29. {
  30. }
  31. //--------------------------------------------------------------------------
  32. // 功能:打开窗口,返回唯一的一个类对象实例
  33. //--------------------------------------------------------------------------
  34. KUiNewPlayerStartMsg* KUiNewPlayerStartMsg::OpenWindow()
  35. {
  36. if (m_pSelf == NULL)
  37. {
  38. m_pSelf = new KUiNewPlayerStartMsg;
  39. m_pSelf->Initialize();
  40. }
  41. if (m_pSelf)
  42. {
  43. //UiSoundPlay(UI_SI_POPUP_OUTGAME_WND);
  44. m_pSelf->Show();
  45.         Wnd_SetExclusive(m_pSelf);
  46. }
  47. return m_pSelf;
  48. }
  49. //--------------------------------------------------------------------------
  50. // 功能:关闭窗口
  51. //--------------------------------------------------------------------------
  52. void KUiNewPlayerStartMsg::CloseWindow(bool bDestroy)
  53. {
  54. if (m_pSelf)
  55. {
  56.         Wnd_ReleaseExclusive(m_pSelf);
  57. if (bDestroy)
  58. {
  59. m_pSelf->Destroy();
  60. m_pSelf = NULL;
  61. }
  62. else
  63. {
  64. m_pSelf->Hide();
  65. }
  66. }
  67. }
  68. //--------------------------------------------------------------------------
  69. // 功能:初始化
  70. //--------------------------------------------------------------------------
  71. void KUiNewPlayerStartMsg::Initialize()
  72. {
  73. AddChild(&m_List);
  74. AddChild(&m_AdvanceList);
  75. AddChild(&m_NewerBtn);
  76. AddChild(&m_AdvanceBtn);
  77. AddChild(&m_Ok);
  78. char Scheme[256];
  79. g_UiBase.GetCurSchemePath(Scheme, 256);
  80. LoadScheme(Scheme);
  81. LoadList();
  82. m_NewerBtn.CheckButton(true);
  83. m_AdvanceBtn.CheckButton(false);
  84. m_AdvanceList.Hide();
  85.    
  86. Wnd_AddWindow(this, WL_TOPMOST);
  87. }
  88. void KUiNewPlayerStartMsg::LoadList()
  89. {
  90. KIniFile File;
  91. if (!File.Load(NEWENTERINFO_INI))
  92. return;
  93.     MsgListBox_LoadContent(m_List.GetMessageListBox(), &File, "List");
  94.     MsgListBox_LoadContent(m_AdvanceList.GetMessageListBox(), &File, "AdvanceList");
  95. }
  96. //--------------------------------------------------------------------------
  97. // 功能:载入窗口的界面方案
  98. //--------------------------------------------------------------------------
  99. void KUiNewPlayerStartMsg::LoadScheme(const char* pScheme)
  100. {
  101. char Buff[128];
  102. KIniFile Ini;
  103. sprintf(Buff, "%s\%s", pScheme, SCHEME_INI_NEWENTERINFO);
  104. if (Ini.Load(Buff))
  105. {
  106. KWndShowAnimate::Init(&Ini, "Main");
  107. m_List              .Init(&Ini, "List");
  108. m_AdvanceList       .Init(&Ini, "List");
  109.         m_NewerBtn          .Init(&Ini, "NewerBtn");
  110.         m_AdvanceBtn        .Init(&Ini, "AdvanceNewerBtn");
  111. m_Ok                .Init(&Ini, "Ok");
  112. }
  113. }
  114. //--------------------------------------------------------------------------
  115. // 功能:窗口函数
  116. //--------------------------------------------------------------------------
  117. int KUiNewPlayerStartMsg::WndProc(unsigned int uMsg, unsigned int uParam, int nParam)
  118. {
  119. int nRet = 0;
  120. switch(uMsg)
  121. {
  122. case WND_N_BUTTON_CLICK:
  123. OnClickButton((KWndButton*)(KWndWindow*)uParam);
  124. break;
  125. case WM_KEYDOWN:
  126. nRet = OnKeyDown(uParam);
  127. break;
  128. default:
  129. nRet = KWndShowAnimate::WndProc(uMsg, uParam, nParam);
  130. break;
  131. }
  132. return nRet;
  133. }
  134. int KUiNewPlayerStartMsg::OnKeyDown(unsigned int uKey)
  135. {
  136. int nRet = 1;
  137. switch (uKey)
  138. {
  139. case VK_RETURN:
  140. case VK_ESCAPE:
  141. OnOk();
  142. break;
  143. // case VK_UP:
  144. // nRet = m_List.GetCurSel();
  145. // if (nRet  > 0)
  146. // m_List.SetCurSel(nRet - 1);
  147. // else if (nRet < 0)
  148. // m_List.SetCurSel(0);
  149. // m_ScrollBar.SetScrollPos(m_List.GetTopItemIndex());
  150. // nRet = 1;
  151. // break;
  152. // case VK_DOWN:
  153. // nRet = m_List.GetCurSel();
  154. // if (nRet < m_List.GetCount() - 1)
  155. // m_List.SetCurSel(nRet + 1);
  156. // else if (nRet < 0)
  157. // m_List.SetCurSel(0);
  158. // m_ScrollBar.SetScrollPos(m_List.GetTopItemIndex());
  159. // nRet = 1;
  160. // break;
  161. default:
  162. nRet = 0;
  163. break;
  164. }
  165. return nRet;
  166. }
  167. void KUiNewPlayerStartMsg::OnClickButton(KWndButton* pBtn)
  168. {
  169. if(pBtn == &m_Ok)
  170. OnOk();
  171. else if (pBtn == &m_NewerBtn)
  172. {
  173. m_List.Show();
  174. m_AdvanceList.Hide();
  175.         m_NewerBtn.CheckButton(true);
  176.         m_AdvanceBtn.CheckButton(false);
  177. }
  178. else if (pBtn == &m_AdvanceBtn)
  179. {
  180. m_List.Hide();
  181. m_AdvanceList.Show();
  182.         m_NewerBtn.CheckButton(false);
  183.         m_AdvanceBtn.CheckButton(true);
  184. }
  185. }
  186. //--------------------------------------------------------------------------
  187. // 功能:取消
  188. //--------------------------------------------------------------------------
  189. void KUiNewPlayerStartMsg::OnOk()
  190. {
  191. CloseWindow(true);
  192.     KUiHelper::OpenWindow(true);
  193. }