梭哈【源码】

[复制链接]

该用户从未签到

2380

主题

2433

帖子

9139

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
9139
QQ
跳转到指定楼层
楼主
发表于 2017-6-13 11:56:01 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

想要查看内容赶紧注册登陆吧!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x



#ifndef CARD_CONTROL_HEAD_FILE
#define CARD_CONTROL_HEAD_FILE

#pragma once

#include "Stdafx.h"

//////////////////////////////////////////////////////////////////////////
//宏定义

//属性定义
#define MAX_CARD_COUNT                5                                    //扑克数目
#define DEF_X_DISTANCE                17                                    //默认间距

//数值掩码
#define    CARD_MASK_COLOR                0xF0                                //花色掩码
#define    CARD_MASK_VALUE                0x0F                                //数值掩码

#define MAX_MOVE_Y                    40
#define MOVE_STEP_X                    5
#define MOVE_STEP_Y                    3

//////////////////////////////////////////////////////////////////////////
//枚举定义

//X 排列方式
enum enXCollocateMode
{
    enXLeft,                        //左对齐
    enXCenter,                        //中对齐
    enXRight,                        //右对齐
};

//Y 排列方式
enum enYCollocateMode
{
    enYTop,                            //上对齐
    enYCenter,                        //中对齐
    enYBottom,                        //下对齐
};

//
struct tagCardItem
{
    BYTE cbCardData;
    bool bDisplay;
};

//////////////////////////////////////////////////////////////////////////

//扑克控件
class CCardControl
{
    //状态变量
protected:
    bool                            m_bPositively;                        //响应标志
    bool                            m_bDisplayHead;                        //显示标志

    //动画变量
protected:
    bool                            m_bMoving;                            //
    INT                                m_nYStep;                            //
    INT                                m_nYMove;                            //
    BYTE                            m_cbShowIndex;                        //

    //扑克数据
protected:
    WORD                            m_wCardCount;                        //扑克数目
    tagCardItem                        m_CardItem[MAX_CARD_COUNT];            //扑克数据

    //间隔变量
protected:
    INT                                m_nXDistance;                        //横向间隔
    INT                                m_nXOrgDistance;                    //

    //位置变量
protected:
    CPoint                            m_BenchmarkPos;                        //基准位置
    enXCollocateMode                m_XCollocateMode;                    //显示模式
    enYCollocateMode                m_YCollocateMode;                    //显示模式

    //资源变量
protected:
    CSize                            m_CardSize;                            //扑克大小
    CBitImage                        m_ImageCard;                        //图片资源

    //函数定义
public:
    //构造函数
    CCardControl();
    //析构函数
    virtual ~CCardControl();

    //扑克控制
public:
    //扑克数目
    WORD GetCardCount() { return m_wCardCount; }
    //获取扑克
    WORD GetCardData(BYTE cbCardData[], WORD wBufferCount);
    //设置扑克
    bool SetCardData(const BYTE cbCardData[], WORD wCardCount);

    //状态查询
public:
    //获取大小
    CSize GetCardSize() { return m_CardSize; }
    //查询响应
    bool GetPositively() { return m_bPositively; }
    //查询显示
    bool GetDisplayHead() { return m_bDisplayHead; }

    //状态控制
public:
    //设置距离
    VOID SetXDistance(UINT nXDistance);
    //设置响应
    VOID SetPositively(bool bPositively);
    //设置显示
    VOID SetDisplayHead(bool bDisplayHead);
    //获取牌尾位置
    CPoint GetTailPos();
    //
    bool BeginMoveCard();
    //
    bool PlayMoveCard();
    //
    void SetDispalyCard( WORD wCardIndex,bool bDisplay );
   
    //控件控制
public:
    //基准位置
    VOID SetBenchmarkPos(INT nXPos, INT nYPos, enXCollocateMode XCollocateMode, enYCollocateMode YCollocateMode);

    //事件控制
public:
    //绘画扑克
    VOID DrawCardControl(CDC * pDC);
    //光标消息
    bool OnEventSetCursor(CPoint Point);
    //鼠标消息
    bool OnEventLeftMouseDown(CPoint Point);
    //
    bool OnEventLeftMouseUp(CPoint Point);

    //内部函数
private:
    //获取大小
    VOID GetControlSize(CSize & ControlSize);
    //索引切换
    WORD SwitchCardPoint(CPoint & MousePoint);
    //获取原点
    VOID GetOriginPoint(CPoint & OriginPoint);
};

//////////////////////////////////////////////////////////////////////////

#endif

分享到:  QQ好友和群QQ好友和群
收藏收藏
回复

使用道具 举报

快速回复高级模式
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表