当前位置:   article > 正文

VS2008 MFC 的components和controls中的组件Splash Screen的启动界面_visual studio 2008 component mfc

visual studio 2008 component mfc

还遗憾!我装的VisualStudio2008中并未找到这个Splash screen组件。

但是也不必遗憾,软件的一大特点就是可移植,软件攻城狮的特点就是站在巨人的肩膀上---其实就是一个字“抄”。

本文是完全参考孙鑫MFC编程第9课的VC6.0代码完成!如果有MFC编程经验和C++软件编程经验的同志,请直接跳到本文“2.参考代码”看代码即可,因为不难,就是拷贝代码而已!本文是对0基础讲解!

1.移植过程↓

首先在找一副图片,图片格式是*.bmp的。如果你没有bmp格式的,就用画图工具转换一下。

这里我就用仙女座启动界面。把图片放到你工程文件.../res/ 目录下,这个目录保存了很多工程资源。


接下来就是导入位图,在 资源视图 中任意文件处 右键->填添加资源 ,然后找到并选择刚才的bmp图片。


这个时候一个位图资源就添加了,


刚创建的位图资源ID默认应该都是IDB_BITMAP1,我这里讲位图的ID改为IDB_SPLASH.改的方法是右键点击IDB_BITMAP1->属性,找到ID栏,就可以修改。

接下来就是把“2.参考代码”中的Splash.cpp和Splash.h放到工程目录下,然后在“解决方案资源管理器”分别通过右键 添加->现有项 加入到“头文件”和“源文件”中。这个时候可以编译了,编译后会在类视图中显示CSplashWnd类,如不会显示,则重启下VS2008;(以上是直接使用参考代码,当然你也可以直接在类视图添加CSplashWnd类,父类选择CWnd,然后根据参考代码一步步完成类成员,这种比较麻烦点。)

再在CMainFrain::OnCreate中增加Splash的显示函数,即在框架构建显示前调用CSplashWnd中的ShowSplashScreen函数来显示启动位图。

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
        //...省略系统代码
CSplashWnd::ShowSplashScreen(this);

return 0;
}

当然这个时候启动位图还是不能显示的,因为ShowSplashScreen函数中有个判断

if (!c_bShowSplashWnd || c_pSplashWnd != NULL){....}

其中c_bShowSplashWnd 是静态BOOL类型变量,通过略读ShowSplashScreen函数体,可以知道只有c_bShowSplashWnd 为真才能继续执行,我们只要让它为TRUE就可以咯,甚至可以把它删除不做判断也行,因为是静态的成员所以无法在构造函数中初始化咯。

们通过查找可以发现c_bShowSplashWnd 是在void CSplashWnd::EnableSplashScreen(BOOL bEnable /*= TRUE*/)中被执行赋值的,而这个EnableSplashScreen函数的形参有个默认的参数为TRUE,所以我们只要在代码运行时,在合适的地方调用EnableSplashScreen函数即可,那么放在那里好呢,这里推荐放到App类的InitInstance()中,当然要记得把Splash.h头文件放到App类中。注意代码放置的位置。

BOO

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/309541
推荐阅读
相关标签
  

闽ICP备14008679号