用MFC的應用向導創建一個有主框架結構的應用程序,要使它具有啟動畫面是很簡單的(下面會體驗到),而要使一個基於對話框的應用程序也有啟動畫面則要費些事了,不過按以下筆者的方法則也是很容易的,我主要介紹方法,對畫面僅采用默認情況,讀者有興趣可自己加工。
(一) 建立一單文檔/視圖應用程序Hs
從File菜單選擇New對話,在Projects選項卡中選擇AppWizard(exe)圖標。鍵入Hs作為項目名並單擊OK。在第一步中選中Single Document單選按鈕,其它接受所有默認選項。
(二) 添加啟動畫面
當AppWizard完成,而且Visual C++打開項目的時候,從Project菜單中選擇Add To Project,並單擊位於次級菜單上的Comonents and Controls…,選擇Splash screen組件,如圖1(略)所示,單擊Insert。接受所有的默認設置。
以上幾步就建立起了一個有主框架結構的應用程序,並使它具有了啟動畫面。這是我們要做的准備工作已經完成。
(一)建立基於對話框的應用程序Spla
從File菜單選擇New對話,在Projects選項卡中選擇AppWizard(exe)圖標。鍵入Spla 作為項目名並單擊OK。在第一步中選中Dialog Based單選按鈕,其它接受所有默認選項。
(二)做啟動畫面
這裡做啟動畫面如果仍采用前述用Gallery來插入是不行的,因為基於對話框的應用程序沒有主框架。不過我們可以把上面建立起的啟動畫面文件移植過來,然後,對程序進行少許編程修改就? 請按照下面的步驟來做:
1、將Splash.cpp和Splash.h兩個文件從Hs工程中拷貝到你的工程中。添加如下代碼到CSplaApp的InitInstance()函數中。
#include "Splash.h"//頭文件請放在開始位置 BOOL CSplaApp::InitInstance() { CCommandLineInfo cmdInfo; ParseCommandLine(cmdInfo); CSplashWnd::EnableSplashScreen (cmdInfo.m_bShowSplash); ... }2、接下來,使用ClassWizard來添加OnCreate函數到你的對話框類中,並且添加如下代碼: #include "Splash.h"//頭文件請放在開始位置
int CSplaDlg::OnCreate (LPCREATESTRUCT lpCreateStruct) { … CSplashWnd::ShowSplashScreen(this); … }3、將Splash16.bmp文件從Hs工程中拷貝到你的工程中。打開Workspace的Resouce項,將Splash16.bmp插入。打開Properties將IDB_BITMAP1改為IDB_SPLASH,這個ID值只要和程序中一致起來就行,現在這樣改最簡便。
現在可以編譯運行程序了,程序運行時出現如圖2(略)的啟動畫面。這是默認的畫面,你可以打開圖形編輯器自己加工。如果你要改變啟動畫面的停留時間,就修改SetTime中的第二個參數,這裡是750毫秒。
int CSplashWnd::OnCreate (LPCREATESTRUCT lpCreateStruct) { … // Set a timer to destroy the splash screen. SetTimer(1, 750, NULL); return 0; }