《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > Authorware7中多級(jí)菜單的實(shí)現(xiàn)方法研究
Authorware7中多級(jí)菜單的實(shí)現(xiàn)方法研究
2014年微型機(jī)與應(yīng)用第21期
范翠香
(西安理工大學(xué),陜西 西安 710082)
摘要: 在各種多媒體作品中人機(jī)交互方式有時(shí)需要采用多級(jí)菜單方式。雖然Authorware7提供了下拉菜單的交互方式,但要實(shí)現(xiàn)二級(jí)以上的下拉菜單還需借助外部函數(shù)來(lái)實(shí)現(xiàn)。利用外部文件WINAPI.U32中的有關(guān)菜單操作函數(shù),探討并研究了Authorware7實(shí)現(xiàn)多級(jí)下拉菜單的制作方法,并給出了一個(gè)三級(jí)下拉菜單的實(shí)例制作過(guò)程。
Abstract:
Key words :

  摘 要: 在各種多媒體作品中人機(jī)交互方式有時(shí)需要采用多級(jí)菜單方式。雖然Authorware7提供了下拉菜單的交互方式,但要實(shí)現(xiàn)二級(jí)以上的下拉菜單還需借助外部函數(shù)來(lái)實(shí)現(xiàn)。利用外部文件WINAPI.U32中的有關(guān)菜單操作函數(shù),探討并研究了Authorware7實(shí)現(xiàn)多級(jí)下拉菜單的制作方法,并給出了一個(gè)三級(jí)下拉菜單的實(shí)例制作過(guò)程。

  關(guān)鍵詞: Authorware;外部函數(shù);菜單

0 引言

  在多媒體作品中有時(shí)希望用菜單方式與用戶(hù)進(jìn)行交互,由于需要進(jìn)行功能分類(lèi),多級(jí)菜單的使用在多媒體作品中也常被用到。Authorware7中提供了菜單交互方式,但若想設(shè)計(jì)二級(jí)以上菜單則必須引用一些外部函數(shù)。實(shí)現(xiàn)有關(guān)菜單操作的外部函數(shù)包含在名為WINAPI.U32的外部文件中。本文研究了在Authorware中利用外部函數(shù)設(shè)計(jì)出多級(jí)菜單的實(shí)現(xiàn)方法,并給出一個(gè)實(shí)例設(shè)計(jì)過(guò)程,對(duì)設(shè)計(jì)過(guò)程中可能出現(xiàn)的異常情況提供了相關(guān)處理方法。

1 有關(guān)菜單操作的外部函數(shù)

  首先將外部文件WINAPI.U32復(fù)制到當(dāng)前程序所在目錄下。所涉及的外部函數(shù)有:

 ?、臛etMenu(HWND hWnd),該函數(shù)取得分配給指定窗口的菜單的句柄。這是最高級(jí)的菜單句柄。

 ?、艷etSubMenu(HMENU hMenu, int nPos),該函數(shù)取得被指定菜單激活的下拉式菜單或子菜單的句柄。其中 nPos的值為菜單或子菜單的索引值,從0開(kāi)始。

 ?、荝emoveMenu(HMENU hMenu,UINT uPosition,UINT uFlags),該函數(shù)從指定菜單刪除一個(gè)菜單項(xiàng)或分離一個(gè)子菜單。如果菜單項(xiàng)打開(kāi)一個(gè)下拉式菜單或子菜單,RemoveMenu不銷(xiāo)毀該菜單或其句柄,允許菜單被重用。其中當(dāng)uFlags的值為0(MF_BYCOMMAND)時(shí),表示uPosition給出菜單項(xiàng)的標(biāo)識(shí)符。當(dāng)uFlags的值為1 024(MF_BYPOSITION)時(shí),表示uPosition給出菜單項(xiàng)基于零的相對(duì)位置。

  ⑷DrawMenuBar(HWND hWnd),該函數(shù)重畫(huà)指定菜單的菜單條。如果系統(tǒng)創(chuàng)建窗口以后菜單條被修改,則必須調(diào)用此函數(shù)來(lái)重畫(huà)修改了的菜單條。

  ⑸InsertMenu(HMENU hMenu, UINT uPosition,UINT uFlags,UINT uIDNewItem,LPCSTR lpNewItem),該函數(shù)插入一個(gè)新菜單項(xiàng)到菜單里,并使菜單里其他菜單項(xiàng)下移。

 ?、蔇eleteMenu( HMENU hMenu,UINT uPosition,UINT uFlags),該函數(shù)從指定菜單里刪除一個(gè)菜單項(xiàng)。如果此菜單項(xiàng)打開(kāi)了一個(gè)菜單或子菜單,則此函數(shù)銷(xiāo)毀該菜單或子菜單的句柄,并釋放該菜單或子菜單使用的存儲(chǔ)器。

