(完整)4_UG二次開發實用教程第四章_第1頁
(完整)4_UG二次開發實用教程第四章_第2頁
(完整)4_UG二次開發實用教程第四章_第3頁
(完整)4_UG二次開發實用教程第四章_第4頁
(完整)4_UG二次開發實用教程第四章_第5頁
已閱讀5頁,還剩45頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第 4 章 用戶界面開發技術ug 用戶可以通過用戶界面與應用程序及ug 系統進行交互操作,界面開發工具包括:菜單編輯工具ug/open menuscript 、對話框編輯工具ug/open uistyler 、系統對話框以及mfc 等,用戶可以綜合運用各種界面開發工具來開發出適合用戶自己的菜單、快捷工具條和對話框, 從而實現應用程序與 ug系統用戶界面下的無縫集成。4.1 uistyler對話框uistyler是用戶開發 ug對話框的可視化工具,它可以避免復雜的圖形用戶接口( gui)編程,其設計對話框的方式與visual c+ 很相似,即利用對話框中基本單元的組合生成不同的對話框,對話框中所

2、有控件設計都是實時可見的。 ug/open uistyler主要提供了以下的功能:1、 提供了讓用戶創建ug風格對話框的可視化環境, 并能生成 ug/open uistyler文件和 c代碼,從而使用戶在使用時不必考慮圖形界面的實現。2、利用可視化環境快速生成ug風格的對話框,從而減少開發時間。3、通過選取和放置控件,從而實現所見即所得。4、可以在對話框中實現用戶自定義的位圖。5、提供了屬性編輯器,從而允許用戶設置和修改控件屬性。6、ug/open uistyler生成的對話框可與ug/open menuscript 、ug/open api 、 ug/open grip 集成,便于用戶執行二

3、次開發程序。4.1.1 uistyler對話框的應用 對話框的應用環境ug的 uistyler應用模塊提供給用戶可視化建立ug風格對話框的功能 。 在ug 主 菜 單 中 選 擇 菜 單 項 “ application user interface styler.”,進入 uistyler應用模塊, uistyler可視化界面如圖4-1所示。圖 4-1 uistyler 可視化界面 對話框設計uistyler可視化界面包括基本對話框、對象瀏覽器、屬性編輯器、控件欄和控件編輯工具五部分。 用戶在控件欄中選擇控件后放置在基本對話框中,通過對象瀏覽器查看在基本對話框中設置

4、的控件對象信息、利用控件編輯工具調整控件布局, 通過屬性編輯器編輯對話框及指定控件的屬控件控件編輯工對 象 瀏 覽基本對話屬性編輯性。利用 uistyler創建對話框并保存,系統將自動生成三個文件:1*.c文件:對話框c 語言源文件的模板文件,用戶復制該模板文件,補充回調函數代碼,將生成對話框應用程序文件,.dll文件應放在應用程序主目錄的startup子目錄下,在 ug系統啟動是加載;2*.h 文件:定義 *.c 文件中函數原型的 *.c 文件的頭文件;3*.dlg文件:對話框文件,該文件需要被復制到應用程序主目錄的 application子目錄下,由用戶應用程序調用。 對話框

5、的應用步驟(1)設計對話框界面草圖;(2)利用 uistyler工具創建對話框;(3)設置對話框中的回調函數;(4)保存對話框;(5)將系統自動生成的對話框c語言模板文件復制到vc+ 項目中;(6)修改 c文件,添加回調函數代碼,編譯連接文件;(7) 將對話框文件(.dlg ) 復制到相應的目錄下, 將共享庫文件(.dll)復制到相應的目錄下;(8)運行、測試及調試應用程序。具 體 每 一 步 的 詳 細 介 紹 請 參 考 系 統 幫 助 文 件 中tools user interface styler。在 uistyler對話框開發過程中,涉及到編程的僅5、6 兩個步驟。 基

