UG軟件二次開發(fā)課程第五課_第1頁
UG軟件二次開發(fā)課程第五課_第2頁
UG軟件二次開發(fā)課程第五課_第3頁
UG軟件二次開發(fā)課程第五課_第4頁
UG軟件二次開發(fā)課程第五課_第5頁
已閱讀5頁,還剩72頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、1MenuScript菜單定制菜單定制 MenuScript是是UG/Open二次開發(fā)軟件包中的二次開發(fā)軟件包中的一部分,它是一套用于定義一部分,它是一套用于定義UGUG菜單的腳本語言。菜單的腳本語言。UGUG自身的菜單也是用自身的菜單也是用MenuScript寫成的,用戶寫成的,用戶使用使用MenuScript可以可以修改修改UGUG的菜單結(jié)構(gòu)的菜單結(jié)構(gòu),添加添加或或刪除刪除和和定制菜單定制菜單,以及,以及改變菜單的顯示文本改變菜單的顯示文本或或響應(yīng)響應(yīng)行為行為等。等。 2ufsta n可利用可利用UI StylerUI Styler所定制的界面來實(shí)現(xiàn)面向?qū)ο蟆⑺ㄖ频慕缑鎭韺?shí)現(xiàn)面向?qū)ο?、?/p>

2、互式的操作過程交互式的操作過程n沒有明顯的執(zhí)行過程沒有明顯的執(zhí)行過程n整個(gè)程序除整個(gè)程序除回調(diào)函數(shù)回調(diào)函數(shù)的注冊(cè)過程外,都是純粹事的注冊(cè)過程外,都是純粹事件驅(qū)動(dòng)的件驅(qū)動(dòng)的n每一個(gè)界面上的控件都可對(duì)應(yīng)一個(gè)回調(diào)函數(shù),當(dāng)用戶每一個(gè)界面上的控件都可對(duì)應(yīng)一個(gè)回調(diào)函數(shù),當(dāng)用戶與相應(yīng)的與相應(yīng)的UIUI對(duì)象發(fā)生交互時(shí),此對(duì)應(yīng)的回調(diào)函數(shù)就被對(duì)象發(fā)生交互時(shí),此對(duì)應(yīng)的回調(diào)函數(shù)就被執(zhí)行。執(zhí)行。 3UF的系統(tǒng)設(shè)置的系統(tǒng)設(shè)置 n方法一方法一 打開打開UG目錄下的目錄下的 Ugiiugii_env.dat文件,在文件中找到文件,在文件中找到# #UG_VENDOR_DIR=$UGALLIANCE_DIRvendor# #U

3、GII_SITE_DIR= $UGALLIANCE_DIRsite 4UF的系統(tǒng)設(shè)置的系統(tǒng)設(shè)置 方法一方法一 將它們前面的注釋符號(hào)將它們前面的注釋符號(hào)“# #”刪除。它們刪除。它們指明了供用戶放置二次開發(fā)文件的目錄指明了供用戶放置二次開發(fā)文件的目錄 。 當(dāng)刪掉當(dāng)刪掉“# #”號(hào)后,號(hào)后,UG/OpenUG/Open才能從這些才能從這些目錄下得到二次開發(fā)的功能擴(kuò)充。目錄下得到二次開發(fā)的功能擴(kuò)充。5UF的系統(tǒng)設(shè)置的系統(tǒng)設(shè)置 方法一方法一n這兩個(gè)目錄這兩個(gè)目錄 D:UGSNX 4.0UGALLIANCEsite D:UGSNX 4.0UGALLIANCEvendor功能和結(jié)構(gòu)是完全相同的,都有功能和

4、結(jié)構(gòu)是完全相同的,都有startup startup 和和application application 這兩個(gè)目錄這兩個(gè)目錄。6UF的系統(tǒng)設(shè)置的系統(tǒng)設(shè)置 方法一方法一nstartup目錄目錄存放存放UG啟動(dòng)時(shí)需載入的文件,如啟動(dòng)時(shí)需載入的文件,如*.men 菜單腳本文件菜單腳本文件*.dll ufsta()()的動(dòng)態(tài)鏈接庫(kù)文件的動(dòng)態(tài)鏈接庫(kù)文件7UF的系統(tǒng)設(shè)置的系統(tǒng)設(shè)置 方法一方法一napplication目錄目錄則存放具體功能擴(kuò)展的程序文件,如則存放具體功能擴(kuò)展的程序文件,如*.dlg 對(duì)話框資源文件等對(duì)話框資源文件等 8UGUG設(shè)的這兩個(gè)目錄設(shè)的這兩個(gè)目錄 site和和 vendor,是為

5、是為了供給不同等級(jí)的開發(fā)者使用了供給不同等級(jí)的開發(fā)者使用: : vendor下放置下放置UG指定開發(fā)商的二次開發(fā)產(chǎn)品指定開發(fā)商的二次開發(fā)產(chǎn)品site下則存放其余開發(fā)者的產(chǎn)品下則存放其余開發(fā)者的產(chǎn)品 vendor目錄下同類內(nèi)容的文件要目錄下同類內(nèi)容的文件要比比site目錄下的優(yōu)先載入。目錄下的優(yōu)先載入。 9 在在ugii_env.dat文件中還有一條語句,是用文件中還有一條語句,是用來設(shè)置存放用戶自己二次開發(fā)內(nèi)容的目錄:來設(shè)置存放用戶自己二次開發(fā)內(nèi)容的目錄: UGII_USER_DIR=$HOME 同樣將其前面的同樣將其前面的“# #”號(hào)刪除,并且在其后面添號(hào)刪除,并且在其后面添上用戶的目錄上用

6、戶的目錄例例:UGII_USER_DIR=f:user在此目錄下必須有在此目錄下必須有startup和和application目錄,目錄,它的優(yōu)先級(jí)更低。它的優(yōu)先級(jí)更低。 10UF的系統(tǒng)設(shè)置的系統(tǒng)設(shè)置 方法二方法二 n在在Windows 環(huán)境下,在環(huán)境下,在我的電腦我的電腦屬性屬性高級(jí)高級(jí)環(huán)境變量環(huán)境變量系統(tǒng)變量對(duì)話框系統(tǒng)變量對(duì)話框中中 ,設(shè)置用戶變量設(shè)置用戶變量UGII_USER_DIR為用戶為用戶二次開發(fā)內(nèi)容的目錄。二次開發(fā)內(nèi)容的目錄。例:用戶目錄為例:用戶目錄為f:blkf:blk,在在blkblk下設(shè)下設(shè)置有置有startupstartup和和applicationapplicatio

7、n目錄目錄 。1112編程框架編程框架 n定制菜單定制菜單 打開打開notepad,編寫菜單腳本程序編寫菜單腳本程序(Menu Script),),保存為保存為*.men。 用來定制用來定制UGUG主菜單,以使用戶可以主菜單,以使用戶可以調(diào)用所作的調(diào)用所作的UIUI界面,實(shí)現(xiàn)交互式操作。界面,實(shí)現(xiàn)交互式操作。 13菜單腳本文件菜單腳本文件菜單腳本文件菜單腳本文件* *.men.men必須存放到必須存放到startupstartup目錄中目錄中 14VERSIONVERSION120 120 / /* *兼容兼容UGv12UGv12的菜單腳本的菜單腳本* */ /EDIT UG_GATEWAY_

8、MAIN_MENUBAREDIT UG_GATEWAY_MAIN_MENUBAR/ /* *編輯編輯UGUG主菜單主菜單* */ /HIDE UG_HELP HIDE UG_HELP / /* *隱藏隱藏HelpHelp菜單菜單* */ /BEFORE UG_HELP BEFORE UG_HELP / /* *表示第一級(jí)菜單位于表示第一級(jí)菜單位于HelpHelp菜單之前菜單之前* */ /CASCADE_BUTTONCASCADE_BUTTON MENU_ID_1MENU_ID_1 / /* *定義第一級(jí)菜單的定義第一級(jí)菜單的IDID,它是下拉菜單它是下拉菜單* */ /LABEL TESTL

9、ABEL TEST / /* *定義菜單的標(biāo)題定義菜單的標(biāo)題* */ /END_OF_BEFORE END_OF_BEFORE / /* *結(jié)束第一級(jí)菜單的編輯結(jié)束第一級(jí)菜單的編輯* */ /MENU MENU MENU_ID_1MENU_ID_1 / /* *編輯第二級(jí)菜單,是編輯第二級(jí)菜單,是MENU_ID_1MENU_ID_1的下拉菜單的下拉菜單* */ /CASCADE_BUTTON CASCADE_BUTTON MENU_ID_1_1MENU_ID_1_1 / /* *定義第二級(jí)菜單的定義第二級(jí)菜單的IDID,它是下拉菜單它是下拉菜單* */ /LABEL APITEST LABEL

10、 APITEST / /* *定義菜單標(biāo)題定義菜單標(biāo)題* */ /SEPARATOR SEPARATOR / /* *菜單中的分隔線菜單中的分隔線* */ /BUTTON BUTTON MENU_ID_1_2MENU_ID_1_2 / /* *定義第二級(jí)菜單的定義第二級(jí)菜單的IDID,它不是下拉菜單它不是下拉菜單* */ /LABEL WINDOWS CALCULATORTEST LABEL WINDOWS CALCULATORTEST / /* *定義菜單標(biāo)題定義菜單標(biāo)題* */ /ACTIONS ACTIONS “CALCCALC” / /* *運(yùn)行運(yùn)行windowswindows的計(jì)算器

11、的計(jì)算器* */ /END_OF_MENU END_OF_MENU / /* *結(jié)束第二級(jí)菜單的編輯結(jié)束第二級(jí)菜單的編輯* */ /MENU MENU MENU_ID_1_1MENU_ID_1_1 / /* *編輯第三級(jí)菜單,是編輯第三級(jí)菜單,是MENU_ID_1_1MENU_ID_1_1的下拉菜單的下拉菜單* */ /BUTTON BUTTON MENU_ID_1_1_1MENU_ID_1_1_1 / /* *定義第三級(jí)菜單的定義第三級(jí)菜單的IDID,它不是下拉菜單它不是下拉菜單* */ /LABEL RUNAPIPROGRAMLABEL RUNAPIPROGRAM/ /* *定義菜單標(biāo)題定

12、義菜單標(biāo)題* */ /ACTIONS api_test.dlg ACTIONS api_test.dlg / /* *運(yùn)行運(yùn)行UIStylerUIStyler所編寫的界面所編寫的界面api_test.dlgapi_test.dlg* */ /END_OF_MENU END_OF_MENU / /* *結(jié)束第三級(jí)菜單的編輯結(jié)束第三級(jí)菜單的編輯* */ /15用戶定制的主界面用戶定制的主界面 n例例1生成的用戶界面生成的用戶界面16VERSION 120VERSION 120EDIT UG_GATEWAY_MAIN_MENUBAREDIT UG_GATEWAY_MAIN_MENUBARBEFORE

13、 UG_HELPBEFORE UG_HELP/ /* *表示第一級(jí)菜單位于表示第一級(jí)菜單位于HelpHelp菜單之前菜單之前* */ / CASCADE_BUTTON CASCADE_BUTTON UISTYLER_DLG_CASCADE_BTNUISTYLER_DLG_CASCADE_BTN / /* *定義第一級(jí)菜單的定義第一級(jí)菜單的IDID,它是下拉菜單它是下拉菜單* */ / LABEL JiemianLABEL Jiemian END_OF_BEFORE END_OF_BEFORE MENU MENU UISTYLER_DLG_CASCADE_BTNUISTYLER_DLG_CASC

14、ADE_BTNBUTTON SETBUTTON SETLABEL LABEL SetmenuSetmenuACTIONS set.dlgACTIONS set.dlg BUTTON APPLYBUTTON APPLY LABEL LABEL ApplyApplyACTIONS apply.dlgACTIONS apply.dlg END_OF_MENU END_OF_MENU17用戶定制的主界面用戶定制的主界面n例例2生成的用戶界面生成的用戶界面18編程框架編程框架n定制定制界面界面 啟動(dòng)啟動(dòng)UGUG,點(diǎn)擊點(diǎn)擊ApplicationUser Interface Styler,出現(xiàn)一個(gè)可視界面的