2 菜單設(shè)計(jì)步驟

  2.1 設(shè)計(jì)菜單層次結(jié)構(gòu)圖

  首先將多媒體作品中的所有菜單內(nèi)容進(jìn)行分類(lèi),相同級(jí)別相同類(lèi)型的子菜單和菜單項(xiàng)放在一個(gè)下拉菜單中,從而設(shè)計(jì)出一個(gè)菜單結(jié)構(gòu)總圖。如設(shè)計(jì)一個(gè)三級(jí)菜單結(jié)構(gòu)如圖1所示。

001.jpg

  2.2 Authorware7中流程線(xiàn)上的菜單設(shè)計(jì)

002.jpg

 ?、艅h除系統(tǒng)文件菜單。主流程線(xiàn)上添加一個(gè)名為“刪除系統(tǒng)文件菜單”的群組圖標(biāo)。該群組圖標(biāo)設(shè)計(jì)如圖2所示。其中名為“文件”的交互圖標(biāo)下放置一個(gè)未命名的空的群組圖標(biāo),交互類(lèi)型為下拉菜單。擦除圖標(biāo)的擦除對(duì)象就是上述文件這個(gè)交互圖標(biāo)。其運(yùn)行效果是擦除原系統(tǒng)顯示的文件菜單,只留下本程序設(shè)計(jì)要求的菜單內(nèi)容。

003.jpg

 ?、圃O(shè)計(jì)菜單結(jié)構(gòu)圖中所有菜單。在主流程上按照菜單結(jié)構(gòu)圖從外到內(nèi)依次添加交互圖標(biāo),一個(gè)菜單添加一個(gè)交互圖標(biāo)。設(shè)計(jì)各個(gè)菜單時(shí),當(dāng)一個(gè)菜單的所有菜單項(xiàng)均為子菜單時(shí),該菜單下設(shè)計(jì)時(shí)至少放置一個(gè)下拉菜單項(xiàng),如菜單結(jié)構(gòu)圖中的菜單A,兩個(gè)菜單項(xiàng)均為子菜單,故設(shè)計(jì)時(shí)先添加一個(gè)菜單項(xiàng)A1,其目的是形成一個(gè)菜單,否則空的交互圖標(biāo)運(yùn)行時(shí)不會(huì)出現(xiàn)菜單。如果菜單中除了子菜單還有其他菜單項(xiàng),則僅放置那些菜單項(xiàng)即可,如菜單結(jié)構(gòu)圖中菜單B和菜單C。完成初始菜單設(shè)計(jì)后,如圖3所示。

  其中,每個(gè)交互類(lèi)型圖標(biāo)的屬性設(shè)置均相同,如圖4所示。

004.jpg

  2.3 子菜單的設(shè)計(jì)

  在流程線(xiàn)上再添加一個(gè)計(jì)算圖標(biāo),命名為“三級(jí)菜單的調(diào)整”,利用外部文件WINAPI.U32中的有關(guān)菜單操作函數(shù),實(shí)現(xiàn)三級(jí)菜單的設(shè)計(jì),計(jì)算圖標(biāo)中的代碼如下[1-2]:

  --獲得窗口菜單的句柄

  menuhandle:=GetMenu(WindowHandle)

  --獲得第一個(gè)菜單A的句柄

  subhandle1:=GetSubMenu(menuhandle,0)

  --獲得第二個(gè)菜單B的句柄

  subhandle2:=GetSubMenu(menuhandle,1)

  --獲得第3個(gè)菜單C的句柄

  subhandle3:=GetSubMenu(menuhandle,2)

  --獲得第4個(gè)菜單D的句柄

  subhandle4:=GetSubMenu(menuhandle,3)

  --獲得第5個(gè)菜單E的句柄

  subhandle5:=GetSubMenu(menuhandle,4)

  --刪除第5個(gè)菜單E

  RemoveMenu(menuhandle,4,1024)

  --刪除第4個(gè)菜單D

  RemoveMenu(menuhandle,3,1024)

  --重畫(huà)菜單欄

  DrawMenuBar(WindowHandle)

  --將菜單E插入菜單C的第1個(gè)菜單項(xiàng)并命名為"菜單E"成為三級(jí)菜單

  InsertMenu(subhandle3,0,1040,subhandle5,"菜單E")[2]

  --將菜單D插入菜單B的第2個(gè)菜單項(xiàng)并命名為"菜單D"成為三級(jí)菜單

  InsertMenu(subhandle2,1,1040,subhandle4," 菜單D")

  --刪除菜單C,準(zhǔn)備將其加為菜單A的第1菜單項(xiàng)

  RemoveMenu(menuhandle,2,1024)

  --刪除菜單B,準(zhǔn)備將其加為菜單A的第2個(gè)菜單項(xiàng)

  RemoveMenu(menuhandle,1,1024)

  --重畫(huà)菜單欄

  DrawMenuBar(WindowHandle)

  --將菜單B插入菜單A的第1個(gè)菜單項(xiàng)并命名為"菜單B"成為二級(jí)菜單

  InsertMenu(subhandle1,0,1040,subhandle2,"菜單B")

  --將菜單C插入菜單A作為第2個(gè)菜單項(xiàng)并命名為"菜單C"成為二級(jí)菜單

  InsertMenu(subhandle1,1,1040,subhandle3,"菜單C")

  --刪除菜單A原來(lái)的菜單項(xiàng)A(插入之后被下移到第3項(xiàng))

  DeleteMenu(subhandle1,2,1024)

  2.4 保存并打包運(yùn)行程序

  程序運(yùn)行結(jié)果如圖5所示。

