MainFrm.cpp
上传用户:swkcbjrc
上传日期:2016-04-02
资源大小:45277k
文件大小:4k
源码类别:

游戏

开发平台:

Visual C++

  1. // MainFrm.cpp : implementation of the CMainFrame class
  2. //
  3. #include "stdafx.h"
  4. #include "GameHigh.h"
  5. #include "MainFrm.h"
  6. #include "GameHallFrame.h"
  7. #include "Macros.h"
  8. #include "MainData.h"
  9. #ifdef _DEBUG
  10. #define new DEBUG_NEW
  11. #undef THIS_FILE
  12. static char THIS_FILE[] = __FILE__;
  13. #endif
  14. /////////////////////////////////////////////////////////////////////////////
  15. // CMainFrame
  16. extern CGameHighApp theApp;
  17. IMPLEMENT_DYNAMIC(CMainFrame, CFrameWnd)
  18. BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
  19. //{{AFX_MSG_MAP(CMainFrame)
  20. ON_WM_CREATE()
  21. ON_WM_SIZE()
  22. ON_WM_ERASEBKGND()
  23. //}}AFX_MSG_MAP
  24. END_MESSAGE_MAP()
  25. /////////////////////////////////////////////////////////////////////////////
  26. // CMainFrame construction/destruction
  27. CMainFrame::CMainFrame(LPCTSTR lpszUser, LPCTSTR lpszPass)
  28. {
  29. ASSERT(lpszUser);
  30. ASSERT(lpszPass);
  31. if(NULL == lpszUser ||
  32. NULL == lpszPass ||
  33. 0 == strlen(lpszUser) ||
  34. 0 == strlen(lpszPass))
  35. {
  36. return ;
  37. }
  38. pGameHallFrame =NULL;
  39. pTableFrame =NULL;
  40. if(!Login(lpszUser, lpszPass))
  41. {
  42. ASSERT(NULL);
  43. }
  44. try
  45. {
  46. Create(NULL, "军棋 Alpha 0.01", 
  47. WS_OVERLAPPEDWINDOW, rectDefault, NULL, NULL, NULL);
  48. }
  49. catch(...)
  50. {
  51. ::AfxMessageBox("无法创建主窗口", MB_OK | MB_ICONERROR);
  52. }
  53. }
  54. CMainFrame::~CMainFrame()
  55. {
  56. }
  57. /////////////////////////////////////////////////////////////////////////////
  58. // CMainFrame diagnostics
  59. #ifdef _DEBUG
  60. #endif //_DEBUG
  61. /////////////////////////////////////////////////////////////////////////////
  62. // CMainFrame message handlers
  63. int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) 
  64. {
  65. if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
  66. return -1;
  67. this->ModifyStyleEx(WS_EX_OVERLAPPEDWINDOW , 0, 0);
  68. m_wndTopBar.Create(this);
  69. RECT rect;
  70. memset(&rect, 0, sizeof(RECT));
  71. pGameHallFrame =new CGameHallFrame(this, rect);
  72. return 0;
  73. }
  74. void CMainFrame::OnSize(UINT nType, int cx, int cy) 
  75. {
  76. CFrameWnd::OnSize(nType, cx, cy);
  77. const int nReBarHeight =50;
  78. SAFE_CHECKWND(pGameHallFrame)
  79. {
  80. RECT rect;
  81. memset(&rect, 0, sizeof(RECT));
  82. this->GetClientRect(&rect);
  83. rect.top =nReBarHeight;
  84. pGameHallFrame->MoveWindow(&rect, TRUE);
  85. }
  86. CWnd* pWnd =&m_wndTopBar;
  87. SAFE_CHECKWND(pWnd)
  88. {
  89. RECT rect;
  90. memset(&rect, 0, sizeof(RECT));
  91. this->GetClientRect(&rect);
  92. rect.bottom =nReBarHeight;
  93. pWnd->MoveWindow(&rect, TRUE);
  94. }
  95. SAFE_CHECKWND(pTableFrame)
  96. {
  97. RECT rect;
  98. memset(&rect, 0, sizeof(RECT));
  99. this->GetClientRect(&rect);
  100. rect.top =nReBarHeight;
  101. pTableFrame->MoveWindow(&rect, TRUE);
  102. }
  103. }
  104. void CMainFrame::ShowTableFrame(BOOL bShow, DWORD dwRoomID)
  105. {
  106. if(bShow)
  107. {
  108. if(NULL == pTableFrame)
  109. {
  110. pGameHallFrame->ShowWindow(SW_HIDE);
  111. if(NULL != pTableFrame || ::IsWindow(pTableFrame->GetSafeHwnd()))
  112. {
  113. return ;
  114. }
  115. const int nReBarHeight =50;
  116. RECT rect;
  117. memset(&rect, 0, sizeof(RECT));
  118. this->GetClientRect(&rect);
  119. rect.top =nReBarHeight;
  120. pTableFrame =new CTableFrame(this, rect);
  121. SAFE_CHECKWND(pTableFrame)
  122. {
  123. pTableFrame->MoveWindow(&rect);
  124. }
  125. }
  126. SAFE_CHECKWND(pTableFrame)
  127. {
  128. pTableFrame->ShowWindow(SW_SHOW);
  129. pTableFrame->SetRoomID(dwRoomID);
  130. }
  131. }
  132. else
  133. {
  134. SAFE_CHECKWND(pTableFrame)
  135. {
  136. pTableFrame->ShowWindow(SW_HIDE);
  137. pTableFrame->SendMessage(WM_DESTROY, 0, 0);
  138. pTableFrame =NULL;
  139. }
  140. SAFE_CHECKWND(pGameHallFrame)
  141. {
  142. pGameHallFrame->ShowWindow(SW_SHOW);
  143. }
  144. }
  145. }
  146. BOOL CMainFrame::Login(LPCTSTR lpszUser, LPCTSTR lpszPass)
  147. {
  148. ASSERT(lpszUser);
  149. ASSERT(lpszPass);
  150. if(NULL == lpszUser ||
  151. NULL == lpszPass ||
  152. 0 == strlen(lpszUser) ||
  153. 0 == strlen(lpszPass))
  154. {
  155. return FALSE;
  156. }
  157. CMainData* pMainData =NULL;
  158. pMainData =theApp.GetMainData();
  159. SAFE_CHECKPOINTER(pMainData)
  160. {
  161. pMainData->Async_GameHigh_Login(lpszUser, lpszPass);
  162. return TRUE;
  163. }
  164. return FALSE;
  165. }
  166. BOOL CMainFrame::OnEraseBkgnd(CDC* pDC) 
  167. {
  168. return TRUE;
  169. }