📄 llkdlg.h
字号:
// llkDlg.h : header file
//
//{{AFX_INCLUDES()
//}}AFX_INCLUDES
#if !defined(AFX_LLKDLG_H__4EEEDB13_9564_48A1_9F0B_BF4FE6E68B77__INCLUDED_)
#define AFX_LLKDLG_H__4EEEDB13_9564_48A1_9F0B_BF4FE6E68B77__INCLUDED_
#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000
/////////////////////////////////////////////////////////////////////////////
// CLlkDlg dialog
#define DRAW_TOP 22
#define DRAW_LEFT -13
#define PIC_WIDTH 28
#define PIC_HEIGHT 34
#define BMP_WIDTH 26
#define BMP_HEIGHT 32
#define LINE_NUMBER 14
#define ROW_NUMBER 6
#define VIRTUAL_LINE 16
#define VIRTUAL_ROW 8
#define TILEX(y) y * BMP_WIDTH + DRAW_LEFT
#define TILEY(x) x * BMP_HEIGHT + DRAW_TOP
#define LS_NONE 0X00000000L
#define LS_PROMPT 0X00000100L
#define LS_SHUFFLE 0X00000200L
#define LS_SCORE 0X00000400L
#define LS_NOCLK 0X00000800L
#define LS_CLICK 0X00001000L
#define LS_DBLCLK 0X00002000L
#include "Reg.h"
typedef struct _CJL_PATH
{
int x;
int y;
_CJL_PATH *prev;
} CJL_PATH, *LPCJL_PATH;
class CLlkDlg : public CDialog
{
// Construction
public:
private:
float m_nUpper; //时间条最大位置
double m_nSpeed; //时间条速度
int m_nLevel; //关卡
int m_nLeft; //剩余牌数
int m_nTotal; //总牌数
int m_nShuffle; //洗牌次数
int m_nPrompt; //提示次数
int m_nScore; //分数
double m_nPos; //时间条当前位置
BOOL m_bTip_ok; //提示判断标识
BOOL m_bTip; //提示按扭标识
BOOL m_bWash; //洗牌按扭标识
BOOL m_bSel; //选项按扭标识
BOOL m_bBox; //对话框按扭标识
int m_nTpos; //重新提示标识
int m_nTpos_x1; //提示位图坐标
int m_nTpos_x2;
int m_nTpos_y1;
int m_nTpos_y2;
LPCJL_PATH PIC_PLACE[29]; //位图链表
int PIC_INDEX[28]; //位图标识
CString m_strTop; //事件消息
BOOL m_bPause; //暂停标识
BOOL m_bInGame; //游戏标识
BOOL m_bEffect; //音效标识
int CJL_MAP[ROW_NUMBER+2][LINE_NUMBER+2]; //位图数组
int m_nMin,m_nSec1,m_nSec2; //时间(分,秒)
int m_nPane_x,m_nPane_y,m_nMenu_y; //选择框的坐标,菜单选择标识
int m_nLanguage; //语言
BOOL m_bOvermusic; //结束音标识
BOOL m_bSele_ok; //菜单选择标识
BOOL m_bSecClk; //鼠标点击标识
BOOL m_bMessage; //消息框标识
BOOL m_bMouse; //鼠标使用标识
int m_nXIndex, m_nYIndex; //选中的位图坐标
CString m_strBox; //对话框消息
int m_nButton; //按扭选择标识
int m_nPass; //过关标识
long m_lPoint; //当前最高分
long m_lHighPoint; //最高分
int m_nTimer; //计时次数
int m_nCycle; //时间显示周期
private:
int GetLeft(); //取得剩余牌数
BOOL GetInGame(); //返回是否游戏
void UpdateShuffle(int nAddVal = -1); //修改洗牌次数
void UpdateScore(int nAddScore); //修改分数
void UpdatePrompt(int nAddVal = -1); //修改提示次数
void UpdatePos(); //修改时间条位置
void UpdateLeft(int nVal = -1); //修改剩余牌数
void UpdateClkState(int x, int y, int nNewVal); //修改位图显示
void StartGame(); //产生随机位图
void Shuffle(); //洗牌函数
void SetValue(int x, int y, int nNewValue); //设置坐标值
void SetPos(float nPos); //设置时间条当前位置
void SetPicIndex(int x, int y, int nIndex); //设置位图坐标
void SetPause(BOOL bPause = TRUE); //设置暂停
void SetLevel(int nNewLevel = 1); //设置关卡
void SetLeft(int nLeft = 42); //设置剩余牌数
void SetInGame(BOOL bInGame = TRUE); //设置是否游戏
void ReleasePlace(); //消去位图数组值
void ReleasePicPlace(int x, int y); //消去位图链表
void Prompt(); //提示函数
void MovePic(int x1, int y1, int x2, int y2); //位图移动
void ListPicPlace(); //设置位图
BOOL IsPicEmpty(); //是否消完
void InitMap(); //初始化位图
int GetValue(int x, int y); //得到坐标值
float GetUpper(); //得到时间条长度
int GetTotal(); //得到总牌数
double GetSpeed(); //得到时间条速度
int GetShuffle(); //得到洗牌次数
int GetScore(); //得到分数
int GetPrompt(); //得到提示次数
double GetPos(); //得到时间条当前位置
int GetPicIndex(int x, int y); //得到当前的位图标识
BOOL GetPause(); //得到是否暂停标识
int GetLevel(); //得到关卡
void AddPicPlace(int x,int y); //链表中增加位图
BOOL CheckConn(int x1,int y1,int x2,int y2); //判断是否可连
void InitEvent(); //初始化事件
BOOL CheckTwoDotConn(int x1, int y1,int x2,int y2);//判断连接是否为两个拐点
BOOL CheckOneDotConn(int x1,int y1,int x2,int y2); //判断连接是否为一个拐点
BOOL CheckLineConn(int x1,int y1,int x2,int y2); //判断连接是否为一条线
void ShowTop(CDC *pDC); //显示提示信息
void DrawTime(CDC *pDC,CString min,CString sec1,CString sec2); //绘时间
void TipButton(CDC *pDC); //绘提示按扭
void WashButton(CDC *pDC); //绘洗牌按扭
void SelButton(CDC *pDC); //绘选项按扭
void DrawSemiTransparentRect(CDC *pDstDC, CRect rtTran, COLORREF clrSrc);//半透明函数
void AddTime(); //增加时间函数
void WriteFile(); //记录最高分
void ReadFile(); //读取最高分
void OnOptionPrompt(); //提示
void OnOptionShuffle(); //洗牌
void GoToNextLevel(); //下一关
void OnGameAbandon(); //放弃游戏
void NextLEVEL(CDC *pDC); //绘对话框
public:
void DrawMenu(CDC *pDC); //绘菜单
void DrawMessage(CDC *pDC); //绘信息栏
void DrawMap(CDC *pDC); //绘游戏区域位图
void GetBmp(CBitmap *pDst); //获取内存位图
void DrawFace(CDC *pDC); //绘主位图
void InitSysVar(); //初始化变量
CLlkDlg(CWnd* pParent = NULL); // standard constructor
void CopyBackground(CDC *pDC, int nXSrc, int nYSrc, int nWidth,
int nHeight, CBitmap *pBmDst);//拷贝位图
// Dialog Data
//{{AFX_DATA(CLlkDlg)
enum { IDD = IDD_LLK_DIALOG };
//}}AFX_DATA
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CLlkDlg)
public:
virtual BOOL DestroyWindow();
virtual BOOL PreTranslateMessage(MSG* pMsg);
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
HICON m_hIcon;
// Generated message map functions
//{{AFX_MSG(CLlkDlg)
virtual void OnOK();
virtual BOOL OnInitDialog();
afx_msg void OnPaint();
afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
afx_msg void OnTimer(UINT nIDEvent);
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
//}}AFX_MSG
afx_msg BOOL OnEraseBkgnd(CDC* pDC);
DECLARE_MESSAGE_MAP()
};
//{{AFX_INSERT_LOCATION}}
// Microsoft eMbedded Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_LLKDLG_H__4EEEDB13_9564_48A1_9F0B_BF4FE6E68B77__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -