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

📄 gamecard.h

📁 这是用Windows编写的
💻 H
字号:
#pragma once

#include "StdAfx.h"

//声明名字空间
//using namespace AFC::AFCImage;

//消息定义
#define	IDM_LEFT_HITCARD			WM_USER+110						//左击扑克
#define	IDM_RIGHT_HITCARD			WM_USER+111						//右击扑克

//操作掩码
#define	UG_HUA_MASK					0xF0							//花色掩码
#define	UG_VALUE_MASK				0x0F							//数字掩码

//扑克控制类
class CUpGradeGameCard : public CWnd
{
	//枚举定义
public:
	enum XShowMode { SWX_MODE_LEFT, SWX_MODE_CENTER, SWX_MODE_RIGHT };
	enum YShowMode { SWY_MODE_TOP,  SWY_MODE_CENTER, SWY_MODE_BOTTOM };


	//变量定义
protected:
	int								m_iCardHight;					//扑克高度
	int								m_iCardWidth;					//扑克宽度
	int								m_iCardHSpace;					//横扑克间隔
	int								m_iCardVSpace;					//竖扑克间隔
	int								m_iCardUpSpace;					//跳起高度
	CRgn							m_CardViewRgn;					//扑克区域
	CWnd							* m_pHandleWnd;					//处理窗口

	//信息变量
protected:
	bool							m_bShowCard;					//显示扑克
	bool							m_bHorzLook;					//是否横放
	bool							m_bUseMouse;					//响应鼠标
	BYTE							m_bHotHitCard;					//焦点扑克
	BYTE							m_bCardCount;					//扑克数目
	CPoint							m_PtBasePoint;					//基准坐标
	XShowMode						m_XShowMode;					//显示模式
	YShowMode						m_YShowMode;					//显示模式
	CByteArray						m_CardArray;					//扑克数组
	CByteArray						m_CardUpArray;					//扑克数组
	CPoint                          m_BeginPoint;
	CPoint                          m_EndPoint;
	CPoint                          m_lastPoint;
public:
	bool                            m_MoveFlag;
	//图片变量
protected:
	CGameImage						m_CardPic[2];					//扑克控件
	//CGameImage						TML_NUM;//图形数字
	//函数定义
public:
	//构造函数
	CUpGradeGameCard();
	//析构函数
	virtual ~CUpGradeGameCard();
	bool Create(LPCSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext= NULL, bool bBigImage= true);

	//设置函数
public:
	//初始化函数
	bool InitGameCard(CWnd * pHandleWnd);
	//设置扑克参数
	//void SetCardParameter(int iHSpace, int iVSpace, int iUpSpace);
	//设置基准点函数
	void SetBasePoint(CPoint & BasePoint, XShowMode XShowMode, YShowMode YShowMode);
	//设置显示扑克
	void SetShowCard(bool bShow);
	//设置使用鼠标
	void SetUseMouse(bool bUserMouse);
	//设置显示方式
	void SetLookMode(bool bHorzLook);
 ////gai: 设置card 的大小
//void SetCardSize(int width, int height);

	//功能函数
public:
	//设置扑克
	bool SetCard(BYTE bCardList[], BYTE bUpList[], BYTE bCardCount);
	//删除扑克
		void RemoveCard(BYTE bCardList[], int count);
	//删除升起的扑克
		BYTE RemoveUpCard();
		//删除空的扑克
		void Tml_DelNull();
	//删除所有的扑克
	void Tml_DelAll();
	//下放所有升起的扑克
	void Tml_Down();
	//上升选择的扑克
	void Tml_UpSel(BYTE iSelCard[],int iSelCardCount);

	//获取升起的扑克
	BYTE GetUpCard(BYTE bCardList[]);
	//获取扑克信息
	BYTE GetCard(BYTE bCardList[], BYTE bUpList[]);

	//内联函数
public:
	//获取扑克数目
	BYTE GetCardCount() { return m_bCardCount; }	
	//获取显示扑克
	bool GetShowCard() { return m_bShowCard; }
	//获取扑克数值
	BYTE GetCardValoe(BYTE bCard) 
	{ 
		//return (bCard&UG_VALUE_MASK);
		BYTE bkk=(bCard&UG_VALUE_MASK)+1;
		if (bkk==14) bkk=1;
		return bkk; 
	}
	//获取扑克花色
	BYTE GetHuaKind(BYTE bCard) { return bCard&UG_HUA_MASK; }
	//获取扑克位置
	BYTE GetCardXPos(BYTE bCard) { return GetCardValoe(bCard)-1; };
	//获取扑克位置
	BYTE GetCardYPos(BYTE bCard) { return GetHuaKind(bCard)>>4; };

	//内部函数
protected:
	//按键测试
	BYTE HitCardTest(CPoint & Point);
	//调整窗口位置
	void FixCardControl();
	//获取大小函数
	bool GetCardSize(CSize & Size);

	//消息函数
protected:
	//建立消息
	afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
	//重画函数
	afx_msg void OnPaint();
	//鼠标消息
	afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
	//鼠标消息
	afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
	//鼠标消息
	afx_msg void OnRButtonUp(UINT nFlags, CPoint point);
	//光标消息
	afx_msg BOOL OnSetCursor(CWnd * pWnd, UINT nHitTest, UINT message);
	afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);
	afx_msg void OnMouseMove(UINT nFlags, CPoint point);

	DECLARE_MESSAGE_MAP()
private:
	// 鼠标拖动选择
	void MoveSelect(void);
	void WriteLine(CPoint beginPoint, CPoint endPoint, CDC * pDC);
};

⌨️ 快捷键说明

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