VC/MFC如何添加启动界面

Posted arxive

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VC/MFC如何添加启动界面相关的知识,希望对你有一定的参考价值。

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如何添加启动界面的主要内容,如果未能解决你的问题,请参考以下文章

VC MFC界面怎么根据桌面分辨率自动设置显示窗口和控件的大小

vc MFC 用AfxBeginThread()启动不了线程

在用vc mfc 做一个项目的时候,要展示数据用啥界面,觉得用Datagrid的话好像~ 有点难看~~

请问在登录Linux时不能启动图形界面的情况下如何设置默认桌面环境

vc MFC中,知道一个起点,一条直线方程y=kx+b,怎么在界面上画出这条直线?

如何为程序添加splashScreen