求真百科歡迎當事人提供第一手真實資料,洗刷冤屈,終結網路霸凌。

啟動畫面檢視原始碼討論檢視歷史

事實揭露 揭密真相
前往: 導覽搜尋
啟動畫面
圖片來自優酷

啟動軟件時的畫面

啟動畫面(Start screen),即啟動一些軟件的時候,會先跳出一個啟動畫面,上面通常有軟件公司logo,版本號等一些信息,顯示一會之後自動消失。

  • 外文名:Start screen

基本信息

首先,我們先要搞清楚什麼是啟動畫面.舉個簡單的例子:我們啟動某些作的專業一點的程序時(比如Netscape,Adobe Acrobat等)會先跳出一個啟動畫面.上面通常有一些版權信息,版本號等.與此同時,程序後台正做着一些程序的加載或初始化工作.這個啟動畫面有別於一般的窗口.它沒有標題欄,沒有系統菜單,也沒有邊框.只有一張位圖在屏幕上顯示一會兒,然後消失 ..

在這一章我們來試試自己做一個,第一步你可能會想到把要顯示的位圖包含到資源文件中去.但是這樣做有一個缺點.你的程序只在啟動的時候顯示這張位圖,可是它卻至始至終存在於你的內存中,直到你把程序關掉.這不能不說是對內存的極大浪費.好辦法是:創建一個"資源"DLL(動態連接庫)來包含位圖和它獨特的顯示代碼.這樣,你就可以在想顯示啟動畫面的時候加載他,用完了就卸載它.所以,我們的程序需要2個模塊:主程序和啟動畫面DLL.我們要把位圖放到這個DLL的資源中去.[1]

說明

基本步驟如下:

把位圖作為一個位圖資源放到DLL中去. 主程序調用 LoadLibrary 把 dll 加載到內存中去. DLL 被調用後,它會建立一個定時器用於管理啟動畫面顯示的時間.然後,註冊並創建一個沒有 標題和邊框的窗口.同時在窗口的客戶區顯示位圖. 等啟動畫面的顯示時間長度到達你預先的設定值,啟動畫面消失,控制權回到主程序手中. 主程序調用 FreeLibrary 從內存中卸載 DLL .然後,做它該做的事去. 下面我們來研究細節部分

加載/卸載 DLL

你可以用 LoadLibrary 靈活的加載一個 DLL ,它的格式如下:

LoadLibrary proto lpDLLName:DWORD它只有一個參數: 你想要加載的 DLL 的名稱所在的地址.調用成功返回指向該DLL模塊的句柄,反之返回NULL.

要卸載 DLL, 則調用 FreeLibrary:

FreeLibrary proto hLib:DWORD它也只有一個參數: 你想要卸載的 DLL 模塊的句柄(通常就是上面那個函數返回的啦).

怎樣使用定時器

首先, 你要用 SetTimer 創建一個定時器:

SetTimer proto hWnd:DWORD, TimerID:DWORD, uElapse:DWORD, lpTimerFunc:DWORD hWnd接受這個定時器消息的窗口的句柄.如果,你的定時器不需要窗口接受它的消息,你也可以 用NULL作為參數

TimerID定時器的 ID 值. 由你自己定義.

uElapse定時器定的時間.以ms(千分之一秒)為單位.

lpTimerFunc處理該定時器消息的函數所在的地址.如果你用NULL作為該參數,那麼定時器的消息會被送給 hWnd 參數所指定的窗口. SetTimer 如果成功則返回定時器的 ID 否則返回 NULL. 所以最好不要把定時器的ID設為0(Pheadnius:NULL代表0, 記得嗎?).

你可以用2種方法創建定時器:

如果你有一個窗口並且定時器把消息傳給這個窗口.那麼你需要把所有的4個參數都傳送給 Settimer 函數 (lpTimerFunc參數必須為NULL). 如果你沒有窗口或者你不想讓窗口處理定時器的消息,那麼你必須在窗口句柄中傳送一個NULL.同時你要指定用於處理定時器消息的函數的地址. 在這個例子中我們要使用第一種方法.

當你設定的時間到了, 與定時器相連的窗口會收到 WM_TIMER 消息.例如,你指定 uElapse 的值為 1000, 你的窗口每過一秒都會收到 WM_TIMER 消息.

視頻

電腦卡在正在啟動界面怎麼辦?

參考文獻