在利用VC+編程過程中
遇到制作啟動屏幕的問題
幾經試驗
得出一種方便簡單的制作方法
基本原理是利用對話框窗口的特性
在啟動時首先創建對話框
設置一個獲得位圖文件的句柄
利用Picture控件的SetBitmap(HBITMAP hBitmap)方法
使位圖文件充滿整個Picture控件窗口
最後設置定時器
整個啟動屏幕就制作完成
下面介紹具體實現步驟 打開的開發環境
新建VC+中的MFC應用程序
輸入工程名稱MySample
點擊
確定
完成
打開資源視圖
添加對話框
更改ID為ID_DIALOG_SPLASH
設置對話框Center屬性為True
Border屬性為
無
在對話框中添加Picture控件
設置Picture控件的ID號為ID_PIC
Type屬性為
位圖
Center image屬性為True
然後調整標尺使對話框沒有外框
調整對話框的大小以適應啟動屏幕的要求
調整Picture的寬高使其充滿整個對話框窗口
雙擊對話框窗口
彈出類向導對話框
在類名中鍵入CSplash
選擇基類為Cdialog
點擊確定
定義控件Picture的控件變量為m_pic
在Csplash類中重載OnInitDialog()函數
添加消息WM_CHAR
WM_TIMER
WM_LBUTTONUP
WM_MBUTTONUP
WM_RBUTTONUP
在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(
NULL);
return TRUE;
}
在OnTimer(UINT nIDEvent) 函數中添加代碼如下
void CSplash::OnTimer(UINT nIDEvent)
{
static int i;
i++;
if(i >
)
{
//銷毀定時器
KillTimer(
);
this
>OnOK();
}
CDialog::OnTimer(nIDEvent);
}
在OnLButtonUp
OnLButtonUp
OnLButtonUp
OnChar函數中加入以下代碼
{
KillTimer(
);
this
>OnOK();
}
在MySample
Cpp中引入頭文件
#include
Splash
h
在InitInstance()函數中加入代碼
BOOL CMySampleApp::InitInstance()
{
…
AfxEnableControlContainer();
CSplash splash;
splash
DoModal();
…
}
From:http://tw.wingwit.com/Article/program/net/201311/11913.html