资源简介
基于MFC的扫雷设计,对于那些刚刚接触mfc的初学者来说是很好的例子,值得一看!

代码片段和文件信息
#include “StdAfx.h“
#include “Resource.h“
#include “LandMine.h“
extern CPen Pen1Pen2Pen3Pen4Pen5Pen6Pen7;
void CMineButton::DrawItem(BOOL bFail)
{
RECT rect;
rect.left = m_nX;
rect.top = m_nY;
rect.right = m_nX+14;
rect.bottom = m_nY+14;
CClientDC ClientDC(m_pParent);
ClientDC.SetBkColor(RGB(198198198));
ClientDC.SelectStockobject(LTGRAY_BRUSH);
ClientDC.Selectobject(Pen6);
ClientDC.Rectangle(&rect);
if(m_nStatus==MS_OPEN || bFail && m_nStatus==MS_FLAG && m_nMineNum>=0)
{
switch(m_nMineNum)
{
case 1:
ClientDC.SetTextColor(RGB(01280));
break;
case 2:
ClientDC.SetTextColor(RGB(0128128));
break;
case 3:
ClientDC.SetTextColor(RGB(00128));
break;
case 4:
ClientDC.SetTextColor(RGB(01280));
break;
case 5:
ClientDC.SetTextColor(RGB(12800));
break;
case 6:
ClientDC.SetTextColor(RGB(02550));
break;
case 7:
ClientDC.SetTextColor(RGB(1281280));
break;
case 8:
ClientDC.SetTextColor(RGB(2550255));
break;
}
char cTmp[2]={00};
if(m_nMineNum>0)
{
cTmp[0]=m_nMineNum+‘0‘;
ClientDC.DrawText(cTmp-1&rectDT_CENTER|DT_VCENTER);
}
int nI;
ClientDC.Selectobject(Pen6);
ClientDC.SetBkColor(RGB(198198198));
ClientDC.SelectStockobject(NULL_BRUSH);
ClientDC.Rectangle(rect.leftrect.toprect.right+1rect.bottom+1);
for(nI=rect.left;nI ClientDC.SetPixel(nIrect.bottom+1RGB(000));
for(nI=rect.top;nI ClientDC.SetPixel(rect.right+1nIRGB(000));
if(bFail && m_nStatus==MS_FLAG && m_nMineNum!=-1)
{
ClientDC.Selectobject(Pen4);
ClientDC.MoveTo(rect.left+1rect.top+1);
ClientDC.LineTo(rect.right-1rect.bottom-1);
ClientDC.MoveTo(rect.right-1rect.top+1);
ClientDC.LineTo(rect.left+1rect.bottom-1);
}
return;
}
if(bFail==1 && m_nMineNum==-1)
{
CBitmap Bitmap;
if(m_nStatus!=MS_EXPLODE)
Bitmap.LoadBitmap(IDB_MINE);
else
Bitmap.LoadBitmap(IDB_MINEEXPLODE);
// draw the whole button
CDC memDC;
memDC.CreateCompatibleDC(&ClientDC);
CBitmap* pOld = memDC.Selectobject(&Bitmap);
if (pOld == NULL)
return; // destructors will clean up
ClientDC.BitBlt(rect.left rect.top1616
&memDC 0 0 SRCCOPY);
memDC.Selectobject(pOld);
int nI;
for(nI=rect.left;nI ClientDC.SetPixel(nIrect.bottom+1RGB(000));
for(nI=rect.top;nI ClientDC.SetPixel(rect.right+1nIRGB(000));
return;
}
if (m_nStatus == MS_QUEST)
{
ClientDC.SetTextColor(RGB(00128));
ClientDC.SetBkColor(RGB(198198198));
ClientDC.DrawText(“?“1&rectDT_CENTER|DT_VCENTER);
}
else
{
if(m_nStatus == MS_FLAG)
{
CBitmap Bitmap;
Bitmap.LoadBitmap(IDB_FLAG);
// draw the whole button
CDC memDC;
memDC.CreateCompatibleDC(&ClientDC);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 322 1999-02-13 19:27 扫雷VC++ MFC\bitmap1.bmp
文件 358 1999-02-05 22:38 扫雷VC++ MFC\bitmap2.bmp
文件 358 1999-02-15 22:50 扫雷VC++ MFC\bitmap3.bmp
文件 358 1999-02-05 22:38 扫雷VC++ MFC\bitmap4.bmp
文件 322 1999-02-13 19:26 扫雷VC++ MFC\bmp00001.bmp
文件 238 1999-02-13 20:23 扫雷VC++ MFC\bmp00002.bmp
文件 358 1999-02-18 20:38 扫雷VC++ MFC\bmp00003.bmp
文件 35779 2012-06-14 19:25 扫雷VC++ MFC\Debug\LandMine.obj
文件 135239 2012-06-14 19:25 扫雷VC++ MFC\Debug\Mine.exe
文件 270768 2012-06-14 19:25 扫雷VC++ MFC\Debug\Mine.ilk
文件 19056 2012-06-14 19:17 扫雷VC++ MFC\Debug\Mine.obj
文件 5479804 2012-06-14 19:17 扫雷VC++ MFC\Debug\Mine.pch
文件 336896 2012-06-14 19:17 扫雷VC++ MFC\Debug\Mine.pdb
文件 5508 2012-06-14 19:17 扫雷VC++ MFC\Debug\Mine.res
文件 82732 2012-06-14 19:17 扫雷VC++ MFC\Debug\MineDlg.obj
文件 105599 2012-06-14 19:17 扫雷VC++ MFC\Debug\StdAfx.obj
文件 205824 2012-06-14 19:25 扫雷VC++ MFC\Debug\vc60.idb
文件 356352 2012-06-14 19:17 扫雷VC++ MFC\Debug\vc60.pdb
文件 288 1999-02-07 14:57 扫雷VC++ MFC\GDIob
文件 1078 1999-02-05 22:38 扫雷VC++ MFC\icon1.ico
文件 17768 2012-06-14 19:17 扫雷VC++ MFC\LandMine.cpp
文件 2466 1999-02-18 20:10 扫雷VC++ MFC\LandMine.h
文件 322 1999-02-13 19:27 扫雷VC++ MFC\Mine\bitmap1.bmp
文件 358 1999-02-05 22:38 扫雷VC++ MFC\Mine\bitmap2.bmp
文件 358 1999-02-15 22:50 扫雷VC++ MFC\Mine\bitmap3.bmp
文件 358 1999-02-05 22:38 扫雷VC++ MFC\Mine\bitmap4.bmp
文件 322 1999-02-13 19:26 扫雷VC++ MFC\Mine\bmp00001.bmp
文件 238 1999-02-13 20:23 扫雷VC++ MFC\Mine\bmp00002.bmp
文件 358 1999-02-18 20:38 扫雷VC++ MFC\Mine\bmp00003.bmp
文件 57344 1999-03-26 21:37 扫雷VC++ MFC\Mine\Debug\Mine.exe
............此处省略51个文件信息
相关资源
- 基于MFC的TCP调试助手源码95706
- 基于mfc的多线程文件传输
- MFC数字钟(基于VC6.0)
- VC++MFC小游戏实例教程(实例)+MFC类库
- ChartCtrl控件库(可在VS2019中使用)
- 商品库存管理系统 C++ MFC
- mfc 调用redis
- MFC视频播放器源码(支持avi/wma/mp3等格
- mfc绘图大全(画直线、矩形、椭圆)
- MFC控件重绘
- hook,捕获所有案件,查找所有窗口,
- (学习)VS2010之MFC入门到精通教程
- MFC文档_视图_框架_模板结构体系深入
- 简单员工管理系统(适合初学MFC)
- MFC五子棋游戏
- MFC UDP编程
- MFC的异步网络通讯应用程序
- C++MFC模块讲解,黑发程序员课程整理
- 一个简单而强大的基于MFC的web server源
- 基于MFC的VC++仿QQ浏览器源码(雏形)
- MFCaccess.rar
- VC++MFC课程设计的学生成绩管理系统
- MFC 日历控件 万年历 Calendar自绘
- CrystalDiskInfo-HDD/SSD硬盘信息,SMART信息
- MFC自定义界面HUI,高效简单,含详细
- 仿射密码-Affine cipher
- c++MFC车牌自动识别定位,只能定位和
- mfc+sql 酒店客房管理系统
- 基于图割的图像分割OpenCV+MFC实现
- MFC绘制Bezier曲线B样条曲线曲线拟合
评论
共有 条评论