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

源代码运行效果图如下:

1. 概述

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

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

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类的支持。

时间: 2024-09-23 21:19:53

VC启动窗口画面制作方法研究的相关文章

win7通过cmd命令禁止文件启动时弹出警告窗口的方法

  现在电脑中都会安装很多的杀毒软件,对自己的电脑进行保护,以防一些文件对电脑进行恶性的破坏,这对于系统来说是件好事,可以有效保护我们的电脑,但是每一次打开一个未知文件的时候,都会弹出安全警告提示窗口,很多情况下该文件对于电脑并没有任何的威胁,每次都会跳出各种提示,让用户看的很心烦.那么怎么才能让安全警告提示窗口不再弹出呢?下面小编就以win7系统为例,教大家Win7如何使用命令禁止文件启动时弹出警告窗口. win7通过禁止文件启动时弹出警告窗口的方法 1.使用组合快捷键win键+r键打开运行窗

Java实现软件运行时启动信息窗口的方法_java

本文实例形式详述了Java实现一个程序运行时的启动窗口效果,如常用的Microsoft Word. Borland JBuilder 等,这样的窗口称为信息窗口.使用信息窗口的好处是可以使用户在等待软件主界面出现前的一段时间中得知软件运行状态.本例将演示如何来实现信息窗口,当打开程序时,信息窗口先显示,并在窗口上倒计时,直到"waiting 0"时,关闭该窗口,显示程序的主窗口. 该功能的主要实现方法如下: 一般来说,大多数的信息窗口是没有标题栏的,因此信息窗口不能由继承JFrame

在Linux终端中使用后台运行模式启动程序的方法

  我们有很多可以在Linux系统中打开一个终端窗口的方法,这取决于你的选择以及你的桌面环境. 如果是使用Ubuntu的话,你可以利用CTRL+ALT+T组合键打开终端.当然你也可以使用超级键(Windows键)打开Dash,搜索"TERM",然后点击"Term"图标来打开终端窗口. 对于其他的桌面环境来说,例如XFCE.KDE.LXDE.Cinnamon以及MATE,你可以在菜单中找到终端.有些环境会在停靠栏或者面板上面包含终端图标. 通常情况下,你可以在终端里面

win7系统设置永久关闭所有广告窗口的方法

  win7操作系统经常遇到打开网页弹出很多广告窗口,每次都要手动关闭,非常麻烦,而且还影响工作效率,有什么方法可以永久关闭所有的广告窗口吗?方法当然是有的,可通过百度管家来关闭所有的广告,下面大家一起来看看具体的设置方法吧. 具体方法如下: 1.打开电脑上的电脑管家,找到工具箱这一项.如下图所示,下面就是工具箱的截图.在工具箱里面查找一个名叫"拦截弹窗"的图标.点击打开; 2.打开弹窗拦截将会出现已经拦截的项目,如果不想拦截这些项,可以选择点击右上角取消拦截; 3.如果想添加新拦截项

宏基笔记本电脑U盘启动BIOS设置方法

  宏基笔记本的启动快捷键是:F12 1.开机并连续按下"F2"键进入bios设置,进入bios设置菜单后,通过←→方向键选择Main选项,在Main的主菜单下,将光标移至"F12 Boot Menu"选项并按回车键确认,在弹出的窗口中将"Disabled"默认选项更改为"Enabled". 2.完成以上的bios设置后,我们按F10键保存并自动退出重启电脑,此时我们将已经使用u大侠制作好启动盘的u盘插入到电脑,在重启的时候看

c++-VC++中窗口过程函数的wParam和lParam区别??

问题描述 VC++中窗口过程函数的wParam和lParam区别?? VC++中窗口过程函数的wParam和lParam区别??是什么希望解析 解决方案 我要告诉你的是方法,怎么去自学,而不是结论: 看到 https://msdn.microsoft.com/en-us/library/ms646280(VS.85).aspx 这里(google 搜索wm_keydown msdn第一个结果) wParam The virtual-key code of the nonsystem key. S

操作-VC++ 主窗口与子窗口ListCtrl传值(有文字有整数,列表形式)

问题描述 VC++ 主窗口与子窗口ListCtrl传值(有文字有整数,列表形式) 在主窗口(父窗口)类中定义一个数据成员,用于实时更新ListCtrl的内容,当执行添加或者删除操作时,对应着更新这个数据成员.执行查找操作时,将主窗口的这个数据成员的指针传递给查找窗口(子窗口)对应的类中(在查找类中定义一个对应类型的数据成员指针),那么取数据时直接用的主窗口的实时数据. 现在遇到相同的问题,有些不太明白,恳请大虾贴出上述方法的具体代码,谢谢啦! 解决方案 使用委托与事件,如果是使子窗体中的内容·随

VC6实现激活后台窗口最佳方法_C 语言

本文实例讲述了VC6实现激活后台窗口最佳方法.分享给大家供大家参考.具体实现方法如下: //激活窗口 SetWindowPos(&wndTopMost, 0, 0, 0, 0, SWP_NOSIZE|SWP_NOMOVE); SetWindowPos(&wndNoTopMost, 0, 0, 0, 0, SWP_NOSIZE|SWP_NOMOVE); HWND hCurWnd = NULL; DWORD lMyID; DWORD lCurID; hCurWnd = ::GetForegro

C#通过创建Windows服务启动程序的方法详解_C#教程

本文实例讲述了C#通过创建Windows服务启动程序的方法.分享给大家供大家参考,具体如下: 1. 新建一个Windows服务应用程序 创建项目-->Visual C# 左侧的"+"-->Windows -->Windows 服务(右侧模板)-->输入名称,确定创建项目 2. 设置Windows服务的属性(Windows服务里没有窗体,所以点击左侧设计器里空白的地方即可在右侧属性栏里看到属性) 这里属性是控制服务器是否可以停止,暂停,继续等等的操作.根据需要选择