15、出現(xiàn)一個(gè)可視界面的開發(fā)工具,在界面上可以任意添加開發(fā)工具,在界面上可以任意添加UIUI對(duì)對(duì)象,在保存以后會(huì)生成三個(gè)文件:象,在保存以后會(huì)生成三個(gè)文件: *_template.c、*.h、*.dlg,分別是界面分別是界面的的C C程序模板和界面的資源文件。程序模板和界面的資源文件。 19UIStyler用戶界面制作工具用戶界面制作工具 nUG/OpenUG/Open二次開發(fā)包中包含了用于開發(fā)用二次開發(fā)包中包含了用于開發(fā)用戶界面的工具戶界面的工具UI StylerUI Styler,它位于它位于Application User Interface Styler它提供了全部它提供了全部UGUG的標(biāo)準(zhǔn)

16、可視控件,能制的標(biāo)準(zhǔn)可視控件,能制作作UGUG風(fēng)格的交互界面。風(fēng)格的交互界面。 20UIStyler用戶界面制作工具用戶界面制作工具n用戶在用戶在User Interface Styler中可以自由中可以自由添加各種控件,控制各種控件在對(duì)話框添加各種控件,控制各種控件在對(duì)話框中的排列順序。中的排列順序。21UIStyler用戶界面制作工具用戶界面制作工具n編輯完對(duì)話框后編輯完對(duì)話框后保存保存時(shí),會(huì)自動(dòng)產(chǎn)生三個(gè)時(shí),會(huì)自動(dòng)產(chǎn)生三個(gè)文件文件 * *. .dlgdlg對(duì)話框資源文件對(duì)話框資源文件 * *_ _template.ctemplate.c和和* *. .h hUFUF的的C C源碼模板文源碼

17、模板文件件。22UIStyler用戶界面制作工具用戶界面制作工具n用戶用戶只須將只須將* *_ _template.ctemplate.c和和* *. .h h添加入工添加入工程,再向程,再向C C源碼模板中的各源碼模板中的各回調(diào)函數(shù)回調(diào)函數(shù)框架框架內(nèi)添加實(shí)現(xiàn)自己功能的代碼,即可編譯、內(nèi)添加實(shí)現(xiàn)自己功能的代碼,即可編譯、鏈接成動(dòng)態(tài)鏈接庫(kù)鏈接成動(dòng)態(tài)鏈接庫(kù)* *. .dlldll。 23對(duì)話框控件對(duì)話框控件資源編輯器資源編輯器對(duì)話框?qū)υ捒驅(qū)ο鬄g覽器對(duì)象瀏覽器24UIStyler使用注意使用注意 n對(duì)于每個(gè)對(duì)話框的對(duì)于每個(gè)對(duì)話框的Prefix NamePrefix Name最好最好有表達(dá)其實(shí)際意義的

18、名字,以免在程有表達(dá)其實(shí)際意義的名字,以免在程序中混淆;序中混淆;n對(duì)于每個(gè)控件的對(duì)于每個(gè)控件的IdentifierIdentifier最好也有最好也有表達(dá)其實(shí)際意義的名字;表達(dá)其實(shí)際意義的名字;252627UIStyler使用注意使用注意 n對(duì)于每個(gè)對(duì)話框的對(duì)于每個(gè)對(duì)話框的Launch Dialog FromLaunch Dialog From,應(yīng)根據(jù)不同的入口方式設(shè)置不同內(nèi)容。應(yīng)根據(jù)不同的入口方式設(shè)置不同內(nèi)容。AllAll用戶可以在程序中設(shè)置入口方式;用戶可以在程序中設(shè)置入口方式;CallbackCallback表示此對(duì)話框是從其它對(duì)話框的回表示此對(duì)話框是從其它對(duì)話框的回 調(diào)函數(shù)中進(jìn)入,即