6、本對話框圖 4-2 是一個最簡單的對話框,由三個系統按鈕和對話框標題組成。對話框的屬性包括基本屬性、被選擇屬性和回調函數。圖 4-2 基本對話框1、對話框基本屬性對話框的基本屬性如圖4-3 所示。其中包括對話框標題、提示信息、對話框前線名稱、調用對話框的形式以及導航按鈕等。圖 4-3 對話框基本屬性對話框標題(dialog title ):對話框標題顯示在對話框的標題欄中。提示信息( cue ):對話框提示信息將顯示在ug的提示欄中。前綴名稱( prefix name ):對話框前綴名稱將作為所有對話框控件名和對話框回調函數名的前綴,默認值為change。注意:同一工程中的不同對話框應選用不同

7、的前綴名稱。對話框類型(dialog type) : 對話框類型有 bottom 和 top兩種, bottom類型表明該對話框需使用導航按鈕,top 類型則相反,一般采用bottom類型。對話框調用點( launch dialog from ):對話框調用點是指對話框被調用的位置和方式,包括回調函數調用、菜單調用、user exit調用和所有調用方式。導航按鈕設置( navigation buttons ):uistyler提供了 ok 、back 、apply 和 cancel4 種導航按鈕。對所有的對話框,ok和 cancel 按鈕都是必須的。對已經選擇的導航按鈕,還可以指定其激活狀態。

8、在導航按鈕激活欄里沒有被激活的導航按鈕, 在對話框被調用時, 按鈕是不能被單擊的。對話框尺寸( allow dialog to resize):當對話框的允許尺寸改變屬性被設置時,對話框在調用時,允許用戶改變對話框的尺寸。2、對話框選擇屬性對話框的選擇屬性如圖4-4 所示。包含了對話框激活開關、 對話框選擇方式和對話框選擇范圍定義。選擇方式定義了在當前對話框被激活時,在窗口中選擇對象的方式是否變化。其共有 3 種,即無變化(繼承上次選擇操作的屬性定義)、單選、魯棒選擇等。選擇范圍定義了當前對話框被激活時,被選擇對象所有范圍是否變化。其有4 種方式,即不變化、在裝配中、僅在工作部件中、在工作部件

9、和子裝配中。圖 4-4 對話框選擇屬性2、對話框基本回調函數對話框的基本回調函數如圖4-5 所示。所有對話框都有 6 種基本回調函數,它們分別是 apply 按鈕的回調函數、 back 按鈕的回調函數、 cancel按鈕的回調函數、 ok按鈕的回調函數、對話框構造函數和對話框析構函數。對話框構造函數在 ug構造對話框完成之后, 用戶應用執行之前調用。由于此時對話框上的所有控件都可以被使用,因此構造函數是初始化對話框的最佳位置。 對話框析構函函數是在ug對話框關閉之前被調用, 此時,對話框中的控件仍然可以被訪問到。對話框析構函數為用戶提供了諸如釋放內存等析構操作的位置。圖 4-5 對話框回調函數

10、4.1.2 uistyler控件 控件種類uistyler提 供 的控件 有 靜態文 本 ( label )、 整型 數值輸 入框(integer )、浮點型數值輸入框(real)、字符串輸入框( string )、寬字符輸入框( wide string )、多行文本框( multi-line text)、按鈕(push button ) 、 復選框(toggle) 、 分隔線(separator ) 、 位圖 (bitmap) 、布局按鈕(button layout ) 、 下拉列表框(option menu ) 、 單選按鈕(radio box)、工具組( tool pale

11、tte )、整型數滑動條( scale integer )、實型數滑動條( scale real )、單選列表框( single selection list)、多選列表框( multi-select list )、單選框( selection box)、滾動窗口(scrolled window )等控件,控件具體用法與vb等可視化語言相似,uistyler控件種類如圖 4-6 所示。圖 4-6 對話框控件 控件訪問.1 常用數據類型和函數訪 問uistyler控 件 經 常 用 到 的 數 據 類 型 是 結 構uf_styler_item_value_type_

12、s、函數uf_styler_create_dilaog() 、函數 uf_styler_ask_value() 和函數 uf_styler_set_value()。1、uf_styler_item_value_type_s 結構 uf_styler_item_value_type_s 通常在查詢對話框控件屬性和設置對話柜控件屬性時使用。如函數uf_styler_ask_value() 的輸出參數和函數uf_styler_set_value() 的輸入參數。 結構見uf_styler_item_value_type_s定義如下:struct uf_styler_item_value_type_s

