关于启动画面

转载 2007年09月19日 13:48:00
http://www.vckbase.com/document/viewdoc/?id=811

 

VC知识库上看到许多有关程序启动画面的程序而我觉得程序讲求的是"简而易懂",不需要太多的技巧,只要程序写的出来就好,于是我以另外一种简便的方式来设计程序启动画面同时在程序启动时播放音效,此程序的关键在于Sleep以及PlaySound这两个API函数与StrectBlt这个函数必须记得连结winmm.lib才可使用PlaySound函数,具体方法如下:
在CSplashWindow::CSplashWindow()建构函数当中加载位图以作为程序启动画面

CSplashWindow::CSplashWindow()
{
  m_Bitmap.LoadBitmap(MAKEINTRESOURCE(IDB_SPLASHWINDOW)); //Load Bitmap
  m_Bitmap.GetBitmap(&bmBitmap); //Get Bitmap Info
  /*Show Splash Window and Play SplashWindow.wav*/
  ::PlaySound("SplashWindow.wav", NULL, SND_ASYNC | SND_FILENAME);
}
接着是此程序的具体描述

步骤一.
建立三个类别,分别作为程序启动画面与主程序
class CSplashWindow : public CWnd //用于程序启动画面的SplashWindow类别
{
private:
  CDC MemDC;
  BITMAP bmBitmap;
  CBitmap m_Bitmap;
  CBitmap *Old_Bitmap;
public:
  CSplashWindow();
  ~CSplashWindow();

  void CreateSplash();
  afx_msg void OnPaint();
  DECLARE_MESSAGE_MAP()
};

class CMainWindow : public CFrameWnd //用于主程序的CMainWindow类别
{
public:
  CMainWindow();
  ~CMainWindow();
};

class CMainWindowApp : public CWinApp //用于程序初始化CMainWindowApp类别
{
public:
  CMainWindowApp();
  ~CMainWindowApp();
  virtual BOOL InitInstance();
};
步骤二.
在void CSplashWindow::OnPaint()当中使用StrectBlt复制位图到SplashWindow以当作启动画面
void CSplashWindow::OnPaint()
{
  CPaintDC dc(this);
  MemDC.CreateCompatibleDC(NULL); //Create Memory DC
  Old_Bitmap = MemDC.SelectObject(&m_Bitmap); //Select DC
  dc.StretchBlt(0,
                0,
                bmBitmap.bmWidth,
                bmBitmap.bmHeight, 
                &MemDC, 
                0,
                0,
                bmBitmap.bmWidth, 
                bmBitmap.bmHeight,
                SRCCOPY);

MemDC.SelectObject(Old_Bitmap); //Select Bitmap
}
步骤三.
在void CMainWindowApp::InitInstance()当中初始化启动画面的相关设定
BOOL CMainWindowApp::InitInstance()
{
  CSplashWindow *m_pSplashWindow = new CSplashWindow;
  m_pSplashWindow->CreateSplash();
  m_pSplashWindow->CenterWindow();
  m_pSplashWindow->ShowWindow(SW_SHOW);
  m_pSplashWindow->UpdateWindow();
  Sleep(3000); //Delay 3 Seconds
  m_pSplashWindow->DestroyWindow(); //Destroy Window
  delete m_pSplashWindow;

  m_pMainWnd = new CMainWindow;
  m_pMainWnd->ShowWindow(SW_SHOW);
  m_pMainWnd->UpdateWindow();
  return true;
}

CMainWindowApp MainWindowApp; 

Qt启动画面设置

[转载原文:] (http://www.cnblogs.com/tgyf/p/3854695.html) 学习Qt有一段时间了,发现一个小问题,网上关于Qt的资料或者总结性的学习及应用文章有点少。...
  • gorlly
  • gorlly
  • 2017年02月18日 23:17
  • 213

mfc 为程序增加启动画面

1、利用组件库中的Splash Screen组件生成Splash1.cpp 和Splash1.h 这两个文件(也就是基于框架类的应用程序添加启动画面的步骤)  (1)用Photoshop等制作启动画...
  • a2311minghan
  • a2311minghan
  • 2016年11月04日 15:11
  • 1608

VS2010对话框程序启动画面

1.项目-->类向导-->添加类-->MFC类,其他操作如图所示。 2.在CwzdSplash.h的public:下声明CBitmap m_bitmap; 3.在CwzdSplash.cpp下。 ...
  • weufengwangshi_
  • weufengwangshi_
  • 2017年01月11日 19:48
  • 261

为Android应用程序添加Splash启动画面

多数应用程序为了在启动时显示公司、产品或者开发者等相关信息,都会有一个Splash界面。在Splash界面等待的同时,也可以预加载数据、系统检测等操作。有两种方法可以实现”Splash启动画面“效果....
  • hpy1165331898
  • hpy1165331898
  • 2015年02月25日 15:40
  • 6578

IOS 制作启动画面

IOS 8 及之前: Launch Images Source方式, IOS8 及之后: 1, Launch Images Source方式 ; 2 , LaunchScreen.XIB方式...
  • wangzhilife
  • wangzhilife
  • 2013年09月24日 12:46
  • 26249

【实例】Qt创建程序启动画面

Qt创建程序启动画面 文档名称 Qt创建程序启动画面 创建时间 2012-9-10 修改时间 2012-9-10 ...
  • hbyzl
  • hbyzl
  • 2015年11月08日 20:23
  • 762

VS2013中使用MFC的时候添加启动画面

在学《VC++深入详解》这本书的时候,作者使用的是VC++6.0,然而我用的VS2013,很多地方都有了变化。 在9.8启动画面中,有很大的不同。百度之后,参考了网上一写代码(参考1,参考2),整理...
  • cjbct
  • cjbct
  • 2017年01月12日 11:56
  • 1491

VC++编程中为程序加入启动画面功能

如何为自己的程序加入启动画面   观察我们平常使用的软件,当我们双击软件的时候,会在主界面出现前,先行出现一个启动画面,由于前一阵子写了一个基于对话框的程序,亲自实验了下,今天就为大家简单的介绍下,...
  • u014028070
  • u014028070
  • 2014年11月22日 12:26
  • 1771

ionic制作的app中,开机画面显示的时间问题

在ionic制作的app中,开机画面的显示时间可以进行设置。笔者在做项目的时候,遇到客户希望把开机画面的显示时间延长的要求。在一番搜索之后,发现这个显示的时间是可以进行设置的。...
  • u011786439
  • u011786439
  • 2016年12月09日 14:18
  • 840

自学QT之实现程序启动画面

现在好多软件都有,尤其是大型软件,他们要加载的东西太多,因此需要的事件较长,而又不希望给用户产生成为好像没有响应的情况,因此也就需要程序启动画面来实现。 当然了,用widget要比这个丰富很多,不过...
  • xuancailinggan
  • xuancailinggan
  • 2016年01月28日 11:33
  • 1391
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于启动画面
举报原因:
原因补充:

(最多只允许输入30个字)