我們常用的軟件如WordExcelPhotoShop等在運行時都有一個Splash封面該封面既顯示軟件的名稱版本開發人員以及使用者等信息又可以在後台初始化數據庫和軟件需要調用的文件但這些Splash封面文件通常只包含靜態的圖片和文本對象常常顯得比較單調我們是否可以將Splash封面文件做成動態的呢?答案當然是可以的筆者在用PowerBuilder 為單位開發工資軟件時通過調用Flash文件制作出新穎漂亮的Spalsh封面
以下詳細介紹制作過程
先將SwflashOcx文件復制到Windows\system(若為Windows系統則為System目錄)下然後單擊開始運行在運行框中輸入Regsvr c:\windows\system\swflashocx單擊確定即可注冊swflashocx控件
在Flash中制作一大小為px×px的Flash文件splashfla並輸出為splashswf保存在開發目錄下
在PowerBuilder中新建一應用Splashpbl在應用的Open事件中添加如下代碼Open(w_splash) //打開Splash封面窗口
在Powerbuilder中新建一函數wf_get_Curr_dirAccess為PublicReturn Type 為String函數名為wf_get_Curr_dir在該函數中添加如下代碼
//獲得當前應用所在的目錄
string ls_Buffer
ls_Buffer=Space()
IF GetCurrentDirectoryA(ls_Buffer)= THEN SetNull(ls_Buffer)
RETURN ls_Buffer
代碼中的GetCurrentDirectoryA為WindowsAPI函數在應用的Globa External Functions中聲明
Function ulong GetCurrentDirectoryA(ulong nBufferLengthref string lpBuffer) Library kerneldll
新建一窗口w_Splash其屬性如下表
窗口/控件名
值
WindowType
Popup!
WindowState
Normal!
Visible
True
Enabled
True
ClientEdge
True
Center
True
Width
Height
將窗口的TitlebarControlMenuMaxBoxMinBoxPaletteWindowRightToLeftBorder等全部取消選擇
在窗口中插入一Ole控件打開對話框單擊Insert Control頁面在Control Type下的列表框中選擇Shockwave Flash Object然後單擊OK按鈕即可在窗口中插入flash控件其屬性設置如下表
窗口/控件名
值
Name
Ole_
Visible
True
Enabled
True
BorderStyle
StyleLowered!
其它屬性保持不變
在窗口的Open事件Close事件Timer事件中分別加入如下代碼
Open事件
String ls_pathls_swffile
ls_path=wf_get_curr_dir() //獲得當前應用的路徑
ls_swffile=ls_path+\splashswf
ole_move()
ole_width=thisworkspacewidth( )
ole_height=thisworkspaceheight( )
ole_objectmovie(ls_swffile)
ole_objectplay()
timer(this)
Close事件
timer(this)
//open(w_logon) //打開登陸窗口
Timer事件
Close(this)
至此本應用的Splash封面窗口建立完畢單擊運行按鈕即可運行
以上程序在Windows//xp 和Powerbuilder /下運行通過
From:http://tw.wingwit.com/Article/program/SQL/201311/16433.html