13、 int reason; const char *item_id; int subitem_index; int count; int item_attr; int indicator; uf_styler_value_t value; ; 表 4-1 結構 uf_styler_item_value_type_s的成員說明成員成員說明reason 表明觸發回調函數的原因,一般不需要用戶修改item_id 表示控件的標識subitem_index 用來標識某些控件(比如:option menu 、radio box )子對象count 當 value 是數組時,表示數組的長度item_attr

14、當前結構變量描述的控件屬性indicator 指明 value 的數據類型value union 類型的數據,表明控件的值。注意:必須利用函數uf_styler_free_value 釋放為字符串或數組申請的內存。表 4-2 對話框控件的常用屬性屬性描述label 控件的文本描述, 一般表示控件用途;如果控件設置了位圖屬性,則顯示為文本提示信息object identifier 控件標識value 控件內容,可以在構建對話框時定義,也可以通過程序進行設定bitmap 位圖文件,可以是 ubm 、xpm 或 bmp文件sensitive 控件的激活開關,true為激活, false為非激活foc

15、us 鍵盤聚焦,即對話框彈出時鍵盤的輸入位置visibility 控制控件的可見性,true為控件可見, false為不可見item type 控件類型list deselect 取消列表框中選項的選中狀態list insert 在列表框中插入若干選擇項list delete 刪除列表框中的指定選項list show 設置列表框中顯示的選擇項2、uf_styler_ask_value() 函數通過函數 uf_styler_ask_value() 查詢對話框控件的屬性。該函數只能用在對話框定義的回調函數中,其語法格式如下:extern int uf_styler_ask_value(int di

16、alog_id, uf_styler_item_value_type_p_t value ); 表 4-3 函數 uf_styler_ask_value() 的成員說明參數參數描述dialog_id 輸入參數。表示被查詢控件所屬對話框的標識,通常是由styler對話框傳遞回調函數的value 輸入 / 輸出參數。 作為輸入參數, value 指明查詢對象和該對象的屬性;作為輸出參數,value返回被查詢控件的屬性。必須利用函數uf_styler_free_value 釋放字符串或數組申請的內存。3、uf_styler_set_value()函數函數 uf_styler_ask_value()

17、用來改變控件屬性。該函數只能用在對話框定義的回調函數中,其語法格式如下:extern int uf_styler_set_value( int dialog_id, uf_styler_item_value_type_p_t value ); 表 4-4 函數 uf_styler_set_value() 的成員說明參數參數描述dialog_id 輸入參數,表示被查詢控件所屬對話框的標識,通常是由styler對話框傳遞回調函數的value 輸入參數,用于指明被修改的控件、控件屬性和控件屬性值.2 訪問字符串輸入框( string )設置字符串輸入框的控件屬性時涉及的變量與參數如表4

18、-5 所示。表 4-5 string控件屬性的設置屬性變量和輸入參數變量輸入參數bitmap item_attr uf_styler_bitmap item_id 被設置的控件標識value.string 位圖文件名,ubm 、xpm或 bmp 文件label item_attr uf_styler_label item_id 被設置的控件標識value.string 顯示在輸入框左邊的文本內容value item_attr uf_styler_value item_id 被設置的控件標識value.string 顯示在輸入框中的文本內容sensitive item_attr uf_style

19、r_sensitivity item_id 被設置的控件標識eger true為控件激活,false為非激活visibility item_attr uf_styler_visibility item_id 被設置的控件標識eger true為控件可見,false為不可見focus item_attr uf_styler_focus item_id 被設置的控件標識下面的一段代碼實現設置字符串控件可見性的功能:uf_styler_item_value_type_t value; value.item_attr = uf_styler_visibility;

20、value.item_id = item_id; /控件標識eger = ture; /可見uf_styler_set_value( dialog_id, &value ); uf_styler_free_value( &value ); 獲取字符串輸入框的控件屬性時涉及的變量與參數如表4-6 所示。表 4-6 string控件屬性的獲取屬性參數輸入參數輸出參數變量數值變量數值value intem_attr item_id uf_styler_value 控件標識indicator count value.string uf_styler_str

