第五講 對話框及其設(shè)計(jì)_第1頁
第五講 對話框及其設(shè)計(jì)_第2頁
第五講 對話框及其設(shè)計(jì)_第3頁
第五講 對話框及其設(shè)計(jì)_第4頁
第五講 對話框及其設(shè)計(jì)_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第5講對話框及其設(shè)計(jì)對話框是人機(jī)交互的主要界面之一,它具有操作直觀、方便、易于輸入和修改數(shù)據(jù)等特點(diǎn),是現(xiàn)代軟件設(shè)計(jì)必不可少的一種風(fēng)格形式。在對AutoCAD進(jìn)行軟件二次開發(fā)時(shí),常使用對話框設(shè)置工作環(huán)境、修改系統(tǒng)參數(shù)和輸入初始數(shù)據(jù)。AutoCAD為用戶提供的可編程對話框技術(shù)是由專用的對話框描述語言DCL(DialogControlLanguage)和AutoLISP驅(qū)動(dòng)函數(shù)兩部分內(nèi)容組成。5.1對話框的組成對話框是由框架和包含在框架內(nèi)的各種控件所組成。AutoCAD的PDB(PragramDialogBox)提供的預(yù)定義控件有按鈕(單選框、復(fù)選框、圖像、動(dòng)作)、彈出式列表框、文本編輯框和滑動(dòng)條等。用戶可以通過把這些控件進(jìn)行分組,按行或按列進(jìn)行組合,并用在其外面加上框線或不加框線的方法組成更為復(fù)雜的控件組。控件和控件組在對話框中的布局、外觀與功能由控件的屬性來定義。

基本控件:復(fù)選框:(Toggle/CheckBox)單選按鈕(Radio_Button)

選擇按鈕(Button)編輯框(Edit_Box)列表框(List_Box)下拉式列表框(Popup_List)

滑塊(Slider)圖像(Image)或圖像按鈕(image_button)說明文字(Text)對話框程序的運(yùn)行過程第一步:在AutoLisp程序中啟動(dòng)DCL對話框界面;第二步:用戶在對話框里輸入數(shù)據(jù),完成交互操作;第三步:將用戶輸入的數(shù)據(jù)返回AutoLisp程序中執(zhí)行。認(rèn)識對話框及其控件(1)認(rèn)識對話框及其控件(2)認(rèn)識對話框及其控件(3)5.2基本控件及其定義1、按鈕(button)功能:主要用于啟動(dòng)和執(zhí)行命令等動(dòng)作,如“確定”、“取消”、“幫助”等。1)預(yù)定義的標(biāo)準(zhǔn)按鈕(button)及其引用1)、單一確定按鈕引用方式:ok_only;3)、確定-取消-幫助按鈕引用方式:ok_cancel_help;2)、確定-取消按鈕引用方式:ok_cancel;自定義按鈕(button):retirement_button{label="設(shè)計(jì)計(jì)算";

key="accept";is_default=true;}:row{fixed_width=true;alignment=centered;:retirement_button{label="設(shè)計(jì)計(jì)算";

key="accept";is_default=true;}spacer_5;:retirement_button{label="直接繪圖";

key="drawing";}

spacer_5;

……….}2、單選按鈕(radio_button)功能:用于相互排斥的有限選擇集合中的一個(gè)選擇,通常由多個(gè)單選按鈕組成一組,在某一時(shí)刻,只有其中一個(gè)被選擇。1)、單選行按鈕組Boxed_radio_rowRadio_row2)、單選列按鈕組Boxed_radio_columnRadio_column3、復(fù)選框按鈕(toggle_button)

相當(dāng)于一個(gè)開關(guān),只有打開和關(guān)閉兩個(gè)狀態(tài)。4、圖像按鈕(image_button)當(dāng)選定一個(gè)圖像按鈕時(shí),程序獲得實(shí)際選取點(diǎn)的坐標(biāo),據(jù)此來確定用戶選取的內(nèi)容。5、列表框(list_box)

一個(gè)列表框就是一個(gè)由若干字符串組成的列表。其目的是要顯示一個(gè)列表供用戶從中選擇一項(xiàng)。6、彈出式列表(popup_list)

彈出式列表在功能上與列表框相同,但它占據(jù)的空間較小。表框右邊有一個(gè)向下箭頭,單擊箭頭時(shí),將彈出一個(gè)列表。7、文本編輯框(edit_box)