19、由別的對(duì)話框的控件啟動(dòng)它;調(diào)函數(shù)中進(jìn)入,即由別的對(duì)話框的控件啟動(dòng)它;MenuMenu表示此對(duì)話框是從表示此對(duì)話框是從UGUG菜單中調(diào)出;菜單中調(diào)出;UserUser ExitExit表示由其它的入口進(jìn)入。表示由其它的入口進(jìn)入。 2829UIStyler使用注意使用注意 n對(duì)于控件的對(duì)于控件的CallbacksCallbacks回調(diào)函數(shù)設(shè)置回調(diào)函數(shù)設(shè)置中,中,Creates DialogCreates Dialog檢查框表示此回檢查框表示此回調(diào)函數(shù)是否可以調(diào)出下一個(gè)對(duì)話框。調(diào)函數(shù)是否可以調(diào)出下一個(gè)對(duì)話框。 nAttachmentsAttachments是用來設(shè)置控件在對(duì)話是用來設(shè)置控件在對(duì)話框中

20、的位置??蛑械奈恢?。 303132對(duì)話框編輯示例對(duì)話框編輯示例 33用戶界面制作方法用戶界面制作方法34用戶定制菜單的制作用戶定制菜單的制作 n使用第二個(gè)菜單腳本文件使用第二個(gè)菜單腳本文件 在此例中,用戶定制的菜單在此例中,用戶定制的菜單Jiemian包含兩項(xiàng)內(nèi)容,即包含兩項(xiàng)內(nèi)容,即Setmenu和和Apply,它它們都會(huì)彈出對(duì)話框,其中們都會(huì)彈出對(duì)話框,其中Apply的對(duì)話框的對(duì)話框Apply_app還會(huì)產(chǎn)生子對(duì)話框還會(huì)產(chǎn)生子對(duì)話框app。 3536用戶界面制作方法用戶界面制作方法n單擊單擊UGUG的的ApplicationUser Interface ApplicationUser Int

21、erface StylerStyler,則出現(xiàn)制作用戶界面的則出現(xiàn)制作用戶界面的UG界面界面n或或 起始起始所有應(yīng)用模塊所有應(yīng)用模塊用戶界面樣式用戶界面樣式編輯器編輯器3738用戶界面制作方法用戶界面制作方法n如果是建立新的對(duì)話框,則可以直接使用如果是建立新的對(duì)話框,則可以直接使用UG提供的可視控件來生成需要的對(duì)話框。提供的可視控件來生成需要的對(duì)話框。單擊需要的控件,則在左邊的對(duì)話框模型中單擊需要的控件,則在左邊的對(duì)話框模型中生成相應(yīng)的按鈕或其它所要求的形式,同時(shí)在生成相應(yīng)的按鈕或其它所要求的形式,同時(shí)在界面的右邊對(duì)話框參數(shù)控制區(qū)中的對(duì)象瀏覽區(qū)界面的右邊對(duì)話框參數(shù)控制區(qū)中的對(duì)象瀏覽區(qū)中中Dia

22、log-CHANGE下立即為所產(chǎn)生的對(duì)象自動(dòng)下立即為所產(chǎn)生的對(duì)象自動(dòng)起一個(gè)名字起一個(gè)名字 。39用戶界面制作方法用戶界面制作方法n如果選中如果選中Dialog-CHANGE,即可在即可在Attributes的的Dialog Title框中為用戶的框中為用戶的對(duì)話框起名字,例如對(duì)話框起名字,例如APPLY,則則Dialog-CHANGE變?yōu)樽優(yōu)镈ialog- APPLY 4041用戶界面制作方法用戶界面制作方法n在在Prefix Name框中也輸入相同的名稱框中也輸入相同的名稱 主要為了在生成的主要為了在生成的* *_ _template.ctemplate.c程程序中不會(huì)由于沒有起名而所有的變

