[轉]用VC.NET制作啟動屏幕
[源]
http://upschool.com.cn/edu/1333/2006/85/10du135181_1.shtml基本原理是利用對話框窗口的特性,在啟動時首先創建對話框,設置一個獲得位圖文件的句柄,利用Picture控件的SetBitmap(HBITMAP hBitmap)方法,使位圖文件充滿整個Picture控件窗口,最后設置定時器,整個啟動屏幕就制作完成。
下面介紹具體實現步驟。
1. 打開VS.net的開發環境,新建VC++.net中的MFC應用程序,輸入工程名稱MySample,點擊“確定”,“完成”;
2. 打開資源視圖,添加對話框,更改ID為ID_DIALOG_SPLASH,設置對話框Center屬性為True,Border屬性為“無”;
3. 在對話框中添加Picture控件,設置Picture控件的ID號為ID_PIC,Type屬性為“位圖”,Center image屬性為True,然后調整標尺使對話框沒有外框,調整對話框的大小以適應啟動屏幕的要求,調整Picture的寬高使其充滿整個對話框窗口;
4. 雙擊對話框窗口,彈出類向導對話框,在類名中鍵入CSplash,選擇基類為Cdialog,點擊確定,定義控件Picture的控件變量為m_pic;
5. 在Csplash類中重載OnInitDialog()函數,添加消息WM_CHAR,WM_TIMER,WM_LBUTTONUP,WM_MBUTTONUP,WM_RBUTTONUP;
6. 在OnInitDialog()函數中添加代碼如下:
BOOL CSplash::OnInitDialog() { CDialog::OnInitDialog(); //設置啟動窗口背景,在整個窗口中充滿位圖 CRect lRect; m_pic.GetClientRect(&lRect);//得到Picture控件的窗口大小 lRect.NormalizeRect(); //設置位圖句柄 HBITMAP hbitmap=(HBITMAP)LoadImage(NULL,"splash.bmp",//更改你喜歡的位圖文件 IMAGE_BITMAP,lRect.Width(),lRect.Height(), LR_LOADFROMFILE|LR_CREATEDIBSECTION); m_pic.SetBitmap(hbitmap);
//設置定時器 SetTimer(1,500,NULL); return TRUE; } |
7. 在OnTimer(UINT nIDEvent) 函數中添加代碼如下:
void CSplash::OnTimer(UINT nIDEvent) { static int i; i++; if(i > 3) { //銷毀定時器 KillTimer(1); this->OnOK(); } CDialog::OnTimer(nIDEvent); } |
8. 在OnLButtonUp,OnLButtonUp,OnLButtonUp,OnChar函數中加入以下代碼:
{ KillTimer(1); this->OnOK(); } |
9. 在MySample.Cpp中引入頭文件
#include "Splash.h"
在InitInstance()函數中加入代碼:
BOOL CMySampleApp::InitInstance() { … AfxEnableControlContainer(); CSplash splash; splash.DoModal(); … } |