程序启动画面
2004-11-18 09:37
281 查看
载本文示例源代码
在VC知识库上看到许多有关程序启动画面的程序而我觉得程序讲求的是"简而易懂",不需要太多的技巧,只要程序写的出来就好,于是我以另外一种简便的方式来设计程序启动画面同时在程序启动时播放音效,此程序的关键在于Sleep以及PlaySound这两个API函数与StrectBlt这个函数必须记得连结winmm.lib才可使用PlaySound函数,具体方法如下:
在CSplashWindow::CSplashWindow()建构函数当中加载位图以作为程序启动画面
接着是此程序的具体描述
![](http://www.vckbase.com/document/image/paragraph.gif)
步骤一.
建立三个类别,分别作为程序启动画面与主程序
![](http://www.vckbase.com/document/image/paragraph.gif)
步骤二.
在void CSplashWindow::OnPaint()当中使用StrectBlt复制位图到SplashWindow以当作启动画面
![](http://www.vckbase.com/document/image/paragraph.gif)
步骤三.
在void CMainWindowApp::InitInstance()当中初始化启动画面的相关设定
如果您对此程序有任何问题欢迎来信指教r39710@giga.net.tw
在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); }
接着是此程序的具体描述
![](http://www.vckbase.com/document/image/paragraph.gif)
步骤一.
建立三个类别,分别作为程序启动画面与主程序
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(); };
![](http://www.vckbase.com/document/image/paragraph.gif)
步骤二.
在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 }
![](http://www.vckbase.com/document/image/paragraph.gif)
步骤三.
在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;
如果您对此程序有任何问题欢迎来信指教r39710@giga.net.tw
相关文章推荐
- 程序启动画面
- android程序启动画面之Splash总结[转]
- *PyQt4 精彩实例分析* 实例23 程序启动画面
- air开发ios程序时,启动画面的设置
- QT使用GIF作程序启动画面
- vc 程序启动画面
- 给程序添加启动画面(C#.net )
- 用C#给程序加启动画面并只允许一个应用程序实例运行
- VC程序启动画面
- 四种程序启动画面的制作方法(VC)
- android程序启动画面之Splash总结
- iOS程序启动画面的制作
- VC++程序启动画面会先看到MainFrame先闪一下再消失的问题解法
- iPhone,iPhone4,iPad程序的启动画面
- java程序启动画面
- qt添加程序启动画面
- VC++编程中为程序加入启动画面功能
- android程序启动画面之Splash总结
- XE7 - 程序图标及启动画面图片的注意事项
- [Android]Delphi/C++ Builder 开发 Android 程序启动画面简单完美解决方案