21、ing_value 1 字符串輸入框的內容sensitive intem_attr item_id uf_styler_sensitivity 控件標識indicator count veger uf_styler_integer_value 1 ture為激活; false為非激活visibility intem_attr item_id uf_styler_visibility 控件標識indicator count veger uf_styler_integer_value 1 ture為可見; false為非可見item type intem_attr

22、item_id uf_styler_item_type 控件標識indicator count veger uf_styler_integer_value 1 uf_styler_string_type 下面的一段代碼實現獲取字符串控件的輸入值的功能:uf_styler_item_value_type_t value; value.item_attr = uf_styler_value; value.item_id = item_id; /控件標識uf_styler_ask_value( dialog_id, &value ); char sneeded133; str

23、cpy( sneeded, value.value.string ); uf_styler_free_value( &value ); .3 訪問按鈕控件( push button)設置按鈕的控件屬性時涉及的變量與參數如表4-7 所示。表 4-7 push button 控件屬性的設置屬性變量和輸入參數變量輸入參數bitmap item_attr uf_styler_bitmap item_id 被設置的控件標識value.string 位圖文件名, ubm 、xpm 或 bmp文件label item_attr uf_styler_label item_id 被設置的控

24、件標識value.string 顯示在按鈕上的文本內容sensitive item_attr uf_styler_sensitivity item_id 被設置的控件標識eger true為控件激活, false為非激活visibility item_attr uf_styler_visibility item_id 被設置的控件標識eger true為控件可見, false為不可見focus item_attr uf_styler_focus item_id 被設置的控件標識default action item_attr uf_styler_defaul

25、t_action item_id 被設置的控件標識下面的一段代碼實現設置按鈕控件的位圖顯示的功能:uf_styler_item_value_type_t value; value.item_attr = uf_styler_bitmap; value.item_id = item_id; /控件標識eger = “e:bitmappushbutton.bmp”; /位圖文件的路徑uf_styler_set_value( dialog_id, &value ); uf_styler_free_value( &value ); 獲取按鈕控件屬性時涉及的

26、變量與參數如表4-8 所示。表 4-8 push button 控件屬性的獲取屬性參數輸入參數輸出參數變量數值變量數值sensitive intem_attr item_id uf_styler_sensitivity 控件標識indicator count veger uf_styler_integer_value 1 ture 為激活; false為非激活visibility intem_attr item_id uf_styler_visibility 控件標識indicator count veger uf_styler_integer_value 1

27、ture 為可見; false為非可見item type intem_attr item_id uf_styler_item_type 控件標識indicator count veger uf_styler_integer_value 1 uf_styler_action_button_type 下面的一段代碼實現獲取按鈕控件激活狀態的功能:uf_styler_item_value_type_t value; value.item_attr = uf_styler_sensitive; value.item_id = item_id; /控件標識uf_styler_ask_va

28、lue( dialog_id, &value ); if( eger ) ; uf_styler_free_value( &value ); .4 訪問單選按鈕( radio box )設置單選按鈕的控件屬性時涉及的變量與參數如表4-9 所示。表 4-9 radio box 控件屬性的設置屬性變量和輸入參數變量輸入參數label item_attr uf_styler_label item_id 被設置的控件標識value.string 控件的描述文本內容value item_attr uf_styler_value item_id

29、被設置的控件標識subitem_index 被選中的按鈕索引,必須在選擇范圍之內sensitive item_attr uf_styler_sensitivity item_id 被設置的控件標識eger true 為控件激活,false為非激活subitem_index 被選中的按鈕索引,必須在選擇范圍之內visibility item_attr uf_styler_visibility item_id 被設置的控件標識eger true 為控件可見,false為不可見default action item_attr uf_styler_default_a

30、ction item_id 被設置的控件標識下面的一段代碼實現設置單選按鈕控件標簽的功能:uf_styler_item_value_type_t value; value.item_attr = uf_styler_label; value.item_id = item_id; /控件標識strcpy( value.value.string, “控件標簽名” ); /標簽名稱uf_styler_set_value( dialog_id, &value ); uf_styler_free_value( &value ); 獲取單選按鈕的控件屬性時涉及的變量與參數如表4-10 所示