005.jpg

3 可能出現(xiàn)的問(wèn)題及解決方法

  在設(shè)計(jì)過(guò)程及編譯、打包、運(yùn)行過(guò)程中可能會(huì)出現(xiàn)一些錯(cuò)誤信息,如提示缺少、找不到JS32.dll的出錯(cuò)信息,這時(shí)可從網(wǎng)上下載一個(gè)JS32.dll文件拷貝到C:\Windows\System32下。再如出現(xiàn)提示“Unable to display icon "****" because the following error has occurred:Xtra not found.Other objects may also fail to appear.Records of this session will not be saved ”信息,這是因?yàn)槲募诖虬鼤r(shí),需要把文件中所用到的相關(guān)Xtra文件拷貝到打包生成的EXE文件所在的同級(jí)目錄中,通常把Authorware安裝目錄下的Xtra文件夾整個(gè)復(fù)制到生成的EXE文件所在的同級(jí)目錄中。

4 結(jié)論

  本文利用外部文件WINAPI.U32中的有關(guān)菜單操作函數(shù),研究了在Authorware7中實(shí)現(xiàn)多級(jí)菜單的制作方法,并以三級(jí)菜單制作為例,提供了較為詳細(xì)的設(shè)計(jì)過(guò)程。

參考文獻(xiàn)

  [1] 吳偉信,傅子陽(yáng). Authorware中類(lèi)Windows彈出式菜單模板的設(shè)計(jì)與實(shí)現(xiàn)[J]. 福建電腦, 2007(10):167,169.

  [2] 溫杰. Authorware 菜單制作[J]. 電腦學(xué)習(xí), 2009(4):45-47.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
