Authorware的內(nèi)部消息接口

Authorware的內(nèi)部消息接口

ID:39464839

大?。?4.00 KB

頁數(shù):7頁

時間:2019-07-03

Authorware的內(nèi)部消息接口_第1頁
Authorware的內(nèi)部消息接口_第2頁
Authorware的內(nèi)部消息接口_第3頁
Authorware的內(nèi)部消息接口_第4頁
Authorware的內(nèi)部消息接口_第5頁
資源描述:

《Authorware的內(nèi)部消息接口》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、Authorware的內(nèi)部消息接口首先的問題是:我們作的UCD常常在運行期需要創(chuàng)建對象,尤其是對于象dephi這樣的開發(fā)語言來說,它從運行到消滅的過程中完完全全是依靠創(chuàng)建對象來實現(xiàn)的。在dephi程序中,我們無需擔心創(chuàng)建的對象會因為無法及時消滅而出現(xiàn)非法操作,除非是在運行期動態(tài)創(chuàng)建的對象。當我們關(guān)閉一個程序時,dephi會自動從內(nèi)存中釋放該對象所占內(nèi)存空間,不會導(dǎo)致該內(nèi)寸會造成永久性丟失。但是如果把對象編譯進dll程序中,對象就一定是動態(tài)創(chuàng)建的,必須在程序退出前釋放該對象,否則會出現(xiàn)非法操作的標示。某個有名的UCD中的MP3播放

2、函數(shù)就存在這樣的問題:必須要求用戶執(zhí)行釋放對象的函數(shù)才能正常退出,如果用戶是使用windows窗口的系統(tǒng)菜單退出的話,則非法操作不可避免,從另一方面來說,一個好的軟件是應(yīng)該充分考慮到用戶操作過程中可能出現(xiàn)的種種問題,我們只能給他們提供方便而不是給他們添加麻煩,對于一個商業(yè)化的軟件這是基本原則?,F(xiàn)在的問題是:我們?nèi)绾沃烙脩羰裁磿r候關(guān)閉程序,也就是需要抓住釋放對象的機會。當然,制作一個系統(tǒng)鉤子函數(shù)能夠解決這個問題。然而,authorware同樣給了程序員一個機會,這就是authorware中的對象消息。要使我們的對象能夠接收aut

3、horware的內(nèi)部消息,我們第一步就需要把我們的對象加入到authorware的顯示對象列表中去。Authorware的顯示對象列表是個抽象的概念,它向每個登記到列表中的對象發(fā)布消息,我們就可以根據(jù)具體的消息來處理。加入對象到顯示列表的命令是通過windowsapi函數(shù)sendmessage來實現(xiàn)的,函數(shù)描述如下:id=SendMessage(pwHandle,APWC_POST,0,lpPostPB)參數(shù)描述pwHandleAuthorware窗口句柄lpPostPB指向一個APWC_POSTPB參數(shù)塊的遠指針APWC_PO

4、ST這條消息就是告訴authorware我要加入一個對象。(其值為常數(shù):$6000)返回值>0:返回該對象的唯一標示號.0:無法加載對象過程.-1在dll中的對象過程未找到.-2:非法內(nèi)存.-3:參數(shù)錯誤.lpPostPB變量結(jié)構(gòu)描述如下:typeAPWC_POSTPB=recordsize:Word;//該結(jié)構(gòu)的長度dll_ptr:PChar;//加載的dll文件名稱function_ptr:PChar;//對象過程函數(shù)名稱rect:TRECT;//對象接收消息的區(qū)域port:Integer;//接收消息方式data_ptr:

5、longint;//對象攜帶私有數(shù)據(jù)結(jié)構(gòu)指針data_size:Word;//對象攜帶私有數(shù)據(jù)長度name_ptr:PChar;//對象變量名end{APWC_POSTPB};FAR=APWC_POSTPB;APWC_POSTPB_PTR=^APWC_POSTPB;說明:其中如果沒有私有數(shù)據(jù),data_ptr和data_size可設(shè)為零對象過程函數(shù)名必須是用exports導(dǎo)出的函數(shù)port可取以下三個常量之一:STATIC_PORT=0;//適用于基本固定的對象,大多數(shù)情況下選它MOTION_PORT=1;//適用于更新頻率較快

6、的對象SCREEN_PORT=2;//適用于直接畫屏的對象,如果對象是動畫之類就選它RECT是一個在authorware的窗口內(nèi)定義的區(qū)域,如果你需要接收象鼠標消息這樣的消息,則只在該區(qū)域你才能接收二創(chuàng)建對象過程函數(shù)在登記對象之后,authorware就向我門定義的對象過程發(fā)送消息,我們根據(jù)具體的消息,就實現(xiàn)了控制我們對象。對象過程函數(shù)格式:opjiectProc(awparam:APWN_AB;msg:NOTIFICATION_MESSAGE):Boolean;參數(shù)說明:awparam:在我們創(chuàng)建對象過程中定義的指向APWN_

7、AB結(jié)構(gòu)的指針APWN_AB結(jié)構(gòu)聲明如下:typeAPWN_AB=recordsize:Word;//該結(jié)構(gòu)的長度id:LongInt;//分配給對象的唯一標示號icon_id:Integer;//創(chuàng)建該對象所在圖標,通常是使用計算圖標//的地方display:HWND;//authorware主窗口句柄wparam:WPARAM;//msg的第一參數(shù)lparam:LPARAM;//msg的第二參數(shù)rect:TRECT;//由APWC_POSTPB參數(shù)傳遞過來data_ptr:longint;//由APWC_POSTPB參數(shù)傳遞

8、過來data_size:Word;//由APWC_POSTPB參數(shù)傳遞過來name_ptr:PChar;//由APWC_POSTPB參數(shù)傳遞過來end{APWN_AB};FAR=APWN_AB;//聲明作為遠指針調(diào)用(其實在現(xiàn)在32位操作//系統(tǒng)下已無必要,可刪

當前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。