31、。表 4-10 radio box 控件屬性的獲取屬性參數輸入參數輸出參數變量數值變量數值value intem_attr item_id uf_styler_value 控件標識indicator count value.string uf_styler_string_value 1 被選中對象的值sensitive intem_attr item_id uf_styler_sensitivity 控件標識indicator count veger uf_styler_integer_value 1 ture為激活; false為非激活visibility intem_att

32、r item_id uf_styler_visibility 控件標識indicator count veger uf_styler_integer_value 1 ture為可見; false為非可見item type intem_attr item_id uf_styler_item_type 控件標識indicator count veger uf_styler_integer_value 1 uf_styler_radio_box_type 下面的一段代碼實現獲取單選按鈕控件的值的功能:uf_styler_item_value_type_t value;

33、 value.item_attr = uf_styler_value; value.item_id = item_id; /控件標識uf_styler_ask_value( dialog_id, &value ); int iselected = eger; uf_styler_free_value( &value ); .5 訪問下拉列表框( option menu )設置下拉列表框的控件屬性時涉及的變量與參數如表4-11 所示。表 4-11 option menu 控件屬性的設置屬性變量和輸入參數變量輸入參數bitmap item

34、_attr uf_styler_bitmap item_id 被設置的控件標識value.strings 位圖文件構成的數組。如果所有位圖文件在同一文件夾中, 則只需設置一個入口即可,需注意的是文件的數目必須與設定的數目一致count 選項的數量label item_attr uf_styler_label item_id 被設置的控件標識value.string 控件的文本描述items item_attr uf_styler_subitem_values item_id 被設置的控件標識value.strings 所有下拉選項構成的數組,包括所有文本和位圖文件count 選項的數量valu

35、e item_attr uf_styler_value item_id 被設置的控件標識subitem_index 選中的下拉選項,必須處在選擇范圍之內sensitive item_attr uf_styler_sensitivity item_id 被設置的控件標識eger true為激活, false為非激活subitem_index 如 果 設 定 整 個 控 件 的 激 活 狀 態 , 則 設 為uf_styler_no_sub_index;如果設定單個下拉選項的激活狀態,則設為下拉選項值visibility item_attr uf_styler_visibilit

36、y item_id 被設置的控件標識eger true為控件可見,false為不可見下面的一段代碼實現設置下拉列表框所有選項的功能:uf_styler_item_value_type_t value; value.item_attr = uf_styler_subitem_values; value.item_id = item_id; /控件標識value.value.strings = asitem; /下拉列表框選項的字符串數組value.count = inumofitem; /下拉列表框選項的數量uf_styler_set_value( dialog_id, &am

37、p;value ); uf_styler_free_value( &value ); 獲取下拉列表框的控件屬性時涉及的變量與參數如表4-12 所示。表 4-12 option menu 控件屬性的獲取屬性參數輸入參數輸出參數變量數值變量數值item intem_attr item_id uf_styler_subitem_values 控件標識indicator value.strings uf_styler_string_ptr_value 下拉選項構成的數組,必須用uf_styler_free_value 釋放內存value intem_attr item_id uf_styler

38、_value 控件標識indicator count veger uf_styler_integer_value 1 被選中對象的值sensitive intem_attr item_id uf_styler_sensitivity 控件標識indicator count veger uf_styler_integer_value 1 ture 為激活; false為非激活visibility intem_attr item_id uf_styler_visibility 控件標識indicator count veger uf_styler_i

39、nteger_value 1 ture 為可見; false為非可見item type intem_attr item_id uf_styler_item_type 控件標識indicator count veger uf_styler_integer_value 1 uf_styler_option_menu_type 下面的一段代碼實現獲取下拉列表框所有選項的功能:uf_styler_item_value_type_t value; value.item_attr = uf_styler_value; value.item_id = item_id; /控件標識uf_sty

