1、 课程设计本 科 生 通 用 题目:编程类课程设计专业: 电子信息工程 班级: 姓名: 成绩: 导师签字:年 月 日1任务书 题目:电子相册程序设计参数: 功能参数:相片自动播放要求:利用 MFC 程序开发工具进 行电子相册程序 设计。 日程安排:12 月 8 日:确定课设题目、确定技术指标12 月 9 日:总体方案设计、具体设计12 月 10 日:项目实施、具体设计的改进12 月 11 日:项目完成、总结2目录第 1 章 总论31.1 程序设计目的31.2 程序设计内容31.3 所用软件3第 2 章 方案设计3第 3 章 具体设计过程5第 4 章 项目成果83第五章 总结9参考文献9第一章
2、总论1.1 程序设计目的使学生掌握编程的具体流程,能够独立完成设计一项程序应用。1.2 程序设计内容设计简单电子相册1.3 所用软件本次课程设计采用 VC+ 6.0 编写4第二章 方案设计1、电子相册的功能实际是相片的循环、间隔、连续显示,因此所编写的程序主要完成此功能。循环:首先,每个照片都有自己具体位置,所以只要把他们依次排好序列。间隔:其次,在屏幕框内照片间隔排放。连续显示:最后,让它们从我们想要的位置出现循环播放。2、电子相册的相框设计3、能够实现基本功能后考虑 添加新的功能第三章 具体设计1、打开软件2、新建工程在 Visual C+中使用 App Wizard 的工程向导创建基于对
3、话框的应用程序,工程名设置为 lu。3、添加控件并设置相框大小 4、编写程序(1) 照片的循环、间隔、连续显示及照片从左上角开始播出#include “stdafx.h“#include “resource.h“#include “ycc.h“#include “DemoDlg.h“#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endifclass CDrawBitmapprivate:HBITMAP m_bitmap;int m_bitmap_cx;int m_bitmap_
4、cy;public:CDrawBitmap() CDrawBitmap(TCHAR * PicturePath) LoadPicture(PicturePath); 5CDrawBitmap(WORD ResourceID) LoadResource(ResourceID); CDrawBitmap() :DeleteObject(m_bitmap);bool LoadPicture(TCHAR * PicturePath)m_bitmap=(HBITMAP)LoadImage(NULL, /应用程序实例PicturePath, /路径IMAGE_BITMAP,0,0,m_bitmapLR_L
5、OADFROMFILE|LR_CREATEDIBSECTION|LR_DEFAULTSIZE);if (!m_bitmap)return false;BITMAP bmp; GetObject(m_bitmap,sizeof(BITMAP),(LPSTR) m_bitmap_cx=bmp.bmWidth;m_bitmap_cy=bmp.bmHeight;return true;bool LoadResource(WORD ResourceID)m_bitmap=LoadBitmap(GetModuleHandle(NULL),MAKEINTRESOURCE (ResourceID) );if
6、(!m_bitmap)return false;BITMAP bmp; GetObject(m_bitmap,sizeof(BITMAP),(LPSTR) m_bitmap_cx=bmp.bmWidth;m_bitmap_cy=bmp.bmHeight;return true;6void Draw(HWND hWnd=NULL,int x=0,int y=0,int width=100,int height=100)HDC hScrDC=GetDC(hWnd); /创建屏幕 DCDraw(hScrDC,x,y,width,height);:ReleaseDC(hWnd,hScrDC) ; /释
7、放屏幕 DCvoid DrawBitmap(HBITMAP m_bitmap,HWND hWnd=NULL,int x=0,int y=0,int width=100,int height=100)HDC hScrDC=GetDC(hWnd); /创建屏幕 DCDrawBitmap(m_bitmap,hScrDC,x,y,width,height);:ReleaseDC(hWnd,hScrDC) ; /释放屏幕 DCCDrawBitmap g_bmp1(“4244123431.bmp“);CDrawBitmap g_bmp2(“plane.bmp“);CDrawBitmap g_bmp3(“1
8、1.bmp“);CDrawBitmap g_bmp4(“22.bmp“);CDrawBitmap g_bmp5(“33.bmp“);CDrawBitmap g_bmp6(“44.bmp“);CDrawBitmap g_bmp7(“55.bmp“);CDrawBitmap g_bmp8(“66.bmp“);void CDemoDlg:OnTimer(UINT nIDEvent) HDC hScrDC=:GetDC(m_hWnd); /创建屏幕 DCHDC hMemDC=CreateCompatibleDC(hScrDC); /创建内存 DCHBITMAP bitmap=:CreateCompat
9、ibleBitmap(hScrDC,600,600); /创建兼容位图HBITMAP OldBitmap=(HBITMAP):SelectObject(hMemDC,bitmap);/把位图选进内存 DCstatic int x=0,int y=0;x+=1;y+=1;if (x2400)x=0;if (y2400)y=0;g_bmp1.Draw(hMemDC,0,0,600,600); /画背景图片到内存 DCg_bmp2.DrawTransparent(hMemDC,x,y); /画移动的前进小图片g_bmp3.DrawTransparent(hMemDC,x-300,y-300);7g_
10、bmp4.DrawTransparent(hMemDC,x-600,y-600);g_bmp5.DrawTransparent(hMemDC,x-900,y-900);g_bmp6.DrawTransparent(hMemDC,x-1200,y-1200);g_bmp7.DrawTransparent(hMemDC,x-1500,y-1500);g_bmp8.DrawTransparent(hMemDC,x-1800,y-1800);(3)添加语句到 void CJsqDlg:OnPaint()相框设计CPaintDC dc(this); CRect rect; GetClientRect(
11、CDC dcMem; dcMem.CreateCompatibleDC( CBitmap bmpBackground; bmpBackground.LoadBitmap(IDB_BITMAP3); /IDB_BITMAP3 是你自己的图对应的 ID BITMAP bitmap; bmpBackground.GetBitmap( CBitmap *pbmpOld=dcMem.SelectObject( dc.StretchBlt(0,0,rect.Width(),rect.Height(), :SelectObject(hMemDC,OldBitmap); :DeleteObject(bitma
12、p);:DeleteDC(hMemDC) ; /删除内存 DC:ReleaseDC(m_hWnd,hScrDC) ; /释放屏幕 DCCDialog:OnTimer(nIDEvent);第四章 项目成果第一个81S 之后第二个依次第三个、第四个第五章总结9本次课程设计实现电子相册的设计内容及要求,并能实际演示电子相册的各项功能。心得体会:通过这次编程类课程设计,对编程有了更加深刻的理解,对手机里的应用软件的编程也有了自己的理解。在这次课程设计中,在实际编中也遇到了一些问题,但充分发扬了不抛弃、不放弃,艰苦奋斗的学习作风,具体问题具体分析,理论联系实际的学习方法解决了出现了的问题。参考文献1黄维通 Visual C+面向对象与可视化程序设计(第二版).北京:清华大学出版社20032李博轩等.Visual C+ 6.0 Internet 开发指南.北京:清华大学出版社,20003王华等.Visual C+编程实例与技巧.北京:机械工业出版社,19994胡哲源.掌握 Visual C+ MFC 程序设计与剖析.北京:清华大学出版社,20015郝蕴等.Visual C+ 6.0开发与实例.北京:电子工业出版社,1999