vc中为应用程序制作启动画面的简单方法

原创 2004年07月23日 22:03:00

Make a Splash Window for your application

                                                            By  kv300  040723

step 1. first, add the following two files SplashWindow.cpp and SplashWindow.h to your project

/* SplashWindow.cpp */

#include "StdAfx.h"
#include "resource.h"
#include "SplashWindow.h"
#include

BEGIN_MESSAGE_MAP(CSplashWindow, CWnd)
ON_WM_PAINT()
END_MESSAGE_MAP()

CSplashWindow::CSplashWindow()
{
 m_Bitmap.LoadBitmap(MAKEINTRESOURCE(IDB_SPLASHWINDOW)); //Load Bitmap, must add a bmp to your resource with name IDB_SPLASHWINDOW!!!
 m_Bitmap.GetBitmap(&bmBitmap);         //Get Bitmap Info
 
 /*Play SplashWindow.wav*/
 ::PlaySound("SplashWindow.wav", NULL, SND_ASYNC | SND_FILENAME); // if you need sound effect, add a valid wav file named SplashWindow.wav , and if not, comment this line
}

CSplashWindow::~CSplashWindow()
{
}

void CSplashWindow::Show()
{
 CSplashWindow *m_pSplashWindow = new CSplashWindow;
 m_pSplashWindow->CreateSplash();
 m_pSplashWindow->CenterWindow();
 m_pSplashWindow->ShowWindow(SW_SHOW);
 m_pSplashWindow->UpdateWindow();
 
 Sleep(3000); //Delay 3 Seconds, you can modify it as your idea
 m_pSplashWindow->DestroyWindow(); //Destroy Splash Window
 delete m_pSplashWindow;
}

void CSplashWindow::CreateSplash()
{
 //Create Splash Window
 CreateEx(0,
  AfxRegisterWndClass(
  0,
  AfxGetApp()->LoadStandardCursor(IDC_UPARROW)),
  "Welcome",
  WS_POPUP,
  0,
  0,
  bmBitmap.bmWidth,  //Bitmap Width = Splash Window Width
  bmBitmap.bmHeight, //Bitmap Height = Splash Window Height
  NULL,
  NULL,
  NULL);
  
}


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
}

/* SplashWindow.h */
#ifndef _SPLASH_WONDOW_
#define _SPLASH_WINDOW_

#pragma comment(lib, "winmm.lib") // needed for PlaySound() method

class CSplashWindow : public CWnd
{
private:
 CDC MemDC;
 BITMAP bmBitmap;
 CBitmap m_Bitmap;
 CBitmap* Old_Bitmap;
 CSplashWindow *m_pSplash;

 void CreateSplash();

public:
 CSplashWindow();
 ~CSplashWindow();
 
 static void Show();
 
 afx_msg void OnPaint();
 DECLARE_MESSAGE_MAP()
};

#endif //~_SPLASH_WINDOW_


step 2: Show splash screen in CWinApp::InitInstance()

#include "SplashWindow.h"

.....
// Parse command line for standard shell commands, DDE, file open
 CCommandLineInfo cmdInfo;
 ParseCommandLine(cmdInfo);
 
 CSplashWindow::Show(); //show your SplashWindow here
.....

step 3: bulid and run your application...

淡入淡出启动画面的制作

http://down.51cto.com/data/133335 CSplashWnd.h #pragma once #include "afxwin.h" // CSplashWnd cl...
  • leo1949asd
  • leo1949asd
  • 2015年03月31日 13:24
  • 509

用VC制作应用程序启动画面

使用启动画面一是可以减少等待程序加载过程中的枯燥感(尤其是一些大型程序);二是 可以用来显示软件名称和版权等提示信息。怎样使用VC++制作应用程序的启动画面呢?本文提供四种方法。前三种适用于基于文档的...
  • shuai_sheng
  • shuai_sheng
  • 2015年03月25日 10:23
  • 378

四种程序启动画面的制作方法(VC)

使用启动画面一是可以减少等待程序加载过程中的枯燥感(尤其是一些大型程序);二是可以用来显示软件名称和版权等提示信息。怎样使用VC++制作应用程序的启动画面呢?本文提供四种方法,前三种适用于基于文档的应...
  • Mr_warm
  • Mr_warm
  • 2013年07月13日 15:28
  • 869

解决win10 VC++6.0 应用程序无法正常运行 0xc0000142

最近很多同学都升级win10 周年更新版,结果vc用不了了。显示应用程序无法正常运行 0xc0000142。我最先在贴吧发的帖子,后来又发了一篇百度经验,无奈百度产品实在垃圾,我写错了都不可改。所以来...
  • W_9449
  • W_9449
  • 2016年10月19日 22:26
  • 104710

VC2008配置设置(转)

Vs 2008 解决方案的目录结构设置和管理 解决方案与项目: 从VC6之后VC系列就使用解决方案(Solution)来替代原来的工作空间,用于组织和管理多个相关的项目(Pro...
  • cddchina
  • cddchina
  • 2014年04月04日 11:57
  • 1942

在VC++应用程序中获取其他程序图标的实现方法

大家知道何为图标吗?其实图标就是具有明确指代含义的计算机图形。其中桌面图标是软件标识,界面中的图标是功能标识。它源自于生活中的各种图形标识,是计算机应用图形化的重要组成部分。今天小编要为大家介绍的一篇...
  • zyj66666
  • zyj66666
  • 2017年06月30日 16:16
  • 275

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

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

一个制作java小应用程序的全过程

一个制作java小应用程序的全过程         一、安装java软件:     从网上下载jdk-7u25-windows-i586.exe,安装到C:\Program Files\Java\j...
  • myhrrjava
  • myhrrjava
  • 2016年10月12日 08:12
  • 4118

VC程序中运行其他程序的三种方法

有三个函数可以使用: WinExec, ShellExecute,CreateProcess 1.WinExec(String lpCmdLine,Long nCmdShow); 参数说明: ...
  • qq_33266987
  • qq_33266987
  • 2016年06月08日 10:38
  • 1343

VS2010中启动画面的设置

 很久以前,在使用VC6的时候,设置启动画面是很简答,可惜使用vs后,各种麻烦啊................. 详解: 1.创建一个SDI或M...
  • u014023993
  • u014023993
  • 2014年06月26日 16:37
  • 513
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:vc中为应用程序制作启动画面的简单方法
举报原因:
原因补充:

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