您當(dāng)前的位置:主頁(yè)>>AutoCAD>>AutoCAD二次開(kāi)發(fā)  
           自定義菜單文件

     實(shí)例創(chuàng)建新的菜單文件“user.mns”
         Step1 :定義菜單組
(1)打開(kāi)記事本程序,創(chuàng)建一個(gè)新的文本文件。
(2)在文件中輸入如下代碼。
//
//SampleMenuFile
//
***MENUGROUP=USER
即定義該菜單文件屬于“USER”菜單組。
       Step2 :定義輔助菜單
在上一步驟輸入的代碼后繼續(xù)輸入如下代碼:
***AUX2
//Shift button
$P0=SHORTCUT$p0=*
該代碼定義用戶在使用Shift 右鍵時(shí)所調(diào)用的快捷菜單“SHORTCUT”。
       Step3 :定義下拉菜單和快捷菜單
在上一步驟輸入的代碼后繼續(xù)輸入如下代碼:
***POP0
**SHORTCUT
ID_SM[&SampleMenu]
ID_S1[&Polyline\tCtrl 3]^C^C_pline
ID_S2[&Array...\tCtrl 4]^C^C_array
[--]
ID_S3[->SubMenu]
ID_S31[SubMenu1]^C^C
ID_S32[<-SubMenu2...]^C^C
[--]
ID_S4[ImageMenu...]$I=USER.IMAGE_MENU$I=USER.*
ID_S5[~DisableMenu]^C^C
ID_S6[!.CheckedMenu]^C^C
***POP14
**PULL_DOWN
ID_SM[&SampleMenu]
ID_S1[&Polyline\tCtrl 3]^C^C_pline
ID_S2[&Array...\tCtrl 4]^C^C_array
[--]
ID_S3[->SubMenu]
ID_S31[SubMenu1]^C^C
ID_S32[<-SubMenu2...]^C^C
[--]
ID_S4[ImageMenu...]$I=USER.IMAGE_MENU$I=USER.*
ID_S5[~DisableMenu]^C^C
ID_S6[!.CheckedMenu]^C^C
注意上兩部分代碼分別定義了快捷菜單“SHORTCUT”和下拉菜單“PULL_DOWN”,這兩部分定義的菜單項(xiàng)完全一樣,不同之間僅在于菜單名稱(chēng)。
這部分定義的菜單分別給出了菜單的加速鍵、級(jí)聯(lián)子菜單以及菜單項(xiàng)的顯示控制等功能的定義。
        Step4 :定義工具欄
在上一步驟輸入的代碼后繼續(xù)輸入如下代碼:
***TOOLBARS
**TB_USER1
ID_TbUser1[_Toolbar("UserToolbars1",_Floating,_Show,100,100,1)]
ID_Pline[_Button("Polyline","ICON_16_PLINE","ICON_16_PLINE")]^C^C_pline
ID_Array[_Button("Array","ICON_16_ARRREC","ICON_16_ARRREC")]^C^C_array
ID_Image[_Button("Image",user16.bmp,user32.bmp)]$I=USER.IMAGE_MENU
$I=USER.*
**TB_USER2
ID_TbUser2[_Toolbar("UserToolbars2",_Floating,_Show,200,100,1)]
ID_Flyout[_Flyout("Flyout","ICON_16_PLINE","ICON_16_PLINE",
_OtherIcon,USER.TB_USER1)]
[--]
[_Control(_Color)]
[--]
[_Control(_Layer)]
以上代碼定義了兩個(gè)工具欄“TB_USER1”和“TB_USER2”。工具欄“TB_USER1”中包括三個(gè)按鈕“Polyline”、“Array”和“Image”,其中“Image”按鈕的圖標(biāo)資源為用戶創(chuàng)建的兩個(gè)位圖文件“user16.bmp”和“user32.bmp”,并保存在 AutoCAD 的庫(kù)搜索路徑中。
工具欄“TB_USER2”中引用“TB_USER1”來(lái)定義了一個(gè)彈出式工具欄,同時(shí)還定義了兩個(gè)控件“Color”和“Layer”。
        Step5 :定義圖像控件菜單
在上一步驟輸入的代碼后繼續(xù)輸入如下代碼:
***IMAGE
**IMAGE_MENU
[NutImage]
[user(s1)]^C^C
[user(s2)]^C^C
[user(s3)]^C^C
[user(s4)]^C^C
[user(s5)]^C^C
[user(s6)]^C^C
以上代碼定義了一個(gè)圖像控件菜單,其中所用到的幻燈片和幻燈片庫(kù)的創(chuàng)建,請(qǐng)參見(jiàn)第31章。由于該定義僅出于演示的目的,因此并沒(méi)有給出具體的命令序列,用戶可根據(jù)需要來(lái)添加。
       Step6 :定義屏幕菜單