文本編輯框是一個(gè)輸入和編輯文本的子窗口,通常用于輸入文本名、點(diǎn)的坐標(biāo)、長度距離以及其它參數(shù)。8、滑動(dòng)條(slider)

用戶可以將滑動(dòng)條的指示器左右拖動(dòng),以得到一個(gè)數(shù)值。這個(gè)數(shù)值以字符串的形式返回。9、圖像(image)

該控件為對話框的一個(gè)矩形區(qū)域,在該區(qū)域可顯示一幅矢量圖形或幻燈片。其功能就是為了增強(qiáng)直觀性。10、文本(text)

該控件顯示文本字符串,通常用于顯示一個(gè)標(biāo)題或一些提示信息。11、間隙(spacer)

該控件是空控件,無任何顯示。主要用于調(diào)整對話框相鄰控件間的間距和布局。由于AutoCAD能自動(dòng)調(diào)整控件之間的間距,所以該控件使用較少。12、其它控件組

行(row)列(column)加框行(boxed_row)、加框列(boxed_column)單選行(radio_row)、單選列(radio_column)加框單選行(boxed_radio_row)加框單選列(boxed_radio_column)??丶膶傩杂糜诙x控件的功能與布局??丶膶傩灶愋陀兴姆N:整型數(shù)、實(shí)型數(shù)、字符串和保留字。保留字是由字母開頭的字母數(shù)字序列,且有大小寫之分,如屬性Width就不能等同于width;屬性值True就不是true。應(yīng)用程序總是把屬性當(dāng)作字符串來檢索,若用戶的應(yīng)用程序需要使用數(shù)字值,就必須根據(jù)需要把字符轉(zhuǎn)換成數(shù)字。5.3控件的屬性1、標(biāo)簽屬性(label,如:label=“半徑”;)用于對話框或控件的一個(gè)標(biāo)題,它的取值類型為一個(gè)字符串。對不同的控件,它在對話框中的位置不同。例如:按鈕的標(biāo)簽屬性值出現(xiàn)在按鈕內(nèi),加框列控件的標(biāo)簽屬性出現(xiàn)在框的上方等。如果標(biāo)簽字符串中的一字符前面出現(xiàn)“&”,則該字符就作為該控件的助記符。助記符在標(biāo)簽顯示時(shí)帶有下劃線。常用四類控件屬性:1)關(guān)鍵字屬性(key,如:key=“R”;)

key的值為一區(qū)分大小寫的字符串,每一個(gè)控件都必須有唯一的關(guān)鍵字屬性,以便應(yīng)用程序?qū)ζ溥M(jìn)行操作。2)值屬性(value,如:value=25;)Value屬性用于指定控件的初始值,該值在程序運(yùn)行中可以通過用戶輸入或在應(yīng)用程序中調(diào)用set_tile函數(shù)來修改。不同類型控件的屬性值含義也可能不同,但對對話框布局沒有影響。2、關(guān)鍵字屬性和值屬性1)按鈕控件[button]和[image_button]一般不需設(shè)置初始值;2)[edit_box]中的初始值由value設(shè)定值確定。3)復(fù)選[toggle]和單選控件[radio_button]的初始值為1或0,缺省為0(即關(guān)閉);4)列表框[list_box]和彈出式列表控件[popup_list]的初始值為表框中指定的項(xiàng)目序號0、1、2…確定。5)滾動(dòng)條[slider]的初始值為滑塊所對應(yīng)的取值,缺省值為滑塊min_value屬性的值。注意:不同控件設(shè)置初始值的差別1)寬度屬性(Width)和高度屬性(Height)

這兩個(gè)屬性用于指定控件的寬度和高度。除圖像控件和圖像按鈕必須指出這些尺寸外,其它控件一般不需要指定這些值,而使用默認(rèn)值在布局時(shí)動(dòng)態(tài)分配。由這兩個(gè)屬性指定的值確定控件的最小寬度和最小高度。在布局時(shí),除非由fixed_width和fixed_height屬性所確定,這兩個(gè)尺寸都可以被擴(kuò)展。3、布局屬性和尺寸屬性2)對齊屬性(Alignment)

該屬性用于指定一個(gè)控件組中控件的對齊方式。對按列排列的控件組,其子控件可以取left、right或centered,默認(rèn)值為left。對按行排列的控件組,其子控件可以取top、bottom或centered,默認(rèn)值為centered。1)is_enabled:取值true或false,默認(rèn)值為true。

