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

📄 atldiceobj.cpp

📁 控件的相用的实现利用MFC实现相拥的控件
💻 CPP
字号:
// AtlDiceObj.cpp : Implementation of CAtlDiceObj

#include "stdafx.h"
#include "AtlDice.h"
#include "AtlDiceObj.h"

/////////////////////////////////////////////////////////////////////////////
// CAtlDiceObj


/**********************************************
#define MAX_DIEFACES 6
HBITMAP m_dieBitmaps[MAX_DIEFACES];
unsigned short m_nFirstDieValue;
unsigned short m_nSecondDieValue;
***********************************************/
BOOL CAtlDiceObj::LoadBitmaps()
{

	BOOL bSuccess=TRUE;
	int nID=IDB_DICE1;
	switch(m_nDiceColor){
	case 0:
		nID=IDB_DICE1;
		break;
	case 1:
		nID=IDB_BLUEDICE1;
		break;
	case 2:
		nID=IDB_REDDICE1;
		break;
	}
	for(int i=0;i<MAX_DIEFACES;i++){
		DeleteObject(m_dieBitmaps[i]);
		m_dieBitmaps[i]=LoadBitmap(_Module.m_hInst,MAKEINTRESOURCE(nID+i));
		if(!m_dieBitmaps[i]){
			::MessageBox(NULL,
				"Failed to load bitmaps",
				NULL,
				MB_OK);
			bSuccess=FALSE;
		}
	}
	return bSuccess;
}

void CAtlDiceObj::ShowFirstDieFace(ATL_DRAWINFO &di)
{
	BITMAP bmpInfo;
	GetObject(m_dieBitmaps[m_nFirstDieValue-1],sizeof(bmpInfo),&bmpInfo);
	SIZE size;
	size.cx=bmpInfo.bmWidth;
	size.cy=bmpInfo.bmHeight;
	HDC hMemDC;
	hMemDC=CreateCompatibleDC(di.hdcDraw);
	HBITMAP hOldBitmap;
	HBITMAP hbm=m_dieBitmaps[m_nFirstDieValue-1];
	hOldBitmap=(HBITMAP)SelectObject(hMemDC,hbm);
	if(hOldBitmap==NULL) return;
	BitBlt(di.hdcDraw,
		di.prcBounds->left+1,
		di.prcBounds->top+1,
		size.cx,
		size.cy,
		hMemDC,0,
		0,
		SRCCOPY);
	SelectObject(di.hdcDraw,hOldBitmap);
	DeleteDC(hMemDC);
		
}

void CAtlDiceObj::ShowSecondDieFace(ATL_DRAWINFO &di)
{
	BITMAP bmpInfo;
	GetObject(m_dieBitmaps[m_nSecondDieValue-1],sizeof(bmpInfo),&bmpInfo);
	SIZE size;
	size.cx=bmpInfo.bmWidth;
	size.cy=bmpInfo.bmHeight;
	HDC hMemDC;
	hMemDC=CreateCompatibleDC(di.hdcDraw);
	HBITMAP hOldBitmap;
	HBITMAP hbm=m_dieBitmaps[m_nSecondDieValue-1];
	hOldBitmap=(HBITMAP)SelectObject(hMemDC,hbm);
	if(hOldBitmap==NULL) return;
	BitBlt(di.hdcDraw,
		di.prcBounds->left+size.cx+2,
		di.prcBounds->top+1,
		size.cx,
		size.cy,
		hMemDC,0,
		0,
		SRCCOPY);
	SelectObject(di.hdcDraw,hOldBitmap);
	DeleteDC(hMemDC);
}

STDMETHODIMP CAtlDiceObj::RollDice()
{
	// TODO: Add your implementation code here
	SetTimer(1,250);
	return S_OK;
}

STDMETHODIMP CAtlDiceObj::get_m_nDiceColor(short *pVal)
{
	// TODO: Add your implementation code here
	*pVal=m_nDiceColor;
	return S_OK;
}

STDMETHODIMP CAtlDiceObj::put_m_nDiceColor(short newVal)
{
	// TODO: Add your implementation code here
	if(newVal<3 && newVal>=0)
		m_nDiceColor=newVal;
	LoadBitmaps();
	FireViewChange();
	return S_OK;
}

STDMETHODIMP CAtlDiceObj::get_TimestoRoll(short *pVal)
{
	// TODO: Add your implementation code here
	*pVal=m_nTimestoRoll;
	return S_OK;
}

STDMETHODIMP CAtlDiceObj::put_TimestoRoll(short newVal)
{
	// TODO: Add your implementation code here
	m_nTimestoRoll=newVal;
	return S_OK;
}

⌨️ 快捷键说明

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