国产精品高潮久久| 韩日精品视频| 久久久999| 亚洲一区二区三区中文字幕| 亚洲激精日韩激精欧美精品| 欧美一区二区三区在线免费观看| 一本久久精品一区二区| 亚洲国产另类精品专区| 狠狠色综合播放一区二区| 国产欧美日韩综合一区在线播放| 欧美日韩国产成人在线| 欧美激情一区二区三区高清视频| 久久资源在线| 久久综合久色欧美综合狠狠| 久久久噜噜噜久久| 久久久久久久久综合| 欧美怡红院视频| 欧美在线播放一区二区| 欧美亚洲网站| 欧美中文字幕第一页| 欧美一区网站| 久久精品国产亚洲高清剧情介绍| 欧美一区二粉嫩精品国产一线天| 性欧美videos另类喷潮| 欧美一区二区啪啪| 久久精品视频免费| 久久视频这里只有精品| 久久久久一区二区三区四区| 久久天天躁狠狠躁夜夜爽蜜月| 久久久久久有精品国产| 久久久久免费| 模特精品裸拍一区| 欧美精品色一区二区三区| 欧美全黄视频| 国产精品不卡在线| 国产噜噜噜噜噜久久久久久久久 | 一区二区三区欧美视频| 一区二区三区你懂的| 午夜国产精品视频免费体验区| 亚洲欧美一级二级三级| 久久国产精品一区二区三区四区 | 欧美中文字幕在线视频| 亚洲丁香婷深爱综合| 亚洲精品日韩精品| 正在播放欧美视频| 香蕉成人伊视频在线观看 | 美女诱惑黄网站一区| 欧美激情自拍| 国产精品外国| 经典三级久久| 99精品久久免费看蜜臀剧情介绍| 亚洲综合欧美日韩| 91久久国产综合久久| 中国av一区| 久久九九国产精品怡红院| 欧美 日韩 国产在线| 欧美私人网站| 国语自产偷拍精品视频偷| 亚洲精品美女在线观看| 亚洲一区久久久| 91久久久一线二线三线品牌| 在线性视频日韩欧美| 欧美专区18| 欧美精品一区二区三区蜜臀| 国产精品视频内| 亚洲国产精品一区二区第四页av| 夜久久久久久| 亚洲国产精品一区二区久| 亚洲视频在线观看一区| 久久久夜色精品亚洲| 欧美日韩三级一区二区| 国产精品一区免费视频| 亚洲国产欧美一区二区三区久久| 亚洲一区二区高清| 亚洲破处大片| 久久精品国产第一区二区三区最新章节| 欧美成人午夜激情视频| 国产精品综合网站| 亚洲人成高清| 久久精品91久久香蕉加勒比| 亚洲女同精品视频| 免费视频一区| 国产噜噜噜噜噜久久久久久久久| 91久久精品国产91性色| 欧美一区二区日韩| 亚洲午夜一区二区三区| 欧美ed2k| 国产亚洲一区二区三区在线观看| 99精品视频网| 亚洲精品综合在线| 久久久久91| 国产精品盗摄一区二区三区| 亚洲国产成人高清精品| 欧美一区成人| 亚洲欧美精品| 欧美日韩妖精视频| 亚洲国产精品综合| 久久精品国产欧美激情| 欧美亚洲免费电影| 欧美日韩中文精品| 亚洲日本成人网| 亚洲国产精品国自产拍av秋霞| 欧美一级黄色录像| 国产精品欧美日韩久久| 亚洲免费观看在线观看| 亚洲老板91色精品久久| 免费观看成人网| 狠狠噜噜久久| 久久精品国产99| 久久久久**毛片大全| 国产欧美日韩综合精品二区| 亚洲一区二区伦理| 亚洲自拍16p| 欧美午夜理伦三级在线观看| 亚洲精品婷婷| 亚洲美女福利视频网站| 欧美黄色视屏| 亚洲国产婷婷| 亚洲美女精品成人在线视频| 欧美第十八页| 亚洲福利视频一区| 亚洲人成在线播放网站岛国| 麻豆久久久9性大片| 好看的日韩视频| 亚洲大胆视频| 免费看av成人| 亚洲福利国产精品| 亚洲精品免费观看| 欧美a级理论片| 亚洲啪啪91| 一本久久综合| 国产精品v欧美精品v日本精品动漫 | 中文国产成人精品| 亚洲伊人一本大道中文字幕| 欧美三级日本三级少妇99| 亚洲免费电影在线| 亚洲一区二区三区成人在线视频精品| 欧美日韩免费一区二区三区| 中文欧美日韩| 欧美一区二区高清| 国外视频精品毛片| 亚洲国产小视频在线观看| 欧美激情一区二区三区在线视频| 亚洲精品一级| 亚洲在线一区| 国产日韩高清一区二区三区在线| 欧美一区永久视频免费观看| 久久这里只有精品视频首页| 1000部国产精品成人观看| 亚洲精品一二| 国产精品爱啪在线线免费观看| 亚洲免费在线观看视频| 久久男人资源视频| 亚洲国产婷婷| 亚洲伊人伊色伊影伊综合网| 国产亚洲免费的视频看| 亚洲国内自拍| 欧美日韩国产一区二区三区地区| 亚洲午夜伦理| 久久全国免费视频| 亚洲精品免费一二三区| 午夜欧美精品| 一区二区三区在线观看国产| 日韩午夜一区| 国产精品青草久久久久福利99| 欧美一区=区| 欧美欧美午夜aⅴ在线观看| 亚洲一区二区三区午夜| 久久综合久久综合这里只有精品| 亚洲理论在线| 久久精品国产亚洲一区二区三区 | 久久影视精品| 红桃视频成人| 99视频精品全部免费在线| 国产精品高清一区二区三区| 欧美亚洲日本一区| 欧美高清视频一区二区| 亚洲人成在线观看网站高清| 欧美日韩另类丝袜其他| 亚洲伊人一本大道中文字幕| 久久蜜桃资源一区二区老牛 | 性色av香蕉一区二区| 欧美激情按摩在线| 亚洲自拍高清| 欧美理论电影在线观看| 欧美一区=区| 欧美视频在线一区二区三区| 亚洲国产精品高清久久久| 国产精品麻豆va在线播放| 亚洲精品免费电影| 国产原创一区二区| 亚洲欧美春色| 亚洲精品免费网站| 久久综合狠狠| 亚洲欧美日韩综合aⅴ视频| 欧美精品自拍| 亚洲国产va精品久久久不卡综合| 国产精品久久久久久久久免费| 91久久国产精品91久久性色| 国产欧美日韩一区二区三区|