7Dlg.cpp
上传用户:sjsmail
上传日期:2009-08-28
资源大小:260k
文件大小:7k
源码类别:

棋牌游戏

开发平台:

Visual C++

  1. // 7Dlg.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "7.h"
  5. #include "7Dlg.h"
  6. #include "dim.h"
  7. #ifdef _DEBUG
  8. #define new DEBUG_NEW
  9. #undef THIS_FILE
  10. static char THIS_FILE[] = __FILE__;
  11. #endif
  12. /////////////////////////////////////////////////////////////////////////////
  13. // CAboutDlg dialog used for App About
  14. class CAboutDlg : public CDialog
  15. {
  16. public:
  17. CAboutDlg();
  18. // Dialog Data
  19. //{{AFX_DATA(CAboutDlg)
  20. enum { IDD = IDD_ABOUTBOX };
  21. //}}AFX_DATA
  22. // ClassWizard generated virtual function overrides
  23. //{{AFX_VIRTUAL(CAboutDlg)
  24. protected:
  25. virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
  26. //}}AFX_VIRTUAL
  27. // Implementation
  28. protected:
  29. //{{AFX_MSG(CAboutDlg)
  30. //}}AFX_MSG
  31. DECLARE_MESSAGE_MAP()
  32. };
  33. CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
  34. {
  35. //{{AFX_DATA_INIT(CAboutDlg)
  36. //}}AFX_DATA_INIT
  37. }
  38. void CAboutDlg::DoDataExchange(CDataExchange* pDX)
  39. {
  40. CDialog::DoDataExchange(pDX);
  41. //{{AFX_DATA_MAP(CAboutDlg)
  42. //}}AFX_DATA_MAP
  43. }
  44. BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
  45. //{{AFX_MSG_MAP(CAboutDlg)
  46. // No message handlers
  47. //}}AFX_MSG_MAP
  48. END_MESSAGE_MAP()
  49. /////////////////////////////////////////////////////////////////////////////
  50. // CMyDlg dialog
  51. CMyDlg::CMyDlg(CWnd* pParent /*=NULL*/)
  52. : CDialog(CMyDlg::IDD, pParent)
  53. {
  54. CBitmap b,c,d,e,f;
  55. CSize x;
  56. b.LoadBitmap(IDB_QP);
  57. x.cx =446 ;
  58. x.cy =446; 
  59. qp.CreateCompatibleDC(NULL);
  60. qp.SelectObject(&b);
  61. qp.SetSize(x);
  62. b.DeleteObject(); 
  63. c.LoadBitmap(IDB_QZH);
  64. x.cx = 27 ;
  65. x.cy =27 ;
  66. qzh.CreateCompatibleDC(NULL);
  67. qzh.SelectObject(&c);
  68. qzh.SetSize(x);
  69. c.DeleteObject(); 
  70. d.LoadBitmap(IDB_QZB);
  71. x.cx = 27 ;
  72. x.cy =27; 
  73. qzb.CreateCompatibleDC(NULL);
  74. qzb.SelectObject(&d);
  75. qzb.SetSize(x);
  76. d.DeleteObject(); 
  77. e.LoadBitmap(IDB_MASK);
  78. x.cx = 27 ;
  79. x.cy =27; 
  80. mask.CreateCompatibleDC(NULL);
  81. mask.SelectObject(&e);
  82. mask.SetSize(x);
  83. d.DeleteObject();
  84. f.LoadBitmap(IDB_DEAD);
  85. x.cx=27;
  86. x.cy=27;
  87. dead.CreateCompatibleDC(NULL);
  88. dead.SelectObject(&f);
  89. dead.SetSize(x);
  90. f.DeleteObject();
  91.    
  92. ////////////////////////////////////////////////////////////////
  93. //{{AFX_DATA_INIT(CMyDlg)
  94. //}}AFX_DATA_INIT
  95. m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
  96. }
  97. void CMyDlg::DoDataExchange(CDataExchange* pDX)
  98. {
  99. CDialog::DoDataExchange(pDX);
  100. //{{AFX_DATA_MAP(CMyDlg)
  101. DDX_Control(pDX, IDC_BUTTON8, m_exit);
  102. DDX_Control(pDX, IDC_BUTTON7, m_about);
  103. DDX_Control(pDX, IDC_BUTTON3, m_back);
  104. DDX_Control(pDX, IDC_BUTTON2, m_option);
  105. DDX_Control(pDX, IDC_BUTTON1, m_new);
  106. //}}AFX_DATA_MAP
  107. }
  108. BEGIN_MESSAGE_MAP(CMyDlg, CDialog)
  109. //{{AFX_MSG_MAP(CMyDlg)
  110. ON_WM_SYSCOMMAND()
  111. ON_WM_PAINT()
  112. ON_WM_QUERYDRAGICON()
  113. ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
  114. ON_WM_LBUTTONDOWN()
  115. ON_BN_CLICKED(IDC_BUTTON2, OnButton2)
  116. ON_BN_CLICKED(IDC_BUTTON8, OnButton8)
  117. ON_BN_CLICKED(IDC_BUTTON7, OnButton7)
  118. ON_BN_CLICKED(IDC_BUTTON3, OnButton3)
  119. //}}AFX_MSG_MAP
  120. END_MESSAGE_MAP()
  121. /////////////////////////////////////////////////////////////////////////////
  122. // CMyDlg message handlers
  123. BOOL CMyDlg::OnInitDialog()
  124. {
  125. CDialog::OnInitDialog();
  126. // Add "About..." menu item to system menu.
  127. // IDM_ABOUTBOX must be in the system command range.
  128. ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
  129. ASSERT(IDM_ABOUTBOX < 0xF000);
  130. CMenu* pSysMenu = GetSystemMenu(FALSE);
  131. if (pSysMenu != NULL)
  132. {
  133. CString strAboutMenu;
  134. strAboutMenu.LoadString(IDS_ABOUTBOX);
  135. if (!strAboutMenu.IsEmpty())
  136. {
  137. pSysMenu->AppendMenu(MF_SEPARATOR);
  138. pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
  139. }
  140. }
  141. // Set the icon for this dialog.  The framework does this automatically
  142. //  when the application's main window is not a dialog
  143. SetIcon(m_hIcon, TRUE); // Set big icon
  144. SetIcon(m_hIcon, FALSE); // Set small icon
  145. // TODO: Add extra initialization here
  146.   CString sModFileName;
  147.    GetModuleFileName(NULL, sModFileName.GetBuffer(MAX_PATH), MAX_PATH);
  148.   sModFileName.ReleaseBuffer();
  149.   sModFileName.MakeReverse();
  150.   runpath = sModFileName.Right(sModFileName.GetLength() - sModFileName.Find('\'));
  151.   runpath.MakeReverse();
  152.   sModFileName.MakeReverse();
  153. loadfile();
  154.   twzq.SetDc(&qp,&qzh,&qzb,&mask,&dead,this->GetDC());  
  155. twzq.NewGame(); 
  156. CMyDlg::m_back.EnableWindow(twzq.getbackble()); 
  157. return TRUE;  // return TRUE  unless you set the focus to a control
  158. }
  159. void CMyDlg::OnSysCommand(UINT nID, LPARAM lParam)
  160. {
  161. if ((nID & 0xFFF0) == IDM_ABOUTBOX)
  162. {
  163. CAboutDlg dlgAbout;
  164. dlgAbout.DoModal();
  165. }
  166. else
  167. {
  168. CDialog::OnSysCommand(nID, lParam);
  169. }
  170. }
  171. // If you add a minimize button to your dialog, you will need the code below
  172. //  to draw the icon.  For MFC applications using the document/view model,
  173. //  this is automatically done for you by the framework.
  174. void CMyDlg::OnPaint() 
  175. {
  176. if (IsIconic())
  177. {
  178. CPaintDC dc(this); // device context for painting
  179. SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
  180. // Center icon in client rectangle
  181. int cxIcon = GetSystemMetrics(SM_CXICON);
  182. int cyIcon = GetSystemMetrics(SM_CYICON);
  183. CRect rect;
  184. GetClientRect(&rect);
  185. int x = (rect.Width() - cxIcon + 1) / 2;
  186. int y = (rect.Height() - cyIcon + 1) / 2;
  187. // Draw the icon
  188. dc.DrawIcon(x, y, m_hIcon);
  189. }
  190. else
  191. {
  192. CDialog::OnPaint();
  193. CSize x;
  194. x=qp.GetSize();
  195. twzq.draw(); 
  196. }
  197. }
  198. // The system calls this to obtain the cursor to display while the user drags
  199. //  the minimized window.
  200. HCURSOR CMyDlg::OnQueryDragIcon()
  201. {
  202. return (HCURSOR) m_hIcon;
  203. }
  204. void CMyDlg::OnButton1() 
  205. {
  206. twzq.NewGame();
  207. CMyDlg::m_back.EnableWindow(twzq.getbackble()); 
  208. }
  209. void CMyDlg::OnMouseMove(UINT nFlags, CPoint point) 
  210. {
  211. // TODO: Add your message handler code here and/or call default
  212. CDialog::OnMouseMove(nFlags, point);
  213. }
  214. void CMyDlg::OnLButtonDown(UINT nFlags, CPoint point) 
  215. {
  216. int x1,y1;
  217. x1=(int)(point.x-7)/29 ;
  218. y1=(int)(point.y-7)/29 ;
  219. twzq.downzi(x1,y1);
  220. if (twzq.twinner.winner==1)
  221. {
  222. CMyDlg::MessageBox("白棋获胜!" );
  223. twzq.draw();
  224. }
  225. if (twzq.twinner.winner==2)
  226. {
  227. CMyDlg::MessageBox("黑棋获胜!" );
  228. twzq.draw();
  229. }
  230. CMyDlg::m_back.EnableWindow(twzq.getbackble()); 
  231. CDialog::OnLButtonDown(nFlags, point);
  232. }
  233. void CMyDlg::OnButton2() 
  234. {
  235. CDlgoption option;
  236. option.setoption(twzq.Model,twzq.AItype ) ;
  237. CString temp;
  238. if (option.DoModal()==IDOK)
  239. {
  240. twzq.AItype=option.getai();
  241. twzq.Model=option.getmodel();
  242. temp.Format("%i",twzq.Model) ; 
  243. setini("wuzi","model",temp);
  244. temp.Format("%i",twzq.AItype);  
  245. setini("wuzi","ai",temp);
  246. twzq.NewGame(); 
  247. }
  248. }
  249. void CMyDlg::OnButton3() 
  250. {
  251. twzq.goback();
  252. CMyDlg::m_back.EnableWindow(twzq.getbackble()); 
  253. }
  254. void CMyDlg::OnButton7() 
  255. {
  256. CAboutDlg aboutme;
  257. aboutme.DoModal(); 
  258. }
  259. void CMyDlg::OnButton8() 
  260. {
  261. CMyDlg::OnOK(); 
  262. }
  263. void CMyDlg::loadfile()
  264. {
  265. CString a=getini("wuzi","ai","1");
  266. twzq.AItype=atoi(a);
  267. a=getini("wuzi","model","1");
  268. twzq.Model=atoi(a);
  269. }
  270. void CMyDlg::setini(CString keyS ,CString AppS ,CString StrS )
  271. {
  272. CString file=CMyDlg::runpath+"wuzi.ini";
  273. ::WritePrivateProfileString(keyS, AppS, StrS, file);
  274. }
  275. CString CMyDlg::getini(CString keyS ,CString AppS, CString def )
  276. {
  277. char b[255];
  278. CString c;
  279. CString file=CMyDlg::runpath+"wuzi.ini";
  280. GetPrivateProfileString(keyS, AppS, def, b, 255, file);
  281.  c.Format("%s",b);
  282. return c;  
  283. }