在上一步驟輸入的代碼后繼續(xù)輸入如下代碼:
***SCREEN
**S
[MianMenu]^C^C^P(ai_rootmenus)^P
[Polyline]^C^C_pline
[Array...]^C^C_array
[SubMenu]$S=USER.SUBMENU
[ImageMenu...]$I=USER.IMAGE_MENU$I=USER.*
**SUBMENU2
[PrevMenu]$S=
[SubMenu1]^C^C
[SubMenu2]^C^C
以上代碼定義了帶有子菜單的屏幕菜單。
        Step7 :定義加速鍵
在上一步驟輸入的代碼后繼續(xù)輸入如下代碼:
***ACCELERATORS
ID_S1[CONTROL "3"]
ID_S2[CONTROL "4"]
["NUMPAD5"]@x^h
["NUMPAD6"]<0
["NUMPAD9"]<45
["NUMPAD8"]<90
["NUMPAD7"]<135
["NUMPAD4"]<180
["NUMPAD1"]<-135
["NUMPAD2"]<-90
["NUMPAD3"]<-45
以上代碼中除了定義“Pline”命令和“Array”的快捷鍵以外,還定義了擴(kuò)展坐標(biāo)輸入,即數(shù)字鍵區(qū)作如下修改:5鍵輸入@符號(hào),其他數(shù)字鍵輸入小于號(hào)(<)和該鍵位置在數(shù)字鍵區(qū)中表示的角度值。這樣用戶來(lái)輸入相對(duì)極坐標(biāo)時(shí)可利用數(shù)字鍵快速輸入,例如極坐標(biāo):@50<45,用戶只需按數(shù)字鍵區(qū)的5鍵、數(shù)字“50”和數(shù)字鍵區(qū)的9鍵即可。
        Step8 :定義菜單幫助
在上一步驟輸入的代碼后繼續(xù)輸入如下代碼:
***HELPSTRINGS
ID_S1[Createsa2Dpolyline]
ID_S2[Createsmultiplecopiesofobjectsinapattern]
ID_S31[Thesample1forSubMenu]
ID_S32[Thesample2forSubMenu]
ID_S4[ThesampleforImeageMenu]
ID_S5[ThesampleforDisableMenu]
ID_S6[ThesampleforCheckedMenu]
以上代碼給出了每個(gè)菜單項(xiàng)相應(yīng)的提示。
        Step9 :保存文件
以“user.mns”為名保存該文件。
說(shuō)明AutoCAD命令前加“_”是為了語(yǔ)言的兼容性。
34.3.2自定義菜單文件的使用
用戶編寫(xiě)的菜單文件“USER.MNU”是文本文件。首次使用該菜單文件時(shí),AutoCAD會(huì)對(duì)其進(jìn)行編譯,編譯后生成可被直接使用的二進(jìn)制菜單文件“USER.MNC”。加載菜單文件的命令如下:
命令行:menu
調(diào)用該命令后,系統(tǒng)彈出“SelectMenuFl1e(選擇菜單文件)”對(duì)話框。在該對(duì)話框中,指定打開(kāi)文件類(lèi)型為“MenuTemplate(*.MNU)”項(xiàng),再選擇要加載的“USER.MNU”文件,結(jié)果如圖34-4所示。

用戶可再次使用“menu”命令,加載AutoCAD主目錄“Support”子目錄中的“acad.mns”文件來(lái)恢復(fù)原來(lái)的系統(tǒng)菜單。
如果用戶希望將自定義的菜單和原來(lái)的系統(tǒng)菜單結(jié)合起來(lái)使用,則可選擇菜單【Tools(工具)】→【Customize(自定義)】→【Menus…(菜單)】,系統(tǒng)彈出“MenuCustomization(菜單自定義)”對(duì)話框,如圖34-5所示。

選擇“MenuGroups(菜單組)”選項(xiàng)卡,并單擊Browse...按鈕選擇自定義的“user.mns”菜單文件,然后單擊Load...按鈕可加載該文件。加載后,在“MenuGroups(菜單組)”列表中將增加用戶所定義的菜單組“USER”。

選擇“MenuBar(菜單欄)”選項(xiàng)卡,如圖34-6所示。在“MenuGroup(菜單組)”下拉列表中選擇“USER”項(xiàng),此時(shí)在“Menus(菜單)”列表中將相應(yīng)地顯示出該菜單文件中定義的菜單項(xiàng)“SampleMenu。選擇該項(xiàng)后,再選擇“MenuBar(菜單欄)”列表中的“Help(幫助)”項(xiàng),然后單擊Insert>>按鈕,將“SampleMenu”菜單插入到“Window(窗口)”和“Help(幫助)”之間。

完成上述設(shè)置后,單擊Close按鈕關(guān)閉該對(duì)話框使用戶定義的菜單生效,結(jié)果如圖34-7所示。
民眾工作室.制作      版權(quán)所有