亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > 媒體動畫 > 正文

Authorware基礎教程:authorware7里面地U32和ODBC運用介紹(1)

2024-09-08 19:26:43
字體:
來源:轉載
供稿:網友

4.1.1  什么是ucd和u32

ucd(user code dll)是用戶自定義函數的縮寫。包括authorware自帶的ucd函數和用戶用vb、vc、delphi編寫的ucd函數。

ucd函數又稱為外部函數,在使用之前必須先引入到當前文件中,當外部函數被正確引入后,我們就可以像使用系統函數一樣使用它了。ucd函數的后綴一般為u32(32位)或ucd(16位,在windows 3.x中使用)。在authorware 7.0中已經不再帶有16位的ucd了。

4.1.2  如何導入外部函數

用戶自定義函數引入的步驟,以裝載“cover.u32”為例:

1)用authorware新建一個文件,并命名為"cover.a7p".

2)選擇【窗口】→【面板】→【函數】菜單項或單擊工具欄上的【函數】按鈕,打開函數對話框。

3)在函數對話框的“種類”下拉列表中選擇當前的文件“cover.a7p”,單擊“加載”按鈕

4)彈出“加載函數”對話框。在對話框中選擇要加載的外部函數,這里選“cover.u32”單擊【打開】按鈕。

5)彈出對話框,在“名稱”項下面顯示的是“cover.u32”所包含的兩個函數“cover()”和“uncover()”,按住【ctrl】快捷鍵,再分別單擊著兩個函數就可以選中它們。單擊【加載】按鈕裝載這兩個被選中的函數。

6)如果出現如圖4-1所示,說明函數已經加載成功,如選中“cover”函數,則在下面的“描述”框中顯示的是函數的名稱和具體的使用方法。

圖4-1  加載“cover”函數

7)將外部函數引入到計算圖標或指定的區域,只要打開計算圖標,雙擊圖4-1中的函數名即可,效果如圖4-2所示。

圖4-2  “cover”函數的應用


4.1.3  如何覆蓋演示窗口外的
桌面部分——cover.u32

如果你的多媒體演示系統的顯示區域大小設置為640×480像素,而顯示器的分辨率被設置成800×600像素,那么它在運行的時候顯示區域比屏幕的區域要小。屏幕上的其他部分在你的程序運行時會繼續顯示在屏幕上。這樣,會使用戶分心,那么有沒有一個辦法使程序在運行時隱藏其余部分而不干擾用戶的視線呢?

方法是運用u32函數cover和uncover,我們來舉一個例子。

1)拖入一個顯示圖標,在顯示圖標中導入一個背景圖片。

2)拖入一個交互圖標,在交互圖標右邊拖入三個計算圖標,分別起名為“隱藏桌面”、“顯示桌面”和“退出演示”。在交互圖標中安排好三個按鈕的相對位置。

3)載入(上一節中已經介紹過)u32函數包cover.u32中的函數:cover()和uncover()。

4)打開“隱藏桌面”計算圖標在其中輸入:cover()。

5)打開“顯示桌面”計算圖標在其中輸入:uncover()。

6)打開“退出演示”計算圖標在其中輸入:

uncover()

quit()

來結束演示。程序結束前一定要取消覆蓋屏幕,即運行uncover(),不然會影響到其他程序的運行。

7)該程序一定要打包以后才能看出運行效果。最好在打包前不要運行此程序。

4.1.4  如何載入windows api

一、windows api簡介

windows api是應用程序編程接口(application programing interface)的縮寫,它是一系列復雜的函數、消息的集合,為高級語言提供了大量可擴充的功能強勁的函數。

二、windows api函數的載入

aw中可以利用動態鏈接庫(dll)文件,直接使用windows api函數庫的功能。一個dll文件就是一個函數庫,包含若干個函數。調用dll文件時,必須明確函數的調用協議,包括函數的名稱、參數的數目、參數的類型、返回值的類型。

1)windows函數庫主要的幾個文件。

l          gdi32.dll:屏幕顯示及打印功能的函數集