該屬性用于指定控件初始是否可用。若指定為false,則該控件被初始禁止,即開始顯示對話框時(shí),該控件變灰,可見但不可選擇。在程序運(yùn)行時(shí),可由mode_tile函數(shù)改變其狀態(tài)。4、功能屬性3)mnemonic:該屬性用于給控件指定鍵盤助記符。它的值是單個(gè)字符的字符串,并且該字符必須是控件標(biāo)簽(label)中的一個(gè)大小寫一致的字母。使用該屬性是為了在操作對話框時(shí),通過助記符改變聚焦,但不選擇控件。該屬性沒有默認(rèn)值。2)is_tab_stop:取值true或false,默認(rèn)值為true。用于指定是否可用Tab鍵在控件之間移動(dòng)焦點(diǎn)。(一)DCL文件結(jié)構(gòu)定義對話框的文件是一個(gè)文本文件(ASCII碼文件),可在文本編輯器中編寫,該文件的擴(kuò)展名為*.dcl。系統(tǒng)定義的對話框存放在acad.dcl中,文件base.dcl中也為用戶提供了許多預(yù)定義的標(biāo)準(zhǔn)控件。一個(gè)對話框本質(zhì)上為樹狀結(jié)構(gòu)形式。5.4DCL文件的編寫方法對話框名稱:dialog{label=“主標(biāo)題”;:控件名1{label=“控件標(biāo)題”;key=“關(guān)鍵字”;其它屬性…}:控件名2{………}………}

DCL文件的編寫格式(二)用DCL語言設(shè)計(jì)對話框示例1:anniu:dialog{label="歡迎到此瀏覽";:button{label="CAD二次開發(fā)";width=30;key="but1";}ok_only;}示例2:dxan:dialog{label="確定圖紙幅面";:boxed_radio_row{label="幅面規(guī)格";:radio_button{label="A0";key="a0";}:radio_button{label="A1";key="a1";}:radio_button{label="A2";key="a2";}:radio_button{label="A3";key="a3";}:radio_button{label="A4";key="a4";}:radio_button{label="A5";key="a5";value=1;}}ok_cancel;}示例3:yuan:dialog{label=“繪制圓";:edit_box{label="圓心X(mm)=";mnemonic="X";key="X";value=50;}:edit_box{label="圓心Y(mm)=";mnemonic="Y";key="Y";value=50;}續(xù)前::edit_box{label="半徑R(mm)=";mnemonic="R";key="R";value=25;}ok_cancel;}示例4:rect:dialog{label="繪制矩形";:row{:image{width=30;height=10;key="rct";color=0;}:column{:edit_box{label="W(mm)=";mnemonic="W";key="w";}:edit_box{label="H(mm)=";mnemonic="H";key="h";}:button{label="Location";key="base";}}}ok_cancel;}basept:dialog{label="確定插入點(diǎn):";:row{:image{width=30;height=10;key="bp_sld";color=0;}:boxed_column{label="Basepoint";:button{label="插入點(diǎn)<";key="pick";}:edit_box{label="x=";key="x";mnemonic="x";}:edit_box{label="y=";key="y";mnemonic="y";}}}ok_cancel;}示例4的顯示結(jié)果:示例5:shaft:dialog{label="DrawImage";:row{:image{width=30;height=10;key="image";color=0;}:column{:edit_box{label="D(mm)=";mnemonic="D";key="D";value=25;}:edit_box{label="L(mm)=";mnemonic="L";key="L";value=50;}:boxed_column{label="Basepoint";:button{label="Pickpoint<";key="pick";}:edit_box{label="x=";key="x";}:edit_box{label="y=";key="y";}}}}ok_cancel;}示例5的顯示結(jié)果:對話框設(shè)計(jì)編程練習(xí):正多邊形對話框設(shè)計(jì)編程:zdbx:dialog{label="帶圓正多邊形";:row{:boxed_column{:edit_box{label="邊數(shù)";key="number";value=6;}:edit_box{label="半徑";key="rad";value=20;}}:boxed_column{:radio_button{label="內(nèi)接圓";key="nq";}:radio_button{label="外切圓";key="wq";value=1;}}}ok_cancel;}對話框設(shè)計(jì)編程練習(xí):

對話框設(shè)計(jì)程序(dytx.dcl)dytx:dialog{label="等腰梯形";:row{:boxed_column{:edit_box{label="上底";key="sd1";value=30;}:edit_box{label="下底";key="xd1";value=60;}:edit_box{label="高度";key="gd1";value=40;}}:image_block{key="tx1";width=18;}}:row{:retirement

溫馨提示

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

最新文檔

評論

0/150

提交評論