扑克牌card类
class card
{
//Attribuites
private:
enum CardColors{ heart=0,club=100,diamond=200,spade=300,MasterJoker=400,SlaveJoker=500}
m_CardColor; //enum牌花型
enum CardPoint{TWO=2,THREE,FOUR,FIVE,SIX,SEVEN,EIGHT,NINE,TEN,J,Q,K,A}
m_CardPoint; //enum牌点数
CPoint m_CardPos; //坐标
bool m_bIsShown; //是否显示
bool m_bIsFront; //是否是正面图//Constructions
public:
card(CardColors cardcolor,CardPoint point ,CPoint& pt,bool Front=true, bool Shown= false);
card(CardColors cardcolor,CardPoint point ,int leftX=0,int topY=0 , bool Front=true, bool Shown= false);
//Operations
public:
int GetPoint()const ; //获得牌的点数
int GetCardColor()const; //获得牌的花色 CPoint GetPostition() const; //获得card左上角点位置
int GetLeftX() const ;
int GetTopY() const ;
void SetPostition(const CPoint& pt); //设置card位置
void SetPostition(const int& LeftX,const int& TopY);
void SetSelected(bool SelectedState); //设置card选中状态属性
bool GetSelectedState()const; //获得选择状态属性
void ShowCardFront(CDC* pDC); //显示card正面
void ShowCardFront(CDC* pDC,const CPoint& pt);
void ShowCardFront(CDC* pDC,const int& LeftX,const int& TopY);
void ShowCardBack(CDC* pDC); //显示card背面
void ShowCardBack(CDC* pDC,const CPoint& pt);
void ShowCardBack(CDC* pDC,const int& LeftX,const int& TopY); bool GetShownState() const; //获得显示状态
bool GetFrontState()const ; //获得crad处于正反的状态//Destruction
public:
~card(void);};.cpp
void card::ShowCardFront(CDC* pDC) //显示card正面
{
int bmWidth=71,bmHeight=96;
CBitmap bmp;
CBitmap* pOldbmp;
CDC memDC; bmp.LoadBitmapW(m_CardColor+m_CardPoint);
memDC.CreateCompatibleDC(pDC);
pOldbmp=memDC.SelectObject(&bmp);
memDC.BitBlt(0,0,bmWidth,bmHeight,&memDC,0,0,SRCCOPY);
pDC->BitBlt(m_CardPos.x,m_CardPos.y,bmWidth,bmHeight,&memDC,0,0,SRCCOPY);
bmp.DeleteObject(); m_bIsFront=true;
}将他的ID 改成入 heart10 表示红桃10
然后定义资源文件
#define heart2 002
#define heart3 003
#define heart4 004
#define heart5 005
#define heart6 006
#define heart7 007
#define heart8 008
#define heart9 009
#define heart10 010
#define heartJ 011
#define heartQ 012
#define heartK 013
#define heartA 014010就代表heart10 就等于0+10 。。
bmp.LoadBitmapW(m_CardColor+m_CardPoint);来加载并显示他这样子出现了下面两个错误1>CVTRES : fatal error CVT1100: duplicate resource. type:BITMAP, name:112, language:0x0804
1>LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt请问:这样的连接位图方式可行吗。。
这个错误该怎么解决呢。。
高手请帮忙~
class card
{
//Attribuites
private:
enum CardColors{ heart=0,club=100,diamond=200,spade=300,MasterJoker=400,SlaveJoker=500}
m_CardColor; //enum牌花型
enum CardPoint{TWO=2,THREE,FOUR,FIVE,SIX,SEVEN,EIGHT,NINE,TEN,J,Q,K,A}
m_CardPoint; //enum牌点数
CPoint m_CardPos; //坐标
bool m_bIsShown; //是否显示
bool m_bIsFront; //是否是正面图//Constructions
public:
card(CardColors cardcolor,CardPoint point ,CPoint& pt,bool Front=true, bool Shown= false);
card(CardColors cardcolor,CardPoint point ,int leftX=0,int topY=0 , bool Front=true, bool Shown= false);
//Operations
public:
int GetPoint()const ; //获得牌的点数
int GetCardColor()const; //获得牌的花色 CPoint GetPostition() const; //获得card左上角点位置
int GetLeftX() const ;
int GetTopY() const ;
void SetPostition(const CPoint& pt); //设置card位置
void SetPostition(const int& LeftX,const int& TopY);
void SetSelected(bool SelectedState); //设置card选中状态属性
bool GetSelectedState()const; //获得选择状态属性
void ShowCardFront(CDC* pDC); //显示card正面
void ShowCardFront(CDC* pDC,const CPoint& pt);
void ShowCardFront(CDC* pDC,const int& LeftX,const int& TopY);
void ShowCardBack(CDC* pDC); //显示card背面
void ShowCardBack(CDC* pDC,const CPoint& pt);
void ShowCardBack(CDC* pDC,const int& LeftX,const int& TopY); bool GetShownState() const; //获得显示状态
bool GetFrontState()const ; //获得crad处于正反的状态//Destruction
public:
~card(void);};.cpp
void card::ShowCardFront(CDC* pDC) //显示card正面
{
int bmWidth=71,bmHeight=96;
CBitmap bmp;
CBitmap* pOldbmp;
CDC memDC; bmp.LoadBitmapW(m_CardColor+m_CardPoint);
memDC.CreateCompatibleDC(pDC);
pOldbmp=memDC.SelectObject(&bmp);
memDC.BitBlt(0,0,bmWidth,bmHeight,&memDC,0,0,SRCCOPY);
pDC->BitBlt(m_CardPos.x,m_CardPos.y,bmWidth,bmHeight,&memDC,0,0,SRCCOPY);
bmp.DeleteObject(); m_bIsFront=true;
}将他的ID 改成入 heart10 表示红桃10
然后定义资源文件
#define heart2 002
#define heart3 003
#define heart4 004
#define heart5 005
#define heart6 006
#define heart7 007
#define heart8 008
#define heart9 009
#define heart10 010
#define heartJ 011
#define heartQ 012
#define heartK 013
#define heartA 014010就代表heart10 就等于0+10 。。
bmp.LoadBitmapW(m_CardColor+m_CardPoint);来加载并显示他这样子出现了下面两个错误1>CVTRES : fatal error CVT1100: duplicate resource. type:BITMAP, name:112, language:0x0804
1>LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt请问:这样的连接位图方式可行吗。。
这个错误该怎么解决呢。。
高手请帮忙~
解决方案 »
- 请问哪有CMakeup的使用资料,谢谢!
- 紧急求救,有没有人懂滤波器的C程序哦????
- 请教,我写了一个动态库,我想在库中发送消息SendMessage(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)但是我不知道怎样获得
- 请帮忙回答一个很简单的问题,怎样打开一个整个的工程,要打开什么文件的,还有后缀
- 加入RICEEDIT控件,程序无法运行!
- 一个关于进程堆的问题,高手指教
- 请问数据库记录集有必要用完就关闭吗,为什么我使用后关闭会出现运行时错误,有的文章建议不要关闭记录集,这种观点是对的吗
- 有关远程视频文件播放的问题,up也有分
- 祝大家新年快乐,发大财!
- 求高手给一个用VC编写的简易计算器程序,有基本的四则运算就好,谢谢
- 关于图形上的点的采样问题
- 急:在MFC classwizzard里的class name列表中看不到已创建的类名
#define heart3 3
#define heart4 4
...
给定资源被指定一次以上。
检查 type:BITMAP, name:112, language:0x0804 资源是否有重复定义的。
他们和你分配的资源有冲突
建议尽量把自定义的资源id设的大一些,
比如花色从1000开始,
1010就代表heart10 就等于1000+10
public:
enum类型变量
在另一个头文件
定义对象
card m_card(heart,TEN);表示红桃10,
他报错说identifier 'heart'error C2061: syntax error : identifier 'diamond'
1>80percentDlg.cppcard(CardColors cardcolor,CardPoint point ,CPoint& pt,bool Front=true, bool Shown= false);?
这个是怎么回事
必须包含类前缀card::heart,card::diamond
谢谢
public:
card card1(card::heart,card::TEN);\80percentdlg.h(33) : error C2061: syntax error : identifier 'heart'里面加card.h了。。
为什么还是不行呢。
class card
{
public:
enum CardPoint{TWO=2,THREE,FOUR,FIVE,SIX,SEVEN,EIGHT,NINE,TEN,J,Q,K,A};
enum CardColors{ heart=1000,club=2000,diamond=3000,spade=4000,MasterJoker=5000,SlaveJoker=6000,cardBack=7000};
private:
CardColors m_CardColor; //enum牌花型
CardPoint m_CardPoint; //enum牌点数
这样引用
这样引用
card card1(card::CardColors::heart ,card::CardPoint::TEN); warning C4482: nonstandard extension used: enum 'card::CardColors' used in qualified name
error C2061: syntax error : identifier 'heart'
1>80percentDlg.cpp
warning C4482: nonstandard extension used: enum 'card::CardColors' used in qualified name
identifier 'heart'这样的错误
class card
{
public:
static enum CardPoint{TWO=2,THREE,FOUR,FIVE,SIX,SEVEN,EIGHT,NINE,TEN,J,Q,K,A};
static enum CardColors{ heart=1000,club=2000,diamond=3000,spade=4000,MasterJoker=5000,SlaveJoker=6000,cardBack=7000};
这样试试
你的card1是另外一个类C80percentDlg的成员变量
但语法上不能这样调用它的构造函数,必须在C80percentDlg的构造函数里构造它应该这样
public:
card card1; // 构造参数不在这里填写
C80percentDlg::C80percentDlg(...)
: CDialog(..)
, card1(card::heart,card::TEN) // 在这里调用构造函数
{
...
}象你上边的定义,编译器会以为你定义的是一个返回值为card的函数card1了,所以提示语法错误了
比如我给定义
card m_card[54];并且在构造的时候都初始化。怎样做好呢?3.如果我把他放在Dlg的构造函数里,构造的话会出现
'card' : no appropriate default constructor available
定义为static还好点。。直接card::heart更方便谢谢了