l          user32.dll:鼠標、鍵盤、通信端口、聲音、時鐘功能的函數集

l          kernel32.dll:文件及內存管理(核心部分)功能的函數集

l          mpr.dll:windows 32網絡接口庫

l          advapi32.dll:windows 32、advapi32核心部件

2)dll文件的載入過程。

與調用外部函數相似,dll函數集在使用之前必須事先載入和聲明,其載入的過程要比調用ucd函數更加復雜。以裝載“window/system/shell32.dll”文件為例,具體的載入過程介紹如下。

單擊工具欄上的【函數】按鈕,打開“函數”面板,在“種類”下拉列表中選擇當前的文件“關于.a7p”。單擊【加載】按鈕,出現“加載函數”對話框,選擇“c:/window /system/shell32.dll”文件,單擊【打開】按鈕,出現如圖4-3所示的函數設置對話框,具體的選項如下。

function name:輸入要調用的函數的名稱,這里是“shellabouta”.

arguments:指明 要用到的參數類型,這里是“long,string,string,long”。

return:函數返回值的類型,這里是“long”。

description:函數的語法。

圖4-3  載入dll函數設置對話框

單擊圖4-3中的【load】按鈕裝載函數,如果裝載成功,則在對話框中顯示“successfully loaded "shellabouta()"”。

裝載完畢后,單擊圖4-3中的【done】按鈕,被成功裝載的函數就會出現在函數框中。

4.1.5  調用window標準的“關于”窗口

要調用window標準的“關于”窗口主要利用shell32.dll文件中的“shellabouta()”函數實現。

1)“shellabouta()”函數的使用格式。

shellabouta(hwnd,szapp,szotherstuff,hicon)

hwnd:設置窗口的句柄。

szapp:設置窗口的標題。

szotherstuff:在版權說明和使用權之間的空白處增加額外的說明。

hiocn:一般取0。

2)新建一個文件,名為“關于.a7p”,裝載函數“shellabouta()”,其過程與上面是一樣的,這里不再介紹。

3)裝載函數成功后,在流程線上放一計算圖標,在其中輸入如下內容:

szapp="authorware7.0使用及技巧精解"

szotherstuff="歡迎您使用authorware7.0

使用及技巧精解!"

shellabouta(windowhandle,szapp,szotherstuff,0)

其中szapp,szotherstuff是兩個自定義變量

4)保存并運行程序。

4.1.6  如何制作最小化、最大化、關閉窗口
按鈕和拖動窗口

在用authorware制作多媒體作品時,我們希望展示窗口和普通窗口一樣可以最小化、關閉、拖動。要實現這一目的,最簡單的方法是在設置文件屬性時,保留標題欄,但這樣會影響作品的美觀。如何制作自己的標題欄,使之和整個作品搭配協調,并且可以實現標題欄的功能呢?

使用windows api函數而不通過單擊窗口的控制圖標來控制authorware的運行窗口,它可以使你的authorware程序在沒有標題欄的情況下自由控制窗口的顯示狀態,這對于編制精美的多媒體程序是很有幫助的。

你可以找一個你認為滿意的窗口把它截取下來,用photoshop修改成你滿意的樣子,保存為作品的背景。再制作最小化和關閉的按鈕圖形以備用。

1)新建文件

在authorware中新建一個文件。單擊【修改】→【文件】→【屬性】菜單,在彈出的“文件屬性”對話框中選擇“回放”標簽,將“大小”項設定為“根據變量”,取消“標題欄”和“菜單欄”的復選框前的對勾。

2)窗口設置

拖一個顯示圖標到流程線上,命名為“背景”。將制作好的背景圖片導入,再拖一個計算圖標到流程線上,命名為“窗口大小”,雙擊,在其中輸入程序:

resizewindow(400, 280)

movewindow(100, 100)

第一句的作用是將窗口大小設置成合適大?。ㄒ员尘皥D片的大小為準)。第二句的作用是將窗口移動到屏幕的合適位置。

3)最小化、最大化及關閉功能