23、量前序中不會(huì)由于沒有起名而所有的變量前綴都是綴都是CHANGE,容易由于為不同的對(duì)容易由于為不同的對(duì)話框中的變量起相同名稱而造成在程序話框中的變量起相同名稱而造成在程序調(diào)試中產(chǎn)生變量重復(fù)定義。調(diào)試中產(chǎn)生變量重復(fù)定義。 42用戶界面制作方法用戶界面制作方法n在在Callbacks項(xiàng)目中確定是否有子對(duì)話框產(chǎn)生,項(xiàng)目中確定是否有子對(duì)話框產(chǎn)生,若有,則哪些操作可控制產(chǎn)生子對(duì)話框。若有,則哪些操作可控制產(chǎn)生子對(duì)話框。n在生成控件的時(shí)候,在在生成控件的時(shí)候,在Callbacks項(xiàng)目中可控項(xiàng)目中可控制是否可通過操作此控件而產(chǎn)生子對(duì)話框,在制是否可通過操作此控件而產(chǎn)生子對(duì)話框,在Creates Dialog前

24、打鉤,則產(chǎn)生子對(duì)話框,前打鉤,則產(chǎn)生子對(duì)話框,見后面圖,此時(shí)需要在見后面圖,此時(shí)需要在Activat欄中輸入相應(yīng)欄中輸入相應(yīng)的控制參數(shù),例如的控制參數(shù),例如ACTION_1_APP_cb。43圖中表示圖中表示Apply和和OK的操作都可產(chǎn)生子對(duì)話框。的操作都可產(chǎn)生子對(duì)話框。則在則在apply_template.c_template.c程序中會(huì)產(chǎn)生相應(yīng)的函數(shù)框程序中會(huì)產(chǎn)生相應(yīng)的函數(shù)框架架APPLY_ok_cbAPPLY_ok_cb和和APPLY_apply_cbAPPLY_apply_cb。44用戶界面制作方法用戶界面制作方法n對(duì)話框的各控件生成完畢時(shí),必須在對(duì)話框的各控件生成完畢時(shí),必須在Fi

