2015-05 转自 香远益清原文VC/MFC如何添加启动界面

1、基于框架类的应用程序添加启动画面的步骤(利用组件库中的Splash Screen组件生成Splash1.cpp 和Splash1.h 这两个文件)
(1)用Photoshop等制作启动画面图像,保存为bmp格式。 
(2)用Appwizard建一个基于单文档的工程Splash。
(3)在资源中插入位图资源 
   打开VC++的资源编辑器,用鼠标右键单击Resources文件夹,选择Import命令,插入所制作的位图。如果位图超过256色,VC会弹出一个对话框,提示位图已经插入但不能在位图编辑器中显示,确定即可。将位图ID改为IDB_SPLASH。 
(4)添加Splash
Screen控件 
①选择菜单“project”/“Add To Project”/“Conponents and Controls”打开对话框,在列表框中双击“Visual C++ Conponents”选项,选择“Splash Screen”控件,然后单击“Insert”。 
②确认或修改类名和位图资源ID,单击OK确认。 
③编译、连接,漂亮的启动画面就显示出来了。 
(5)如果需要改变启动画面的停留时间,就修改SetTimer()函数的第二个参数,默认是750 毫秒。该函数所在位置: 
int CSplashWnd::OnCreate(LPCREATESTRUCT lpCreateStruct) 

... 
// Set a timer to destroy the splash screen. 
SetTimer(1, 2000, NULL); //修改第二个参数以调整画面停留时间 
return 0; 

这样就生成了Splash1.cpp 和Splash1.h 这两个文件

2、制作基于对话框的应用程序启动画面 
(1)建立基于对话框的工程Cover。

(2)文件移植 
①将Splash1.cpp 和Splash1.h 两个文件从步骤一建立的工程拷贝到Cover工程中,并且分别加入到Source Files和Header Files中; 
②导入位图文件到工程的资源中,改ID为IDB_SPLASH。

(3)修改代码,实现启动画面的调用 
①添加CCoverAppInitInstance() 函数代码 
#include "Splash1.h" //加在Cover.cpp文件的头文件调用部位 
BOOL CCoverApp::InitInstance() 

CCommandLineInfo cmdInfo; 
ParseCommandLine(cmdInfo); 
CSplashWnd::EnableSplashScreen(cmdInfo.m_bShowSplash); 
... 

②使用ClassWizard 添加OnCreate()函数到对话框类CCoverDlg中,并修改代码#include
"Splash1.h" //加在CoverDlg.cpp文件的头文件调用部位 
int CCoverDlg::OnCreate(LPCREATESTRUCT lpCreateStruct) 

... 
CSplashWnd::ShowSplashScreen(this);
//显示启动画面 
... 
}

3、使得启动画面消失后再显示主程序 
①在CCoverDlg类中添加WM­_TIMER消息响应函数

void
CCoverDlg::OnTimer(UINT nIDEvent) 

      // TODO: Add your message handler code here and/or
call default 
      this->MoveWindow(300,300,600,400); 
      CDialog::OnTimer(nIDEvent); 

② 在intCCoverDlg::OnCreate(LPCREATESTRUCT
lpCreateStruct)中添加如下代码: 
   CSplashWnd::ShowSplashScreen(this); 
this->MoveWindow(0,0,0,0); 
this->SetTimer(1,2000,NULL);//注意这个2000一点要等于步骤1中的2000 
return 0; 
③在void CCoverDlg::OnPaint()的末尾添加如下代码: 
this->KillTimer(1);

