⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 minedlg.h

📁 自己编写的一个简单的扫雷程序,主框架是基于对话框的
💻 H
字号:
// MineDlg.h : header file
//

#if !defined(AFX_MINEDLG_H__FC953A4E_A83A_47EF_960E_8E61B7117341__INCLUDED_)
#define AFX_MINEDLG_H__FC953A4E_A83A_47EF_960E_8E61B7117341__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "LED.h"  //必须包含了LED类的头函数,以下才能识别CLED m_MineCounter

/////////////////////////////////////////////////////////////////////////////
// CMineDlg dialog

#define MINE 111 //雷
#define EMPTY 100 //空格

#define UNOPENED 10 //未揭示
#define OPENED 11 //已揭示
#define WRONG 111 //出错
#define FLAG 112 //红旗标志
#define QUESTION 113 //问号标志

////////////////////////////////////////////////////////////////
#define BARHEIGHT 30 //固定的显示栏高度
#define DEFAULT_WIDTH 9 //默认宽度
#define DEFAULT_HEIGHT 9  //默认高度
#define DEFAULT_MINENUM 10 //默认雷数
#define BUTTONWIDE 24 //主控件宽 
#define BUTTONHEIGHT 24 //主控件高

/*class STATE
{
public:
	BOOL IsMine;//是否为雷
	BOOL IsNull;//是否为空
	int  Number;//数字(周围雷数)
	BOOL IsOpened;//是否揭示
	BOOL IsWrong;//是否出错
	BOOL IsQuestion;//是否为问号
	BOOL IsFlag;//是否为红旗
	//构造函数
	STATE()
	{
		IsMine = FALSE;
		IsNull = FALSE;
		Number = 0;
		IsOpened = FALSE;
		IsWrong = FALSE;
		IsQuestion = FALSE;
		IsFlag = FALSE;
	}
};*/

////////////////////////////////////////////////////////////////////////
class CMineDlg : public CDialog
{
// Construction
public:
	BOOL AutoFinish();
	void PaintControlBar();
	void InitControlBar();
	void ChainReaction(int,int);
	void SetMine();
	void PaintClient();
	void InitWindow();
	void InitVariables();
	CMineDlg(CWnd* pParent = NULL);	// standard constructor

// Dialog Data
	//{{AFX_DATA(CMineDlg)
	enum { IDD = IDD_MINE_DIALOG };
		// NOTE: the ClassWizard will add data members here
	//}}AFX_DATA

	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CMineDlg)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);	// DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
protected:
	HICON m_hIcon;

	// Generated message map functions
	//{{AFX_MSG(CMineDlg)
	virtual BOOL OnInitDialog();
	afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
	afx_msg void OnPaint();
	afx_msg HCURSOR OnQueryDragIcon();
	afx_msg void OnAbout();
	afx_msg void OnFileLow();
	afx_msg void OnFileMid();
	afx_msg void OnFileHigh();
	afx_msg void OnFileExit();
	afx_msg void OnClose();
	afx_msg void OnFileBegin();
	afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
	afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
	afx_msg void OnMouseMove(UINT nFlags, CPoint point);
	afx_msg void OnRButtonDown(UINT nFlags, CPoint point);
	afx_msg void OnRButtonUp(UINT nFlags, CPoint point);
	afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);
	afx_msg void OnTimer(UINT nIDEvent);
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
protected:
	int m_ClientWidth;  //客户区宽度
	int m_ClientHeight;  //客户区高度
	int m_BarHeight;  //显示区高度
	int m_iFrameWidth; //非客户区宽度
	int m_iFrameHeight; //非客户区高度
	CRect m_MineRect; //雷区

	int m_WideNum; //行数	
	int m_HighNum; //列数 
	int m_MineNum;  //雷数
	int m_MineLeft; //剩余雷数
	CArray<int,int> m_SetState; //设置状态 
	CArray<int,int> m_OpenState; //揭示状态

	BOOL IsGameFinished;//游戏结束标志
	BOOL m_FirstBlick;

	CBitmapButton* m_MainButton; //主控件指针
	CLED* m_MineCounter;
	CLED* m_Timer;
};

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_MINEDLG_H__FC953A4E_A83A_47EF_960E_8E61B7117341__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -