资源简介
本程序设计的是一款翻牌类游戏,运行后会出现一个界面,当你鼠标去点击图片的时候,如果连续出现3个一样的图片,者图片显示出来,否则图片又重新盖上。
代码片段和文件信息
#include “Bitmap.h“
Bitmap::Bitmap(HDC hDC LPTSTR szFileName) : m_hBitmap(NULL) m_iWidth(0) m_iHeight(0)
{
LoadFromFile(hDC szFileName);
}
// Create a bitmap from a resource
Bitmap::Bitmap(HDC hDC UINT uiResID HINSTANCE hInstance): m_hBitmap(NULL) m_iWidth(0) m_iHeight(0)
{
Create(hDC uiResID hInstance);
}
Bitmap::Bitmap(HDC hDC int iWidth int iHeight COLORREF crColor): m_hBitmap(NULL) m_iWidth(0) m_iHeight(0)
{
Create(hDC iWidth iHeight crColor);
}
Bitmap::~Bitmap()
{
Free();
}
void Bitmap::Free()
{
if (m_hBitmap != NULL)
{
Deleteobject(m_hBitmap);
m_hBitmap = NULL;
}
}
BOOL Bitmap::LoadFromFile(HDC hDC LPTSTR szFileName)
{
Free();
HANDLE hFile = CreateFile(
szFileName
GENERIC_READ
FILE_SHARE_READ
NULL
OPEN_EXISTING
FILE_ATTRIBUTE_NORMAL
NULL
);
if(hFile == INVALID_HANDLE_VALUE)
return false;
BITMAPFILEHEADER bmfHeader;//位图文件头信息
DWORD dwBytesRead;
int bval = ReadFile(hFile &bmfHeadersizeof(BITMAPFILEHEADER)&dwBytesRead NULL);
if( (!bval) || (dwBytesRead!=sizeof(BITMAPFILEHEADER)) || (bmfHeader.bfType!=0x4D42))
{
CloseHandle(hFile);
Free();
return false;
}
BITMAPINFO bmi;
bval = ReadFile(hFile &bmi sizeof(BITMAPINFOHEADER) &dwBytesRead NULL);
if( (!bval) || (dwBytesRead!=sizeof(BITMAPINFOHEADER)))
{
CloseHandle(hFile);
Free();
return false;
}
m_iWidth = (int)bmi.bmiHeader.biWidth;
m_iHeight = (int)bmi.bmiHeader.biHeight;
m_hBitmap = (HBITMAP)LoadImage(NULL szFileName IMAGE_BITMAP 00LR_LOADFROMFILE|LR_CREATEDIBSECTION);
if(m_hBitmap == NULL)
return false;
return true;
}
BOOL Bitmap::Create(HDC hDC int iWidth int iHeight COLORREF crColor)
{
m_hBitmap = CreateCompatibleBitmap(hDC iWidth iHeight);
if (m_hBitmap == NULL)
return false;
m_iWidth = iWidth;
m_iHeight = iHeight;
HDC hMemDC = CreateCompatibleDC(hDC);
HBRUSH hBrush = CreateSolidBrush(crColor);
HBITMAP hOldBitmap = (HBITMAP)Selectobject(hMemDC m_hBitmap);
RECT rcBitmap = { 0 0 m_iWidth m_iHeight };
FillRect(hMemDC &rcBitmap hBrush);
Selectobject(hMemDC hOldBitmap);
DeleteDC(hMemDC);
Deleteobject(hBrush);
return true;
}
void Bitmap::Draw(HDC hDC int x int y)
{
if (m_hBitmap != NULL)
{
HDC hMemDC = CreateCompatibleDC(hDC);
HBITMAP hOldBitmap = (HBITMAP)Selectobject(hMemDC m_hBitmap);
BitBlt(hDC x y m_iWidth m_iHeight hMemDC 0 0 SRCCOPY);
Selectobject(hMemDC hOldBitmap);
DeleteDC(hMemDC);
}
}
void Bitmap::Draw(HDC hDC int x int y bool bTrans COLORREF crTransColor)
{
DrawPart(hDC x y 00GetWidth() GetHeight() bTrans crTransColor);
}
void Bitmap::DrawPart(HDC hDC int x int y int xPart int yPartint wPart int hPart bool bTrans COLORREF crTransColor)
{
if (m_hBitmap != NULL)
{
HDC hMemDC = CreateCompatibleDC(hDC);
HBITMAP hOldBitmap = (HBITMAP)Selectobject(hMemDC
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4040 2010-12-03 18:38 兰俊峰 015(翻牌)\兰俊峰\兰俊峰\兰俊峰.vcproj
文件 1423 2010-12-03 18:43 兰俊峰 015(翻牌)\兰俊峰\兰俊峰\兰俊峰.vcproj.lanjunfeng-PC.lanjunfeng.user
文件 4796 2010-08-17 21:37 兰俊峰 015(翻牌)\兰俊峰\兰俊峰\Bitmap.cpp
文件 1001 2010-08-17 21:37 兰俊峰 015(翻牌)\兰俊峰\兰俊峰\Bitmap.h
文件 7738 2010-12-03 18:43 兰俊峰 015(翻牌)\兰俊峰\兰俊峰\Brainiac.cpp
文件 6438 2010-12-03 18:40 兰俊峰 015(翻牌)\兰俊峰\兰俊峰\Debug\BuildLog.htm
文件 663 2010-12-03 18:38 兰俊峰 015(翻牌)\兰俊峰\兰俊峰\Debug\兰俊峰.exe.em
文件 404480 2010-12-03 18:40 兰俊峰 015(翻牌)\兰俊峰\兰俊峰\Debug\vc90.idb
文件 118784 2010-12-03 18:40 兰俊峰 015(翻牌)\兰俊峰\兰俊峰\Debug\vc90.pdb
文件 37742 2010-12-03 18:38 兰俊峰 015(翻牌)\兰俊峰\兰俊峰\Debug\Bitmap.obj
文件 728 2010-12-03 18:38 兰俊峰 015(翻牌)\兰俊峰\兰俊峰\Debug\兰俊峰.exe.em
文件 621 2010-12-03 18:40 兰俊峰 015(翻牌)\兰俊峰\兰俊峰\Debug\兰俊峰.exe.intermediate.manifest
文件 65 2010-12-03 18:40 兰俊峰 015(翻牌)\兰俊峰\兰俊峰\Debug\mt.dep
文件 29432 2010-12-03 18:40 兰俊峰 015(翻牌)\兰俊峰\兰俊峰\Debug\Brainiac.obj
文件 49208 2010-12-03 18:28 兰俊峰 015(翻牌)\兰俊峰\兰俊峰\Res\图片12.bmp
文件 49208 2010-12-03 18:25 兰俊峰 015(翻牌)\兰俊峰\兰俊峰\Res\图片1.bmp
文件 49208 2010-12-03 18:25 兰俊峰 015(翻牌)\兰俊峰\兰俊峰\Res\图片2.bmp
文件 49208 2010-12-03 18:26 兰俊峰 015(翻牌)\兰俊峰\兰俊峰\Res\图片3.bmp
文件 49208 2010-12-03 18:26 兰俊峰 015(翻牌)\兰俊峰\兰俊峰\Res\图片4.bmp
文件 49208 2010-12-03 18:26 兰俊峰 015(翻牌)\兰俊峰\兰俊峰\Res\图片5.bmp
文件 49208 2010-12-03 18:27 兰俊峰 015(翻牌)\兰俊峰\兰俊峰\Res\图片6.bmp
文件 49208 2010-12-03 18:27 兰俊峰 015(翻牌)\兰俊峰\兰俊峰\Res\图片7.bmp
文件 49208 2010-12-03 18:27 兰俊峰 015(翻牌)\兰俊峰\兰俊峰\Res\图片8.bmp
文件 49208 2010-12-03 18:28 兰俊峰 015(翻牌)\兰俊峰\兰俊峰\Res\图片9.bmp
文件 49208 2010-12-03 18:28 兰俊峰 015(翻牌)\兰俊峰\兰俊峰\Res\图片10.bmp
文件 49208 2010-12-03 18:28 兰俊峰 015(翻牌)\兰俊峰\兰俊峰\Res\图片11.bmp
文件 49206 2010-11-01 00:20 兰俊峰 015(翻牌)\兰俊峰\兰俊峰\Res\TileBlank.bmp
文件 7719936 2010-12-03 18:43 兰俊峰 015(翻牌)\兰俊峰\兰俊峰.ncb
文件 893 2010-12-03 18:34 兰俊峰 015(翻牌)\兰俊峰\兰俊峰.sln
..A..H. 8192 2010-12-03 18:43 兰俊峰 015(翻牌)\兰俊峰\兰俊峰.suo
............此处省略12个文件信息
- 上一篇:MFC 版俄罗斯方块
- 下一篇:MFC编写的图书管理系统,用到数据库SQL
评论
共有 条评论