40、ler_ask_value( dialog_id, &value ); int iitemselected = eger; uf_styler_free_value( &value ); .6 訪問單選列表框( single selection list)設置單選列表框的控件屬性時涉及的變量與參數如表4-13 所示。表 4-13 single selection list 控件的設置屬性變量和輸入參數變量輸入參數items item_attr uf_styler_subitem_values item_id 被設置的控件標識value

41、.strings 選項構成的數組count 選項數目value item_attr uf_styler_value item_id 被設置的控件標識subitem_index 要選中的選項list deselect item_attr uf_styler_list_deselect item_id 被設置的控件標識subitem_index 取消選中的選擇項list insert item_attr uf_styler_list_insert item_id 被設置的控件標識subitem_index 設定選擇項插入位置indicator uf_styler_string_value,如果只插

42、入一個選擇項, 且 value.string必須包含該選擇項uf_styler_string_ptr_value,如果插入的是一系列選擇項,且value.strings必須包含要插入的選擇項,count定義插入選擇項的數目value.string 插入項,只插入單個選擇項時使用value.stirngs 插入項,插入一系列選擇項時使用count 要插入的選擇項數目list delete item_attr uf_styler_list_delete item_id 被設置的控件標識subitem_index 要刪除的選擇項list show item_attr uf_styler_show i

43、tem_id 被設置的控件標識subitem_index 當前顯示在列表框頂端的選擇項值下面的一段代碼實現設置單選列表框所有選項的功能:uf_styler_item_value_type_t value; value.item_attr = uf_styler_subitem_values; value.item_id = item_id; /控件標識value.value.strings = asitem; /單選列表框選項的字符串數組value.count = inumofitem; /單選列表框選項的數量uf_styler_set_value( dialog_id, &value

44、 ); uf_styler_free_value( &value ); 獲取單選列表框的控件屬性時涉及的變量與參數如表4-14 所示。表 4-14 single selection list 控件的獲取屬性參數輸入參數輸出參數變量數值變量數值item intem_attr item_id uf_styler_subitem_values 控件標識indicator value.strings count uf_styler_string_ptr_value 列表框選項構成的數組,必須用 uf_styler_free_value 釋放內存獲得的選擇項的數目value intem_attr

45、 item_id indicator uf_styler_value 控件標識如果是選項的索引, 設為uf_styler_integer_value如果是選項內容,設為uf_styler_string_valuecount value.value .integer或value.value .string 0 表示未選中,1 表示有一項被選中sensitive intem_attr item_id uf_styler_sensitivity 控件標識indicator count veger uf_styler_integer_value 1 ture為激活; false為非激活

46、visibility intem_attr uf_styler_visibility indicator uf_styler_integer_value item_id 控件標識count veger 1 ture為可見; false為非可見item type intem_attr item_id uf_styler_item_type 控件標識indicator count veger uf_styler_integer_value 1 uf_styler_string_list_type 下面的一段代碼實現獲取單選列表框所有選項的功能:uf_styler_i

47、tem_value_type_t value; value.item_attr = uf_styler_value; value.item_id = item_id; /控件標識value.indicator = uf_styler_integer_value; uf_styler_ask_value( dialog_id, &value ); int iitemselected = eger; uf_styler_free_value( &value ); 4.2 menuscript應用menu script 是 ug/open的一個重要組成部

48、分,它提供用戶創建并編輯 ug的下拉菜單及工具條。 是一種 ug定義的具有一定語法規則的腳本語言,通過它用戶不僅可以對ug中原有的菜單進行編輯,隱藏,重新擺放菜單項的位置, 而且可以為自己的應用模塊開發相應的菜單。菜單腳本文件的擴展名為 *.men( 文本文件 ) ,工具條文件的擴展名為*.tbr(文本文件)。menu script 的應用可以說包括如下兩部分:(1)通過編輯純文本的menu文件(菜單腳本文件)創建并修改ug的工具條、主菜單及下拉菜單,而不用開發c語言的程序。(2)利用 ug/open api 提供的 menu script api函數及子程序用c語言開發定制菜單選項的ug應用

