【VC开源代码栏目提醒】:文章导读:在新的一年中,各位网友都进入紧张的学习或是工作阶段。网学会员整理了VC开源代码-Card.cpp的相关内容供大家参考,祝大家在新的一年里工作和学习顺利!
// Card.cpp : implementation file
//
#include "stdafx.h"
#include "TwentyPoint.h"
#include "Card.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CCard
CCard::CCard(CImageList* pImgList)
{
m_pImgList = pImgList;
m_CardType = CT_Black;
m_nCardNumber = -1;
m_nCardID = -1;
m_nCardValue = -1;
m_bShowBK = FALSE;
}
CCard::~CCard()
{
}
BEGIN_MESSAGE_MAP(CCard, CStatic)
//{{AFX_MSG_MAP(CCard)
ON_WM_PAINT()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CCard message handlers
void CCard::SetImageList(CImageList *pImgList)
{
m_pImgList = pImgList;
}
void CCard::OnPaint()
{
CPaintDC dc(this); // device context for painting
if (m_nCardNumber != -1)
{
//根据牌号计算牌的类型
int nDiv = m_nCardNumber / CARD_TYPECOUNT;
int nMod = m_nCardNumber % CARD_TYPECOUNT;
if (nMod==0)
nDiv--;
CPoint pt(0, 0);
if (!m_bShowBK)
{
m_pImgList->Draw(&dc, nDiv, pt, ILD_NORMAL);
}
else
{
CBitmap bmp;
bmp.LoadBitmap(IDB_BK);
CDC memDC;
memDC.CreateCompatibleDC(&dc);
memDC.SelectObject(&bmp);
CRect clientRC;
GetClientRect(clientRC);
dc.BitBlt(0, 0, clientRC.Width(), clientRC.Height(), &memDC, 0, 0, SRCCOPY);
bmp.DeleteObject();
}
}
}
void CCard::SetCardNumber(int nNumber)
{
m_nCardNumber = nNumber;
//计算牌ID, 1...10, J, Q, K
m_nCardID = m_nCardNumber % CARD_TYPECOUNT;
if (m_nCardID == 0)
{
m_nCardID = CARD_TYPECOUNT;
}
//计算牌值1...10, "J Q K"的值均为1
m_nCardValue = m_nCardID > 10 ? 1 : m_nCardID;
OnPaint() ;
}
void CCard::ShowCardBK(BOOL bShowBK)
{
m_bShowBK = bShowBK;
OnPaint();
}
上一篇:
Car.cpp
下一篇:
汝康皮肤护理液医治烧伤的可行性和效果分析