源代码运行效果图如下:
1. 概述
前几天在设计软件时,选择VC作为开发工具,想做个启动画面,由于以前没有制作过,所以到网上搜了一通。网上有几篇相关文章,有两篇我觉得很有价值:一篇是关于 为方便显示图像制作的CPicture类的文章,原文是由Paul DiLascia写的解答,很有影响力;还有一篇是关于制作真彩启动画面的文章,不过其限制对位图操作,而不支持jpg, gif,而且使用繁琐,基本上是对Splash Screen组件导入后的代码进行简单修改。琢磨了好大一会儿才学会使用。
有感于现有材料使用起来不方便,随进行了整合和再封装处理,设计了CSplashWnd类,使用起来非常简便。下面就把我设计的类介绍给大家。有什么不当或错误之处,敬请指正。我的Email: zhengxiliu@sohu.com
2.CSplashWnd功能
能够显示真彩启动画面,能在画面上显示初始化文字信息,支持jpg,gif,bmp图像文件。
3. CSplashWnd的设计
3.1 用户关心的接口
用户使用的公开接口:
public:
3.2 其他接口
CSplashWnd(LPCTSTR lpszFileName);// 指定作为启动画面的图像文件,并装载
BOOL ShowSplash();//显示画面
void CloseSplash();//关闭画面
void ShowText(LPCTSTR pCh);在显示的图像上中间位置处显示初始化信息文字
系统使用的公开接口:(用户不关心)~CSplashWnd()
私有接口:(用户不关心)
void PostNcDestroy();BOOL Create(CWnd* pParentWnd = NULL);
3.3 数据设计(用户不关心)
int OnCreate(LPCREATESTRUCT lpCreateStruct);
void OnPaint();BOOL fileIsValid//指示
3.4 限制
CPicture pic;//用于对图像文件进行操作的类
int width,height;
√ 不允许继承。
√ 为简化接口,只提供从文件装载图像
3.5 需要的头文件
StdAfx.h, VC++6.0自动生成的对MFC的支持,不同的工程选项会产生不同的StdAfx.h。
afxwin.h 支持CRect类
atlbase.h 提供对IPicture (COM类)的支持。
afxpriv2.h提供对CArchiveStream类的支持。