49、,這些選項對應的回調函數也是用c語言編寫的。用戶創建的菜單用戶創建的工具條4.2.1 菜單文件及語法 環境變量設置ug系統在起動的時候,是通過環境變量實現來獲得系統菜單文件、用 戶 菜 單 文 件 以 及 來 識別 這兩 類文 件。 系統環 境變 量可 以在 文 件ugii_env.dat中找到定義,若要修改時,也可以在這個文件中修改,但要注意最好保持系統定義的值。1、系統默認的路徑與環境變量系 統 默 認 的 主 菜 單 文 件ug_main.men、 彈 出 式 菜 單 文 件ug_view_popup.men、 與應用相關的菜單文件的位置由三個環境變量控制,如下表所示:表

50、4-15 與系統菜單文件相關的環境變量環境變量描述ugii_default_menu_dir ug 的系統菜單文件所在的路徑默認值為 $ugii_base_dir/ugii/menus ugii_main_menu_file 主菜單文件的全路徑$ugii_default_menu_dir/ug_main.men ugii_view_popup_menu_file 彈出式菜單文件的全路徑$ugii_default_menu_dir/ug_view_popup.men 環境變量 ugii_default_menu_dir的值不可更改。環境變量 ugii_main_menu_file和 ugii_v

51、iew_popup_menu_file的值可以更改。你可以把 ug_main.men和 ug_view_popup.men 剪切到一個目錄下,然后讓這兩個環境變量指向這個目錄,ug仍然可以正確地加載菜單。與 應 用相 關 的 菜 單 文 件 是 由 應用 的 application_button下 的menu_files 指定的。2、用戶相關的路徑與環境變量當 ug起動時,它會從環境變量 ugii_custom_directory_file指定的文件(默認為$ugii_base_dir/ugii/menus/custom_dirs.dat,在文件ugii_env.dat中定義)中搜索用戶接口定

52、制文件(包括用戶菜單腳本文件 , 工 具 條 文 件 ,共 享庫 等) 所在的 路徑 。這 樣, 用 戶 就可 以在custom_dirs.dat的文件未尾添加一行路徑,然后,將接口定制文件放在這個路徑下(要創建與路徑相應的文件夾),當ug起動時,就會像加載系統文件一樣來加載用戶的文件。舉個例子,當在 custom_dirs.dat中添加了一行: d :ufsolution ,就要建立如圖所示的文件夾:圖 4-7 添加文件夾ufsolution 添加文件夾時,要求 ufsolution 及它子目錄的名稱中不能含有中文。下面,讓我們來看看ufsolution 中的各個子目錄的用途:startup

53、 :與整個 ug系統應用都相關的文件存放的文件夾。其中的文件在 ug 起動時自動加載。application:與某個特定的應用模塊相關的文件存放的文件夾。當進入這些特定的模塊時,其中的文件被自動動態加載。bmp :存放用戶的位圖資源文件。udo:存放動態庫文件。動態庫文件可以放在udo 中,也可以放在 startup中,在 ug起動時加載。用 戶 入 口 也 以 設 置 系 統 環 境 變 量ugii_vendor_dir ( 或ugii_site_dir、ugii_user_dir ),使它為 d:ufsolution ,這與上面的方法有同樣的效果。注意:在文件 custom_dirs.da

54、t中可以添加多個路徑, 在這些路徑所指向的目錄下, 存放用戶的接口定制文件, 當有兩個同名的接口定制文件存在時,就可以發生沖突。這時,ug是使用第一個被搜索到的接口定制文件,而忽略第二個。 菜單文件的加載1、ug 加載主菜單文件的順序如從命令行起動ug ,則優先看 -main_menu 選項是否指定主菜單文件,如沒有指定或指定了但沒有能正確加載,則向下一步。由環境變量 ugii_main_menu_file指定的文件。從環境變量 ugii_default_menu_dir指定的目錄下搜索默認的主菜單文件 ug_main.men。主菜單文件的加載是從上面三個選項依次從上到下試著進行

