当前位置: 首页 > 图文教程 > 开发语言 > VC++ > VC启动窗口画面制作方法研究

VC++
使用免费界面换肤软件 USkin
Cell插件在J2EE系统中的应用
采用MFC编制MVC模式之球体演示程序
托管资源全攻略
使用 MFC 编写打印程序
根据所选择的 TrueType 字体生成点阵数据
让你的软件界面更漂亮(四):不完美之菜单
VC界面的实现
让你的软件界面更漂亮(三)
分割窗口后如何限制分割条的移动范围
关于 CFileDialog 对话框多选功能的一个问题
让你的软件界面更漂亮(二)
对话框模板,RegexTest
让你的软件界面更漂亮(一)
利用窗口子类化隐藏系统图标
KVIP考勤系统
类似于FlashGet的悬浮框的制作
计算MDI子窗口数,仅显示文件夹的打开对话框
智能ABC窗口的实现
在打开文件对话框上实现图象预览

VC++ 中的 VC启动窗口画面制作方法研究


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 76 ::
收藏到网摘: n/a

VC启动窗口画面制作方法研究
作者:华南理工大学计算机系 刘正喜

下载本文示例源代码

源代码运行效果图如下:


1. 概述

前几天在设计软件时,选择VC作为开发工具,想做个启动画面,由于以前没有制作过,所以到网上搜了一通。网上有几篇相关文章,有两篇我觉得很有价值:一篇是关于 为方便显示图像制作的CPicture类的文章,原文是由Paul DiLascia写的解答,很有影响力;还有一篇是关于制作真彩启动画面的文章,不过其限制对位图操作,而不支持jpg, gif,而且使用繁琐,基本上是对Splash Screen组件导入后的代码进行简单修改。琢磨了好大一会儿才学会使用。

有感于现有材料使用起来不方便,随进行了整合和再封装处理,设计了CSplashWnd类,使用起来非常简便。下面就把我设计的类介绍给大家。有什么不当或错误之处,敬请指正。我的Email: [email protected]

2.CSplashWnd功能

能够显示真彩启动画面,能在画面上显示初始化文字信息,支持jpg,gif,bmp图像文件。

3. CSplashWnd的设计

3.1 用户关心的接口

用户使用的公开接口:

public: CSplashWnd(LPCTSTR lpszFileName);// 指定作为启动画面的图像文件,并装载BOOL ShowSplash();//显示画面void CloseSplash();//关闭画面void ShowText(LPCTSTR pCh);在显示的图像上中间位置处显示初始化信息文字
3.2 其他接口
系统使用的公开接口:(用户不关心)
~CSplashWnd()void PostNcDestroy();
私有接口:(用户不关心)
BOOL Create(CWnd* pParentWnd = NULL);int OnCreate(LPCREATESTRUCT lpCreateStruct);void OnPaint();
3.3 数据设计(用户不关心)
BOOL fileIsValid//指示CPicture pic;//用于对图像文件进行操作的类int width,height;
3.4 限制

√ 不允许继承。
√ 为简化接口,只提供从文件装载图像

3.5 需要的头文件

StdAfx.h, VC++6.0自动生成的对MFC的支持,不同的工程选项会产生不同的StdAfx.h。

afxwin.h 支持CRect类

atlbase.h 提供对IPicture (COM类)的支持。

afxpriv2.h提供对CArchiveStream类的支持。

4.类的健壮性和可调试性设计

图像文件是否有效?

需要检查文件是否有效,当装载图像文件失败时,fileIsValid为false,否则为true。这样在调用ShowSplash时将什么都不做,返回false。这时,用户应检查图像文件是否存在,文件名称拼写是否正确。

5. 用法

√ 将CSplashWnd类加入项目中

√ 在使用CSplashWnd类的文件中#include “Splash.h”

√ 在合适的位置定义一个CSplashWnd对象

√ 在想显示启动画面的地方调用ShowSplash显示于屏幕上

√ 如果想在启动画面上显示一些初始化或其他提示信息,调用ShowText。

√ 在你想关闭启动画面的地方

在你的App类InitInstance函数中,显示主窗口之前使用,进行上述步骤,这是最典型的用法,如下面代码所示。

BOOL CTsApp::InitInstance(){ AfxEnableControlContainer(); #ifdef _AFXDLL Enable3dControls(); // Call this when using MFC in a shared DLL#else Enable3dControlsStatic(); // Call this when linking to MFC statically#endif SetRegistryKey(_T("Local AppWizard-Generated Applications")); LoadStdProfileSettings(); // Load standard INI file options (including MRU) CSingleDocTemplate* pDocTemplate; pDocTemplate = new CSingleDocTemplate( IDR_MAINFRAME, R