vc++ 2008mfc中如何添加启动界面

 我来答
那时虾米
推荐于2016-03-07 · TA获得超过4.4万个赞
知道大有可为答主
回答量:5054
采纳率:0%
帮助的人:3350万
展开全部
利用组件库中的Splash Screen组件生成Splash1.cpp 和Splash1.h 这两个文件(也就是基于框架类的应用程序添加启动画面的步骤)……
步骤/方法
  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);
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式