MFC课程设计拼图游戏Word格式文档下载.docx

上传人:b****2 文档编号:15175488 上传时间:2022-10-28 格式:DOCX 页数:18 大小:93.55KB
下载 相关 举报
MFC课程设计拼图游戏Word格式文档下载.docx_第1页
第1页 / 共18页
MFC课程设计拼图游戏Word格式文档下载.docx_第2页
第2页 / 共18页
MFC课程设计拼图游戏Word格式文档下载.docx_第3页
第3页 / 共18页
MFC课程设计拼图游戏Word格式文档下载.docx_第4页
第4页 / 共18页
MFC课程设计拼图游戏Word格式文档下载.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

MFC课程设计拼图游戏Word格式文档下载.docx

《MFC课程设计拼图游戏Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《MFC课程设计拼图游戏Word格式文档下载.docx(18页珍藏版)》请在冰豆网上搜索。

MFC课程设计拼图游戏Word格式文档下载.docx

1.2设计目的

设计是对于mfc处理位图的巩固,及鼠标消息的应用,学习双缓冲处理技术、对话框的设计、在菜单栏工具栏添加功能按钮,获得系统资源,对mfc技术进行小规模综合应用。

2设计分析

2.1设计特点

程序默认窗口大小显示,动画自然,可以导入自己喜欢的图片,选择适当难度。

2.2主要头文件、源文件

1头文件:

pintu.hpintuDlg.hpicture.hspell.h

2源文件:

pintu.cpppintuDlg.cpppicture.cppspell.cpp

3项目代码

3.1头文件

#include"

resource.h"

//CMyApp:

classCMyApp:

publicCWinApp

{

public:

CMyApp();

DECLARE_MESSAGE_MAP()

}

picture.h"

classCMyDlg:

publicCDialog

CMyDlg(CWnd*pParent=NULL);

protected:

HICONm_hIcon;

intstep;

//移动的步数

BOOLbegin;

//游戏是否完成

CPicturepic;

intsize;

//方块数

BOOLborder;

//边框

voidShow(CDC*dc);

};

#include<

atlbase.h>

classCPicture{

CPicture();

~CPicture();

BOOLLoad(UINTnIDRes);

BOOLLoad(LPCTSTRpszPathName);

BOOLLoad(CFile&

file);

BOOLLoad(CArchive&

ar);

BOOLLoad(IStream*pstm);

BOOLRender(CDC*pDC,CRectrc=CRect(0,0,0,0),

LPCRECTprcMFBounds=NULL)const;

CSizeGetImageSize(CDC*pDC=NULL)const;

operatorIPicture*(){

returnm_spIPicture;

}

voidGetHIMETRICSize(OLE_XSIZE_HIMETRIC&

cx,OLE_YSIZE_HIMETRIC&

cy)const{

cx=cy=0;

const_cast<

CPicture*>

(this)->

m_hr=m_spIPicture->

get_Width(&

cx);

ASSERT(SUCCEEDED(m_hr));

get_Height(&

cy);

voidFree(){

if(m_spIPicture){

m_spIPicture.Release();

}

CComQIPtr<

IPicture>

m_spIPicture;

HRESULTm_hr;

classCSpell{

int*map;

intwidth,height;

//长宽

intblank;

//空白块的位置

#defineLENGTHwidth*height//总长度

CSpell(intw=3,inth=3,intbx=0,intby=0);

//构造函数,传入长宽和空白块位置

~CSpell();

intGetPic(intw,inth);

//获取个某个位置的图片

intMove(intw,inth);

//移动某个位置的图片

voidInit();

//初始化(生成随机位置)

voidReCreate(intw,inth,intbx=0,intby=0);

//重新构建大小

3.2源文件

stdafx.h"

pintu.h"

pintuDlg.h"

BOOLCMyApp:

:

InitInstance()

AfxEnableControlContainer();

#ifdef_AFXDLL

Enable3dControls();

#else

Enable3dControlsStatic();

#endif

CMyDlgdlg;

m_pMainWnd=&

dlg;

intnResponse=dlg.DoModal();

if(nResponse==IDOK)

{

//TODO:

Placecodeheretohandlewhenthedialogis

elseif(nResponse==IDCANCEL)

ReturnFALSE;

spell.h"

CSpellspell(3,3,2,2);

voidShowTranBmp(CDC*dc,CBitmap*bmp,COLORREFbgcolor,intx,inty,intw,inth,intbx,intby,intbw,intbh){

CDCmdc;

CDCtdc;

//图像

CDCddc;

//遮罩

CBitmaptbmp;

CBitmapdbmp;

CBitmap*ob;

CBitmap*tob;

CBitmap*dob;

mdc.CreateCompatibleDC(dc);

tdc.CreateCompatibleDC(dc);

ddc.CreateCompatibleDC(dc);

tbmp.CreateBitmap(bw,bh,1,32,NULL);

dbmp.CreateBitmap(bw,bh,1,1,NULL);

ob=mdc.SelectObject(bmp);

tob=tdc.SelectObject(&

tbmp);

dob=ddc.SelectObject(&

dbmp);

tdc.BitBlt(-bx,-by,bw+bx,bh+by,&

mdc,0,0,SRCCOPY);

tdc.SetBkColor(bgcolor);

ddc.BitBlt(0,0,bw,bh,&

tdc,0,0,SRCCOPY);

dc->

BitBlt(x,y,w,h,&

tdc,0,0,SRCINVERT);

ddc,0,0,SRCAND);

mdc.SelectObject(ob);

tdc.SelectObject(tob);

ddc.SelectObject(dob);

classCAboutDlg:

CAboutDlg();

voidCAboutDlg:

OnPaint()

CPaintDCdc(this);

//devicecontextforpainting

CBitmaplygame;

lygame.LoadBitmap(IDB_ABOUTIM);

ShowTranBmp(&

dc,&

lygame,RGB(0,0,0),8,8,307,92);

CMyDlg:

CMyDlg(CWnd*pParent/*=NULL*/)

:

CDialog(CMyDlg:

IDD,pParent)

m_hIcon=AfxGetApp()->

LoadIcon(IDR_MAINFRAME);

begin=TRUE;

step=0;

pic.Load(IDR_IMAGEB);

size=3;

border=TRUE;

BOOLCMyDlg:

OnInitDialog()

CDialog:

OnInitDialog();

ASSERT((IDM_ABOUTBOX&

0xFFF0)==IDM_ABOUTBOX);

ASSERT(IDM_ABOUTBOX<

0xF000);

SetIcon(m_hIcon,TRUE);

SetIcon(m_hIcon,FALSE);

CMenu*pMenu=this->

GetMenu();

pMenu->

CheckMenuItem(ID_MENU_3,MF_CHECKED);

CheckMenuItem(ID_MENU_BORDER,MF_CHECKED);

returnTRUE;

voidCMyDlg:

if(IsIconic())

SendMessage(WM_ICONERASEBKGND,(WPARAM)dc.GetSafeHdc(),0);

intcxIcon=GetSystemMetrics(SM_CXICON);

intcyIcon=GetSystemMetrics(SM_CYICON);

CRectrect;

GetClientRect(&

rect);

intx=(rect.Width()-cxIcon+1)/2;

inty=(rect.Height()-cyIcon+1)/2;

dc.DrawIcon(x,y,m_hIcon);

else

CDialog:

OnPaint();

Show(&

dc);

HCUR

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文 > 演讲主持

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1