在流程線上放置一個交互圖標,命名為“窗口控制”。在其右側放置三個計算圖標,響應類型都設為“按鈕響應”,分別命名為“最小化”、“最大化”、“關閉”。在它們的分支屬性對話框“響應范圍”項中復選“永久”,“分支”項選擇“返回”。如你認為需要,可編輯這三個響應的按鈕樣式,用制作好的圖片代替默認的樣式并調整其位置。

在“最小化”圖標中輸入程序:

showwindowasync(windowhandle, 6)

在“最大化”圖標中輸入程序:

showwindowasync(windowhandle, 3)

這里調用windows api函數showwindowasync實現將窗口最小化、最大化。保存時,系統會彈出對話框,提示選擇此函數的來源,選擇winapi.u32。

authorware 6以前的版本是加載api函數showwindow,現在如還加載它則會出現于aw內部函數showwindow同名而無法加載的情況,從而無法完成“使窗口最小化”等任務?,F在加載api函數showwindowasync,該函數可以替代showwindow原有的功能。

格式為:showwindowasync( hwnd hwnd, int ncmdshow)

其中:hwnd hwnd  設置窗口的句柄,一般為windowhandle

ncmdshow:定義如何顯示啟動程序的常數值,即程序啟動后的窗口形式,取值如下。

0——隱藏窗口,活動狀態給令一個窗口。

1或9——用原來的大小和位置顯示一個窗口,同時令其進入活動狀態。

2——最小化窗口,并將其激活。

3——最大化窗口,并將其激活。

4——用最近的大小和位置顯示一個窗口,同時不改變活動窗口。

5——用當前的大小和位置顯示一個窗口,同時令其進入活動狀態。

6——最小化窗口,活動狀態給令一個窗口。

7——最小化一個窗口,同時不改變活動窗口。

8——用當前的大小和位置顯示一個窗口,不改變活動窗口。

在“退出”圖標中輸入程序:

quit()

作用是退出本程序。

4)窗口移動功能

在這里我們要實現當用戶拖動自定義標題欄時,窗口隨之移動的功能。

在交互圖標“窗口控制”右側放置一個“組群”圖標,響應類型為“熱區響應”,命名為“移動窗口”,在分支屬性對話框中“響應范圍”項復選“永久”,“分支”項選擇“返回”。設定其響應范圍包圍背景的上部分,這就是我們的標題欄范圍。

雙擊“移動窗口”圖標,在其中放置一個“交互”圖標,命名為“move window”。在此交互圖標右側放置一個“計算”圖標和一個群組圖標,響應類型都為“條件響應”,響應條件分別為mousedown和~mousedown。設置mousedown圖標分支的屬性,“自動”為“為真”,“分支”為“重試”。設置~ mousedown圖標分支的屬性,“自動”為“為真”,“分支”為“退出交互”。

在mousedown計算圖標中輸入程序:

releasecapture()

sendmessage( windowhandle, 161, 2, 0)

這里同樣是調用windows api函數實現窗口可拖動的功能。當系統提示選擇這兩個函數的來源時,選擇winapi.u32。

~mousedown群組圖標內為空。

整個程序就完成了,最后的流程如圖4-4所示。

我們看一下最后的效果。單擊“最小化”按鈕可將窗口最小化到任務欄,在任務欄上單擊可恢復;單擊“關閉”按鈕可退出本程序;拖動自定義的標題欄可移動窗口的位置,達到了預期的效果。

圖4-4  窗口屬性流程圖

這個程序中你可以再設一個按鈕,命名為“還原”,在其計算圖標中輸入:

showwindowasync(windowhandle, 1)

設一個與最大化正好相反的激活條件和非激活時隱藏按鈕,最大化按鈕也要同樣設置。并把“最大化”和“還原”按鈕重疊放置。

4.1.7  用winapi.u32制作消息框

在authorware制作消息框可以利用其提供的winapi.u32中的messagebox函數,其格式為:messagebox (hwnd hwnd, lpcstr lptext, lpcstr lpcaption, uint utype)。用它可以做出標準的windows消息框。