VC/MFC如何添加启动界面的更多相关文章

  1. iOS-APP中添加启动界面

    iOS,非常高兴的又回到了这个领域.纠结的就业之路...找工作的这段时间里,原本以为是iOS的游戏开发,却一直只有后台的offer,到Android,最后正式上班的时候却被告知调到了iOS开发,当然不 ...

  2. C运行时库(C Run-time Library)详解(提供的另一个最重要的功能是为应用程序添加启动函数。Visual C++对控制台程序默认使用单线程的静态链接库,而MFC中的CFile类已暗藏了多线程)

    一.什么是C运行时库 1)C运行时库就是 C run-time library,是 C 而非 C++ 语言世界的概念:取这个名字就是因为你的 C 程序运行时需要这些库中的函数. 2)C 语言是所谓的“ ...

  3. pyqt添加启动等待界面

    一.实验环境 1.Windows7x64_SP1 2.anaconda3.7 + python3.7(anaconda集成,不需单独安装) 3.pyinstaller3.5 #使用pyinstalle ...

  4. mfc为对话框添加启动画面

    新建CwzdSplash类 CwzdSplash.h #pragma once class CWzdSplash : public CWnd { DECLARE_DYNAMIC(CWzdSplash) ...

  5. VC在线程中操作界面

    http://blog.csdn.net/tingsking18/article/details/4399199 多线程是我们在编程中经常遇到的问题,线程执行完后往往要把执行的结果传给主线程,但是MF ...

  6. VC++ MFC类库基础(55讲全)

    视频保存在播音员 网盘中内容简介: 本部分是您成为VC++软件工程师必备的阶段,如果您没有任何基础,学习C++能快速让您进入编程领域,建议配合书籍<C++入门经典> 关键词: VC++.V ...

  7. VC++ MFC SDI/MDI Ribbon程序的停靠窗格被关闭后如何再次显示

    VC++ 创建基于MFC的SDI应用程序,Visual Studio风格的主界面如下图所示,在该主界面上的视图菜单下包含有队对各个可停靠窗格显示或隐藏的控制菜单项.而基于Ribbon风格的应用程序,所 ...

  8. 用VC++MFC做文本编辑器(单文档模式)

    用VC++MFC做文本编辑器(单文档模式) 原来做过一个用对话框实现的文本编辑器,其实用MFC模板里面的单文档模板也可以做,甚至更加方便,适合入门级的爱好者试试,现介绍方法如下: < xmlna ...

  9. VC++/MFC(VC6)开发技术精品学习资料下载汇总

    工欲善其事,必先利其器,VC开发MFC Windows程序,Visual C++或Visual Studio是必须的,恩,这里都给你总结好了,拿去吧:VC/MFC开发必备Visual C++.Visu ...

随机推荐

  1. LeetCode 1034. Coloring A Border

    原题链接在这里:https://leetcode.com/problems/coloring-a-border/ 题目: Given a 2-dimensional grid of integers, ...

  2. ES6异步操作Promise

    什么是Promise Promise是异步编程的一种解决方案,说白了就是一个构造函数,带有all,reject,resolve这几个方法,圆形上有then,catch等方法 Promise的特点 对象 ...

  3. [RN] React Native 下拉放大动画

    React Native 下拉放大动画 经测试,无法运行 https://www.jianshu.com/p/1c960ad75020

  4. SDSC 2018 day2解题报告

    目录 10.12考试总结 T1 最近公共祖先 错误原因 T2 即时战略 T3 欧皇 10.12考试总结 T1 最近公共祖先 预估得分: 100 实际得分: 20 最大得分: 100 用时:1小时10分 ...

  5. React - 组件:函数组件

    目录: . 组件名字首字母一定是大写的 . 返回一个jsx . jsx依赖React,所以组件内部需要引入React . 组件传参 a. 传递. <Component list={ arrDat ...

  6. of_property_read_string_index(转)

    https://biscuitos.github.io/blog/DTS-of_property_read_string_index/ 源码分析 of_property_read_string_ind ...

  7. Spring Boot 2.2.1 发布,一个有点坑的版本!

    上一篇:Spring Boot 2.2.0 正式发布,支持 JDK 13! Spring Boot 2.2.0 没发布多久,Spring Boot 2.2.1 又发布了,这是一个很有意思,又有点 &q ...

  8. pandas 获取不符合条件的dataframe

    pandas 获取不符合条件的dataframe 或将其过滤掉: df[df["col"].str.contains('this'|'that')==False] >> ...

  9. php form表单ajax上传图片方法

    form表单ajax上传图片方法 先引用jquery.form.js 前台代码<pre><form id="form1"> <input id=&qu ...

  10. 自定义Yaml解析器替换Properties文件

    自定义Yaml解析器替换Properties文件 项目结构 案例代码 配置类SpringConfiguration @Configuration @Import(JdbcCofnig.class) @ ...