55、,當某一項成功后,主菜單就加載成功了,若某一項加載失敗了,接著試下一項,直到所有的都試完。若最后,主菜單沒有加載成功,則會報錯:主菜單未加載。下面的彈出式菜單、 編輯模式菜單、 創建模式菜單的加載也是按這種方式進行的。2、ug 加載彈出式菜單文件的順序如下如從命令行起動ug ,則優先看 -popup_menu選項是否指定彈出式菜單文件,如沒有指定或指定了但沒有能正確加載,則向下一步。由環境變量 ugii_view popup_menu_file指定的文件。從環境變量 ugii_default_menu_dir指定的目錄下搜索默認的彈出式菜單文件 ug_view_popup.men。3、ug 加

56、載編輯模式菜單文件編輯模式菜單文件是對已加載的菜單進行修改的菜單文件,它的典型標志是它以 edit關鍵字開頭。編輯模式菜單文件一般放在由文件custom_dirs.dat中的路徑指定的文件夾下的子文件夾startup中。當用戶需要擴展ug的功能模塊時,一般是向ug系統中添加一個與modeling application相似的應用模塊。 首先,與 modeling application相似,要在主菜單的 application下拉式菜單中添加一個與此應用模塊相對應的菜單項(通過單擊這個菜單項進入用戶應用模塊)。這是通過一個編 輯 模 式 菜 單 文 件 完 成 的 , 這 個 菜 單 文 件

57、是 放 在ugii_vendor_dir/startup文件夾中,在 ug 起動時,自動加載。另外,與新添加的用戶應用模塊相關連的還有一個菜單文件,它的加載將在下面講解。4、ug 加載特定于應用的菜單文件當進入用戶應用模塊時, 還要加載另一個菜單文件 (用戶應用模塊的菜單文件) ,在前面提到一個向 application下拉式菜單中添加一個菜單項的編輯模式菜單文件, 正是在這個菜單文件中指定特定于應用的菜單文件,具體方法是在menu_files 關鍵詞之后給出文件名。搜索由 menu_files 指定的菜單文件的順序:文件custom_dirs.dat中的路徑指定的文件夾下的子文件夾appli

58、cation 文件 ug_custom_dirs.dat中的路徑指定的文件夾下的子文件夾application ugii_default_menu_dir指向的文件夾添加應用模塊菜單項的菜單文件與應用模塊菜單文件的區別:添加應用模塊菜單項的菜單文件是在進入應用模塊之前,ug起動的時候就已經將應用模塊菜單項添加到application下拉菜單中了。應用模塊菜單文件是在單擊了應用模塊菜單項之后,進入應用模塊的時候起作用加載應用模塊的菜單文件,即關鍵字menu_files 指定的菜單文件。 用戶定制菜單腳本用戶創建一個菜單通常使用編輯模式,通過增加一個短的菜單文件去定制標準菜單。使用附

59、加菜單文件的方法定制菜單的一個優點是這些文件很容易地自動地裝被裝載。 與應用無關的菜單文件放置在startup文件夾下,與應用相關的菜單文件放置在相應的application文件夾下。 與應用相關的菜單文件在進入該應用時將被加載。另一個優點是在ug版本升級時更加容易 , 因為只有很小的附加菜單文件需要修而不需要改動諸如ug_main.men的標準菜單文件。附加菜單文件也使維護更加方便,因這它們通常是一個很小的菜單文件。菜單腳本文件 (*.men) 為文本文件,可以用記事本創建和編輯。菜單腳本文件中指明了菜單位置、 菜單項目名稱及所調程序名稱等。下面將在ugnx 主菜單的 help 項右邊添加

60、“用戶程序” -“菜單舉例” 菜單項為例,說明菜單的創建方法。(1) 用記事本打開ug安裝目錄下的ugiiugii_env.dat文件,找到#ugii_user_dir=$home行,去掉#和$home ,在=號后輸入自己的目錄,比如:e:exmaplemenu ,保存后退出此文件。 這主要是告訴 ug到那里去尋找用戶定義的菜單文件。(2) 在用戶目錄 ( 本例為 e:exmaplemenu) 下新建兩個文件夾,取名為 startup和 application。(3) 在 startup目錄下新建一個文本文件,輸入以下內容,其中actions后 面 跟的 是需 要 調用的 動態 連 接庫 或對話 框 文件 ( 本例為men_example.dlg). version 120 edit ug_gateway_main_menubar a

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論