




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Authorware實(shí)戰(zhàn)開(kāi)發(fā)專題之制作Windows標(biāo)準(zhǔn)菜單方法(2 時(shí)間:2007-09-30來(lái)源:汕大4U2V工作室作者:發(fā)布人:點(diǎn)擊:次關(guān)鍵字:迅雷Google Baidu Authorware實(shí)戰(zhàn)專題 5.2 利用Budmenu.u32制作Windows“特色”菜單利用tMsControls.u32制作的Windows標(biāo)準(zhǔn)菜單有個(gè)局限性,就是只能制作最多兩級(jí)的彈出式子菜單,而制作三級(jí)以上的子菜單它就“黔驢技窮”了,下面再介紹一個(gè)制作Windows標(biāo)準(zhǔn)彈出式菜單的擴(kuò)展函數(shù): Budmenu.u32。Budmenu.u32目前的最新版5.2 利用Budmenu.u32制作Windows“特
2、色”菜單創(chuàng)建彈出式菜單句柄Menu := mCreatePopupMenu(添加菜單項(xiàng)ok := mAppendMenu( Menu, Flags , MenuID , MenuText 設(shè)置消息鉤子與Authorware通信ok := mMenuHookOn( WindowHandle 顯示菜單,x,y為顯示菜單的坐標(biāo)值ok := mTrackPopupMenu( Menu , Flags , x , y , Reserved , WindowHandle , Reserved 判斷菜單項(xiàng)的選擇LastMenuID := mGetLastMenuID(設(shè)置菜單項(xiàng)的選中屬性,Check參數(shù)有M
3、F_CHECKED、MF_UNCHECKED屬性ok := mCheckMenuItem( Menu , ID , Check 檢測(cè)并獲取菜單項(xiàng)的選中狀態(tài)屬性ok := mGetMenuState( Menu , Id , Flags 設(shè)置菜單項(xiàng)的允許/禁止,Enable參數(shù)有MF_ENABLED、MF_DISABLED、MF_GRAYED 屬性ok := mEnableMenuItem( Menu , ID , Enable 刪除菜單項(xiàng)或者子菜單ok := mDeleteMenu( Menu , ID , Flags 修改存在菜單項(xiàng)的顯示文字ok := mModifyMenu( Menu ,
4、 ID , Flags , ID , MenuText 設(shè)置菜單項(xiàng)的Alt快捷鍵,例如&Introduction快捷鍵就為Alt+I,菜單顯示效果為Introductionok := mAppendMenu( SelectMenu , 0 , 100 , &Introduction 導(dǎo)入BMP圖片文件作為菜單項(xiàng),這是1.2Beta1版本的新功能mLoadBitmapFile( theFile 從外部UCD導(dǎo)入BMP圖片資源,Budmenu.u32內(nèi)部提供了8個(gè)小圖片,如下圖5.7所示。mLoadBitmapResource( resourceFile, resourceNumber 添加BMP
5、圖片菜單項(xiàng)mAppendBitmapMenu( Menu , Flags , ID , Bitmap設(shè)置菜單項(xiàng)的Checked標(biāo)志為指定的BMP圖片資源mSetMenuItemBitmaps(Menu, ID, Flags, BitmapUnchecked, BitmapChecked釋放BMP圖片資源mFreeBitmapResource( bitmap 釋放BMP圖片文件mFreeBitmapFile( bitmap 圖5.7 Budmenu.u32自帶的BMP圖片資源Budmenu.u32擴(kuò)展函數(shù)是基于Windows API函數(shù)開(kāi)發(fā)的Authorware擴(kuò)展函數(shù),因此利用它來(lái)制作彈出式菜
6、單的時(shí)候,首先必須對(duì)一些固定變量進(jìn)行聲明賦值,它們的名稱和值列表如下:MF_POPUP := 16MF_BYCOMMAND := 0MF_BYPOSITION := 1024MF_SEPARATOR := 2048MF_ENABLED := 0MF_GRAYED := 1MF_DISABLED := 2MF_UNCHECKED := 0MF_CHECKED := 8MF_USECHECKBITMAPS := 512MF_STRING := 0MF_BITMAP := 4MF_OWNERDRAW := 256MF_MENUBARBREAK := 32MF_MENUBREAK := 64MF_UN
7、HILITE := 0MF_HILITE := 128對(duì)Budmenu.u32函數(shù)有一些了解后,我們馬上開(kāi)工,制作一個(gè)有“特色”的Windows標(biāo)準(zhǔn)下拉菜單及鼠標(biāo)右鍵彈出式菜單。范例的程序流程圖如下圖5.8所示: 圖5.8 Budmenu.u32范例程序流程圖(1變量定義如圖5.8的程序流程中,“變量定義”計(jì)算圖標(biāo)的代碼如上述的固定變量列表,主要是對(duì)一些必須的固定變量進(jìn)行賦值(2為創(chuàng)建下拉彈出式菜單編寫(xiě)代碼在“創(chuàng)建菜單”計(jì)算圖標(biāo)寫(xiě)入如下代碼:-以下代碼定義菜單標(biāo)識(shí)IDMN_LOGIN:=100MN_RELOGIN:=101MN_LOGOUT:=102MN_WIN:=200MN_Unix:=20
8、1MN_MEDIA:=202MN_DB:=203MN_ADOBE:=300MN_MM:=301MN_AW:=400MN_DR:=401MN_FL:=402MN_PR:=403MN_PS:=404MN_BMP:=500MN_HELP:=501-以下代碼創(chuàng)建系統(tǒng)登陸菜單SYSMenu:=mCreatePopupMenu(mAppendMenu(SYSMenu,0,MN_LOGIN,登陸(&L mAppendMenu(SYSMenu,0,MN_RELOGIN,注銷(&R mAppendMenu(SYSMenu,0,MN_LOGOUT,退出(&E-以下代碼創(chuàng)建三級(jí)子菜單TubMenu1:=mCreat
9、ePopupMenu(TubMenu2:=mCreatePopupMenu(mAppendMenu(TubMenu1,0,MN_AW,AuthorwareTabCtrl+AmAppendMenu(TubMenu1,0,MN_DR,Director TabCtrl+D mAppendMenu(TubMenu1,0,MN_FL,Flash TabCtrl+FmAppendMenu(TubMenu2,0,MN_PS,&PhotoshopTabCtrl+P mAppendMenu(TubMenu2,0,MN_PR,&PremIEre TabCtrl+E mCheckMenuItem(TubMenu1,
10、MN_AW,MF_CHECKED -設(shè)置菜單項(xiàng)為Checked mEnableMenuItem(TubMenu2,MN_PR,MF_GRAYED -設(shè)置菜單項(xiàng)為灰色不可用-以下代碼創(chuàng)建二級(jí)子菜單SubMenu:=mCreatePopupMenu(mAppendMenu(SubMenu,MF_POPUP,TubMenu1,&MacromediamAppendMenu(SubMenu,MF_POPUP,TubMenu2,&Adobe-創(chuàng)建版面選擇菜單BBSMenu:=mCreatePopupMenu(mAppendMenu(BBSMenu,0,MN_WIN,Windows NTmAppendMen
11、u(BBSMenu,0,MN_UNIX,Unix LinuxmAppendMenu(BBSMenu,MF_SEPARATOR,0,mAppendMenu(BBSMenu,MF_POPUP,SubMenu,MultimediamAppendMenu(BBSMenu,MF_SEPARATOR,0,mAppendMenu(BBSMenu,0,MN_DB,DataBasemCheckMenuItem(BBSMenu,MN_DB,MF_CHECKED-創(chuàng)建系統(tǒng)幫助菜單AboutMenu := mCreatePopupMenu(bmPic:=mLoadBitmapFile(FileLocation4U2V
12、.bmp -導(dǎo)入BMP圖片作為菜單mAppendMenu(AboutMenu,0,MN_HELP, 關(guān)于.mAppendBitmapMenu(AboutMenu,0,MN_BMP,bmPic(3顯示菜單為顯示圖標(biāo)“工具欄”導(dǎo)入一個(gè)工具欄的背景圖,接著添加交互“顯示菜單”如圖5.8所示。在交互“顯示菜單”的右邊添加“系統(tǒng)登陸”按鈕響應(yīng)交互分支,它們的二級(jí)程序流程圖如下圖5.9所示。 圖5.9 “系統(tǒng)登陸”按鈕響應(yīng)交互分支流程圖為了達(dá)到更加逼真和一致的效果,按鈕最好自己設(shè)計(jì)成為和工具欄背景一樣的風(fēng)格,然后導(dǎo)入為自定義按鈕。計(jì)算圖標(biāo)“show popup”的代碼如下:mTrackPopupMenu(
13、SYSMenu,0,ResponseLeft系統(tǒng)登陸+WindowLeft,ResponseTop系統(tǒng)登陸+ResponseHeight系統(tǒng)登陸+WindowTop,0,WindowHandle,0計(jì)算圖標(biāo)“get menu ID”的代碼如下:LastMenuID:=mGetLastMenuID(計(jì)算圖標(biāo)“unhighlight menu”的代碼如下:Checked系統(tǒng)登陸:=FALSE同理建立“版面選擇”和“系統(tǒng)幫助”兩個(gè)按鈕相應(yīng)分支,最簡(jiǎn)單的方法是拷貝“系統(tǒng)登陸”分支然后進(jìn)行相應(yīng)的修改。(4菜單的交互設(shè)計(jì)Budmenu.u32是基于WINDOWS API開(kāi)發(fā)的擴(kuò)展函數(shù),要與Authorwa
14、re程序通信需要設(shè)置消息鉤子,圖5.8中的計(jì)算圖標(biāo)“設(shè)置hook on”就起到這個(gè)作用,其計(jì)算代碼為:mMenuHookOn(WindowHandle。需要注意的是,在程序結(jié)束的時(shí)候必須用函數(shù)mMenuHookOff(停止消息鉤子,否則會(huì)導(dǎo)致一些意想不到的麻煩。圖5.8流程圖中的“菜單交互”設(shè)計(jì)了一系列交互,其中“RightMouseDown”條件響應(yīng)分支為產(chǎn)生鼠標(biāo)右鍵彈出式菜單的交互分支(設(shè)置為永久交互,其代碼如下:mTrackPopupMenu(BBSMenu,0,CursorX+WindowLeft,CursorY+WindowTop,0,Wind owHandle,0LastMenuI
15、D:=mGetLastMenuID(“LastMenuID 0”條件響應(yīng)分支是檢測(cè)用戶選擇的具體菜單項(xiàng),其二級(jí)流程圖如下圖5.10所示。其中“Set menu”交互就是相應(yīng)的菜單項(xiàng)條件響應(yīng)分支,例如“系統(tǒng)登陸”菜單中的“登陸”菜單項(xiàng)的交互條件就設(shè)置為: LastMenuID=MN_LOGIN,其它的分支都類似的設(shè)置。 圖5.10 LastMenuID 0條件響應(yīng)分支二級(jí)流程圖這里要注意一點(diǎn)的是每次交互完畢后都必須初始化LastMenuID值,即設(shè)置其值為“0”,否則程序不會(huì)自動(dòng)更新紀(jì)錄用戶下次的菜單選擇交互,因此在計(jì)算圖標(biāo)“reset LastMenuClicked”中編寫(xiě)代碼:LastMenuID:=0,這一點(diǎn)和使用tMsControls.u32是截然不同的概念,使用過(guò)程中切記!“修改”按鈕響應(yīng)分支是修改菜單項(xiàng)的分支,核心代碼如下,具體就不闡述了。mModifyMenu(AboutMenu,MN_HELP,MF_BYCOMMAND,MN_HELP,EntryText最后是“退出”按鈕響應(yīng)分支設(shè)計(jì),其代碼如下:mMenuHookOff( -
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 土地綜合整治投標(biāo)方案
- 沉井施工期質(zhì)量檢驗(yàn)與評(píng)定合同
- 婚姻解除后財(cái)產(chǎn)分割與經(jīng)濟(jì)補(bǔ)償協(xié)議范本
- 防汛圍欄井安裝方案
- 攔污柵項(xiàng)目規(guī)劃方案
- 鄉(xiāng)村網(wǎng)絡(luò)面試題及答案
- 內(nèi)外踝骨折護(hù)理常規(guī)
- 天花玻璃安裝方案
- 金融創(chuàng)新:廠房股權(quán)轉(zhuǎn)讓與融資租賃一體化合同
- 2026版《全品高考》選考復(fù)習(xí)方案生物0420 課時(shí)作業(yè)(十九) 細(xì)胞的分化、衰老、死亡 含答案
- 生物必修1教師用書(shū)
- 工程合同平移協(xié)議
- 園藝植物育種學(xué)知到課后答案智慧樹(shù)章節(jié)測(cè)試答案2025年春浙江大學(xué)
- 《電力機(jī)車制動(dòng)系統(tǒng)檢修與維護(hù)》課件 項(xiàng)目二任務(wù)四檢修中繼閥
- GB/T 15683-2025糧油檢驗(yàn)大米直鏈淀粉含量的測(cè)定
- 2025吉林省安全員C證考試(專職安全員)題庫(kù)及答案
- 電鉆清洗消毒流程
- 裝修貸款申請(qǐng)書(shū)
- 造林安全文明施工方案
- 員工作風(fēng)培訓(xùn)
- 施工現(xiàn)場(chǎng)防揚(yáng)塵、防噪音、防光污染措施
評(píng)論
0/150
提交評(píng)論