啟動畫面

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

基本介紹

  • 中文名:啟動畫面
  • 外文名:Start screen
概述,說明,載入/卸載 DLL,怎樣使用定時器,

概述

首先,我們先要搞清楚什麼是啟動畫面.舉個簡單的例子:我們啟動某些作的專業一點的程式時(比如Netscape,Adobe Acrobat等)會先跳出一個啟動畫面.上面通常有一些版權資訊,版本號等.與此同時,程式後台正做著一些程式的載入或初始化工作.這個啟動畫面有別於一般的視窗.它沒有標題欄,沒有系統選單,也沒有框線.只有一張點陣圖在螢幕上顯示一會兒,然後消失 ..
在這一章我們來試試自己做一個,第一步你可能會想到把要顯示的點陣圖包含到資源檔案中去.但是這樣做有一個缺點.你的程式只在啟動的時候顯示這張點陣圖,可是它卻至始至終存在於你的記憶體中,直到你把程式關掉.這不能不說是對記憶體的極大浪費.好辦法是:創建一個"資源"DLL(動態連線庫)來包含點陣圖和它獨特的顯示代碼.這樣,你就可以在想顯示啟動畫面的時候載入他,用完了就卸載它.所以,我們的程式需要2個模組:主程式和啟動畫面DLL.我們要把點陣圖放到這個DLL的資源中去.

說明

基本步驟如下:
點陣圖作為一個點陣圖資源放到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 訊息.

相關詞條

熱門詞條

聯絡我們