一、方法一

首先,新建一個要求用戶注冊的authorware 7文件,然后加載winapi.u32中的messagebox函數。

然后,在流程線上放置一個名為“消息”的計算圖標,在其中輸入如下內容:hh:=messagebox (windowhandle, "密碼錯誤,請輸入正確的注冊碼!", "提醒",72)。hh是一個自定義變量,用于判斷用戶按了哪個按鈕,以便執行下一個流程。至于它的返回值,將在下邊一并列出。

接著,在“消息”計算圖標下再放置一個“判斷”計算圖標,在其中輸入以下內容:

if hh=2 then

quit()

else

goto(iconid@"跳轉到注冊碼輸入")

end if

內容僅作為參考,大家可以根據實際情況自行確定輸入內容。

好了,現在運行程序看一下,感覺如何?如果適當修改messagebox函數的“uint utype”參數值,還可以得到五種效果。具體效果如何,請諸位自己嘗試,在此就不一一展示了。

1)uint utype參數值可分為五大類,分別介紹如下。

第一類可取值為:0、1、2、3、4、5、8、10

第二類可取值為:16、17、18、19、20、21、24、26(在第一類取值加16)

第三類可取值為:32、33、34、35、36、37、40、42(在第一類取值加32)

第四類可取值為:48、49、50、51、52、53、56、58(在第一類取值加48)

第五類可取值為:64、65、66、67、68、69、72、74(在第一類取值加64)

2)各按鈕的返回值介紹如下。

1 確定      5 忽略

2 取消      6 是

3 終止      7 否

4 重試

其中,“中斷”按鈕沒有返回值。

二、方法二

首先,我們來看一下打開如何一個計算圖標。

在計算圖標的快捷工具欄右側有個“!”的按鈕,作用是“插入提示框”,單擊該按鈕,會彈出如圖4-5所示的設置框。

圖4-5  消息框的設置對話框

設置完后,單擊“test”按鈕看看效果如何?然后確定。在計算圖標中的當前位置就插入了一條語句,還有各個按鈕的返回值。

如:

systemmessagebox(windowhandle, "你真的想退出

嗎?", "退出", 52) -- 6=yes, 7=no

運行結果如圖4-6所示(其中標題欄中的“退出”可在計算圖標中修改)。

圖4-6  消息框

systemmessagebox是系統函數不需要在winapl.u32中加載。

格式為:

result = systemmessagebox(windowhandle, "text",

"caption" [,type or #buttons, #icon, default,

#modality])

參數設置與messagebox類似。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲一区二区少妇| 深夜福利亚洲导航| 97国产成人精品视频| 97超级碰碰碰久久久| 成人久久久久久久| 精品国内自产拍在线观看| 亚洲国产另类 国产精品国产免费| 成人高h视频在线| 久久精品色欧美aⅴ一区二区| 国产精品福利观看| 欧美天天综合色影久久精品| 精品久久久久久久久久国产| 国精产品一区一区三区有限在线| 中文字幕国产亚洲| 亚洲自拍小视频免费观看| 亚洲一区免费网站| 国产欧美一区二区三区在线看| 国产精品久久久久久av福利| 亚洲激情在线观看| 成人黄色大片在线免费观看| 国内精品视频一区| 国产精品视频久久久久| 精品亚洲一区二区三区在线观看| 久久精品视频一| 久久99精品久久久久久青青91| 亚洲无限av看| 欧美三级xxx| 欧美国产日韩免费| 国产成人精品日本亚洲专区61| 欧美激情精品在线| 亚洲成avwww人| 91精品91久久久久久| 亚洲午夜性刺激影院| 国产精品中文久久久久久久| 欧美午夜性色大片在线观看| 欧美在线免费视频| 国产精彩精品视频| 久久久欧美精品| 黑丝美女久久久| 国产精品情侣自拍| 国产精自产拍久久久久久蜜| 77777少妇光屁股久久一区| 亚洲国产美女久久久久| 亚洲人精品午夜在线观看| 日韩av电影手机在线| 精品久久久久久亚洲国产300| 亚洲成人亚洲激情| 国产综合在线视频| 91九色视频在线| 国产精品视频网| 亚洲天堂av综合网| 亚洲的天堂在线中文字幕| 日本中文字幕不卡免费| 欧美中文字幕在线| 久久97精品久久久久久久不卡| 国产精品免费久久久| 久久久久久久亚洲精品| 国产精品美女久久久久av超清| 91国产精品视频在线| 亚洲大尺度美女在线| 成人黄色av网站| 欧美国产日韩xxxxx| 激情久久av一区av二区av三区| 68精品久久久久久欧美| 国产精品观看在线亚洲人成网| 日本欧美一二三区| 精品日韩美女的视频高清| 欧美激情综合色| 欧美成人午夜激情在线| 国产精品女人网站| 久久久999精品免费| 亚洲视频综合网| 国产欧美在线观看| 亚洲中国色老太| 精品欧美国产一区二区三区| 国产一区二区丝袜| 亚洲片av在线| 亚洲国产精品成人一区二区| 久久99国产精品自在自在app| 欧美日韩福利视频| 91老司机精品视频| 一区二区三区久久精品| 91精品国产自产在线老师啪| 6080yy精品一区二区三区| 欧美色道久久88综合亚洲精品| 欧美色图在线视频| 国产日韩欧美在线播放| xxx成人少妇69| 国产精品自拍视频| 久久97精品久久久久久久不卡| 国内精品久久久| 中文字幕精品一区久久久久| 亚洲xxxx做受欧美| 日韩美女视频中文字幕| 久久国产视频网站| 国产一区二区黄| 日韩高清av一区二区三区| 国产精品成久久久久三级| 亚洲欧美日韩天堂| 日本久久中文字幕| 91精品久久久久久久| 国产精品高潮在线| 成人免费在线网址| 国产精品入口夜色视频大尺度| 国产精品久久久久国产a级| 久久夜色精品亚洲噜噜国产mv| 国产日韩视频在线观看| 久久免费精品日本久久中文字幕| 久久影院资源网| www.日韩欧美| 一区二区欧美亚洲| 久久精品成人一区二区三区| 亚洲日本中文字幕| 精品毛片网大全| 国产精品欧美激情在线播放| 福利一区福利二区微拍刺激| 不卡av电影在线观看| 91香蕉亚洲精品| 大量国产精品视频| 麻豆乱码国产一区二区三区| 亚洲国产成人在线视频| 久久久天堂国产精品女人| 日韩成人中文字幕| 欧美夜福利tv在线| 国产精品中文字幕在线| 青青a在线精品免费观看| 成人做爽爽免费视频| 成人黄色短视频在线观看| 成人做爽爽免费视频| 亚洲男人天堂2019| 色一情一乱一区二区| 亚洲国产天堂久久综合| 97色在线播放视频| 国产成人一区二区| 精品视频中文字幕| 最近2019免费中文字幕视频三| 国产精品扒开腿做爽爽爽男男| 欧洲s码亚洲m码精品一区| 日韩av在线看| 成人国内精品久久久久一区| 日韩欧美视频一区二区三区| 日韩av观看网址| 国产一区二区三区高清在线观看| 亚洲欧美日韩视频一区| 欧美一级高清免费播放| www亚洲精品| 欧美日韩亚洲高清| 日韩精品有码在线观看| 国产欧美精品一区二区三区-老狼| 激情亚洲一区二区三区四区| 538国产精品视频一区二区| 中国人与牲禽动交精品| 亚洲精品大尺度| 日韩大陆毛片av| 国产免费一区视频观看免费| 国产精品jvid在线观看蜜臀| 久久久久久亚洲精品| 亚洲a成v人在线观看| 理论片在线不卡免费观看| 粗暴蹂躏中文一区二区三区| 中文字幕日韩综合av| 欧美疯狂xxxx大交乱88av| 影音先锋欧美在线资源| 欧美国产精品人人做人人爱|