25、le菜單中存儲(chǔ)該對(duì)話框,并選定存儲(chǔ)菜單中存儲(chǔ)該對(duì)話框,并選定存儲(chǔ)路徑(路徑(必須在前面生成的必須在前面生成的Application文文件夾中存儲(chǔ)件夾中存儲(chǔ)),此時(shí)有信息提示生成了),此時(shí)有信息提示生成了三個(gè)文件。三個(gè)文件。 45用戶界面制作方法用戶界面制作方法n為菜單為菜單Jiemian中包含的兩項(xiàng)內(nèi)容(即中包含的兩項(xiàng)內(nèi)容(即Setmenu和和Apply)分別建立工程分別建立工程例如例如apply和和Set,在加入在加入*_ _template.ctemplate.c和和* *.h.h程序時(shí)把相應(yīng)的程序放入同一工程程序時(shí)把相應(yīng)的程序放入同一工程(包括對(duì)話框及子對(duì)話框產(chǎn)生的程序)。(包括對(duì)話框及

26、子對(duì)話框產(chǎn)生的程序)。 46界面程序調(diào)試界面程序調(diào)試n在生成的在生成的set_template.c_template.c程序中需要做如程序中需要做如下修改:下修改:n建立工程建立工程SETSET,把把set_template.cset_template.c和和set.hset.h文件加入工程,把程序中文件加入工程,把程序中 #include 改成改成 #include “set.h”。472、把下面代碼中的、把下面代碼中的#ifdef和和#endif語句刪除,則語句刪除,則 SET 的彈的彈 出菜單會(huì)出現(xiàn)。出菜單會(huì)出現(xiàn)。#ifdef MENUBAR_COMMENTED_OUTextern vo

27、id ufsta (char *param, int *retcode, int rlen) int error_code; if ( (UF_initialize() != 0) return; if ( (error_code = UF_MB_add_styler_actions ( actions ) ) != 0 ) char fail_message133; UF_get_fail_message(error_code, fail_message); printf ( %sn, fail_message ); UF_terminate(); return; #endif /*MENU

28、BAR_COMMENTED_OUT*/n3、編譯,聯(lián)編,把編譯,聯(lián)編,把set.dll拷貝到拷貝到startup目錄中。目錄中。48界面程序調(diào)試界面程序調(diào)試49界面程序調(diào)試界面程序調(diào)試n在生成的在生成的apply_template.c_template.c程序中需要做程序中需要做如下修改:如下修改:n建立工程建立工程APPLYAPPLY,加入加入apply_template.c和和apply.h文件,把程序中文件,把程序中 #include 改成改成 #include “apply.h”。n把要生成子對(duì)話框的操作變量前的把要生成子對(duì)話框的操作變量前的0改成改成150界面程序調(diào)試界面程序調(diào)試St

29、atic UF_STYLER_callback_info_t APPLY_cbsAPPLY_CB_COUNT = UF_STYLER_DIALOG_INDEX, UF_STYLER_OK_CB , 1, APPLY_ok_cb, UF_STYLER_DIALOG_INDEX, UF_STYLER_APPLY_CB, 1, APPLY_apply_cb, UF_STYLER_NULL_OBJECT, UF_STYLER_NO_CB, 0, 0 ;51 把下面代碼中的把下面代碼中的#ifdef和和#endif語句刪除,則語句刪除,則APPLY的彈的彈 出菜單會(huì)出現(xiàn)。出菜單會(huì)出現(xiàn)。#ifdef ME

30、NUBAR_COMMENTED_OUTextern void ufsta (char *param, int *retcode, int rlen) int error_code; if ( (UF_initialize() != 0) return; if ( (error_code = UF_MB_add_styler_actions ( actions ) ) != 0 ) char fail_message133; UF_get_fail_message(error_code, fail_message); printf ( %sn, fail_message ); UF_termin

31、ate(); return; #endif /*MENUBAR_COMMENTED_OUT*/52 把把a(bǔ)pp_template.c_template.c和和app.h.h文件加入文件加入APPLYAPPLY中,中,給下面的函數(shù)起名,只需把給下面的函數(shù)起名,只需把紅色紅色部分用用戶名部分用用戶名稱替換,例如稱替換,例如extern int app ( int *response ),并把并把#ifdef和和#endif語句刪除,語句刪除,把把#include 改成改成#include “app.h”: #ifdef DISPLAY_FROM_CALLBACKextern int (int *r

32、esponse )代碼由代碼由UG自動(dòng)生成自動(dòng)生成#endif /* DISPLAY_FROM_CALLBACK */ 53界面程序調(diào)試界面程序調(diào)試n在在apply_template.c中申明函數(shù)中申明函數(shù)app,在控在控制彈出制彈出app對(duì)話框的操作函數(shù)中添加函數(shù)對(duì)話框的操作函數(shù)中添加函數(shù)app,加在加在/ /* * - -Enter your callback code here - -* */ /后。并后。并在在applyapply_template.c_template.c中中增增加加# #include malloc.hinclude malloc.h。 在此例中產(chǎn)生在此例中產(chǎn)生ap

33、papp對(duì)話框的操作函數(shù)為對(duì)話框的操作函數(shù)為int APPLY_int APPLY_okok_cb_cb和和int APPLY_int APPLY_applyapply_cb_cb 54int APPLY_ok_cb ( int dialog_id, void * client_data, UF_STYLER_item_value_type_p_t callback_data) int *res=malloc(2); /*為函數(shù)為函數(shù)app中的參數(shù)分配空間中的參數(shù)分配空間*/* Make sure User Function is available. */ if ( UF_initialize() != 0) return ( UF_UI_CB_CONTINUE_DIALOG ); /* - Enter your callback code here - */ app(res); UF_terminate (); return (UF_UI_CB_EXIT_DIALOG); 55界面程序調(diào)試界面程序調(diào)試n編譯,聯(lián)編,把編譯,聯(lián)編,把a(bǔ)pply.dll拷貝到拷貝到startup目目錄中。錄中。56界面程序調(diào)試界面程序調(diào)試n啟動(dòng)啟動(dòng)UGUG,則出現(xiàn)用戶定制界面,并可彈則出現(xiàn)用戶定制界面,并可彈出定制

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論