您當前的位置:主頁>>AutoCAD>>AutoCAD二次開發(fā) |
自定義菜單文件 實例:創(chuàng)建新的菜單文件“user.mns” Step1 :定義菜單組 (1)打開記事本程序,創(chuàng)建一個新的文本文件。 (2)在文件中輸入如下代碼。 // //SampleMenuFile // ***MENUGROUP=USER 即定義該菜單文件屬于“USER”菜單組。 Step2 :定義輔助菜單 在上一步驟輸入的代碼后繼續(xù)輸入如下代碼: ***AUX2 //Shift button $P0=SHORTCUT$p0=* 該代碼定義用戶在使用Shift 右鍵時所調(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”,這兩部分定義的菜單項完全一樣,不同之間僅在于菜單名稱。 這部分定義的菜單分別給出了菜單的加速鍵、級聯(lián)子菜單以及菜單項的顯示控制等功能的定義。 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)] 以上代碼定義了兩個工具欄“TB_USER1”和“TB_USER2”。工具欄“TB_USER1”中包括三個按鈕“Polyline”、“Array”和“Image”,其中“Image”按鈕的圖標資源為用戶創(chuàng)建的兩個位圖文件“user16.bmp”和“user32.bmp”,并保存在 AutoCAD 的庫搜索路徑中。 工具欄“TB_USER2”中引用“TB_USER1”來定義了一個彈出式工具欄,同時還定義了兩個控件“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 以上代碼定義了一個圖像控件菜單,其中所用到的幻燈片和幻燈片庫的創(chuàng)建,請參見第31章。由于該定義僅出于演示的目的,因此并沒有給出具體的命令序列,用戶可根據(jù)需要來添加。 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”的快捷鍵以外,還定義了擴展坐標輸入,即數(shù)字鍵區(qū)作如下修改:5鍵輸入@符號,其他數(shù)字鍵輸入小于號(<)和該鍵位置在數(shù)字鍵區(qū)中表示的角度值。這樣用戶來輸入相對極坐標時可利用數(shù)字鍵快速輸入,例如極坐標:@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] 以上代碼給出了每個菜單項相應的提示。 Step9 :保存文件 以“user.mns”為名保存該文件。 說明AutoCAD命令前加“_”是為了語言的兼容性。 34.3.2自定義菜單文件的使用 用戶編寫的菜單文件“USER.MNU”是文本文件。首次使用該菜單文件時,AutoCAD會對其進行編譯,編譯后生成可被直接使用的二進制菜單文件“USER.MNC”。加載菜單文件的命令如下: 命令行:menu 調(diào)用該命令后,系統(tǒng)彈出“SelectMenuFl1e(選擇菜單文件)”對話框。在該對話框中,指定打開文件類型為“MenuTemplate(*.MNU)”項,再選擇要加載的“USER.MNU”文件,結(jié)果如圖34-4所示。 用戶可再次使用“menu”命令,加載AutoCAD主目錄“Support”子目錄中的“acad.mns”文件來恢復原來的系統(tǒng)菜單。 如果用戶希望將自定義的菜單和原來的系統(tǒng)菜單結(jié)合起來使用,則可選擇菜單【Tools(工具)】→【Customize(自定義)】→【Menus…(菜單)】,系統(tǒng)彈出“MenuCustomization(菜單自定義)”對話框,如圖34-5所示。 選擇“MenuGroups(菜單組)”選項卡,并單擊Browse...按鈕選擇自定義的“user.mns”菜單文件,然后單擊Load...按鈕可加載該文件。加載后,在“MenuGroups(菜單組)”列表中將增加用戶所定義的菜單組“USER”。 選擇“MenuBar(菜單欄)”選項卡,如圖34-6所示。在“MenuGroup(菜單組)”下拉列表中選擇“USER”項,此時在“Menus(菜單)”列表中將相應地顯示出該菜單文件中定義的菜單項“SampleMenu。選擇該項后,再選擇“MenuBar(菜單欄)”列表中的“Help(幫助)”項,然后單擊Insert>>按鈕,將“SampleMenu”菜單插入到“Window(窗口)”和“Help(幫助)”之間。 完成上述設置后,單擊Close按鈕關閉該對話框使用戶定義的菜單生效,結(jié)果如圖34-7所示。 |
民眾工作室.制作 版權(quán)所有 |