基于对话框的应用程序添加启动画面
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)
修改代码,实现启动画面的调用
①
添加
CCoverApp
的
InitInstance()
函数代码
#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);