autocad不僅預定義了25種控制項的型別,還定義了以下8個最常用的控制項。定義對話方塊時,可直接使用這些控制項,但是在編寫autolisp驅動程式時,必須要準確地使用其關鍵字(大小寫字母不等價)。
ok_only按鈕
單個的確認按鈕,關鍵字為"accept"。用於確認施加在對話方塊上的操作。
ok_cancel(確認和取消)按鈕
該控制項為兩個按鈕組成的行,確認按鈕的關鍵字同前,取消按鈕的關鍵字為"cancel"。cancel按鈕用於放棄施加在對話方塊上的操作。
errtile(出錯資訊)控制項
errtile屬於text型別的控制項,其標籤為空,關鍵字為"error"。顯示該控制項屬性value的內容。屬性value的值由autolisp程式確定。
【例】定義下圖所示出錯資訊的對話方塊的源**和autolisp驅動程式。
// 用dcl定義對話方塊,檔名為1.dcl,存放在d盤的example\dcl目錄下。
error:dialog
; 用autolisp驅動對話方塊的程式,檔名為1.lsp。
(defun c:erdlg()
(if (< (setq id(load_dialog "d:example\\dcl\\1")) 0) (exit))
(if (not (new_dialog "error" id))(exit))
(set_tile "error" "無效的輸入 ")
(action_tile "accept" "(done_dialog)")
(start_dialog)
(unload_dialog id)
(princ)
)
執行結果如下圖:
4. ok_cancel_help(和幫助)控制項
該控制項為三個按鈕組成的行,確認、取消按鈕的關鍵字同前,幫助按鈕的關鍵字為"help"。
【例】定義下圖所示含有"ok"、"cancel"和"help"三個按鈕的對話方塊的源**和autolisp驅動程式。
//用dcl定義對話方塊,檔名為2.dcl,存放在d盤的example\dcl目錄下。
hlp:dialog
;用autolisp驅動對話方塊的程式,檔名為12-8.lsp。
(defun c:hlpdlg()
(setq id(load_dialog "d:\\example\\2.dcl"))
(if (< id 0)(exit))
(if (not (new_dialog "hlp" id))(exit))
(action_tile "help" "(help \"\" \"line\")");定義help按鈕的活動是呼叫autolisp的help函式,了解直線命令的用法。
(action_tile "accept" "(done_dialog)")
(action_tile "cancel" "(done_dialog)")
(start_dialog)
(unload_dialog id)
(princ)
)
執行結果如下圖:
5. ok_cancel_help_errtile(確認、取消、幫助和出錯)控制項
下圖含有ok_cancel_help_errtile控制項的對話方塊,該控制項為確認、取消、幫助和出錯3個按鈕組成的行,出錯資訊寫在該行的下面。這4個控制項的關鍵字同前。控制項errtile需要在autolisp驅動對話方塊程式中用set_tile函式為其屬性value賦值,例如:
(set_tile "error" "無效的輸入")
//定義ok_cancel_help_errtile對話方塊,檔名為error.dcl
error:dialog
(defun c:erdlg() ;autolisp驅動程式
(if (< (setq id(load_dialog "d:\\example\\dcl\\error")) 0) (exit))
(if (not (new_dialog "error" id))(exit))
(set_tile "error" "無效的輸入")
ok_cancel_help_info(確認、取消、幫助和資訊)控制項
該控制項為確認、取消、幫助和資訊四個按鈕組成的行,確認、取消和幫助的關鍵字同前。資訊按鈕的關鍵字為"info",需要在autolisp驅動程式定義info按鈕的活動,比如,彈出乙個用text控制項為主的顯示一些資訊的對話方塊。
你好 對話方塊 對話方塊的設計經驗分享
怎麼了?除非你對某類對話方塊已司空見慣,否則遇到,第一反應往往是這樣的?這種體驗就像你明明急著去趕車,途中卻不斷被攔住塞傳單一樣。不能否認,它是一種打斷,有時甚至會成為打擾。做為設計師,雖知 打斷 暫不能杜絕,但不使之變為 打擾 卻是我們該努力做到的 多次打斷 打擾 隔乙個小時打斷你一下,你或者還可...
基礎篇 VC對話方塊小知識
一 對話方塊屬性 1.styles clip siblings 排除子視窗之間的相對區域,也就是說,當乙個特定的視窗接收到繪圖訊息時,將所有重疊視窗排除在外,只重繪指定的子視窗。styles clip children 當在父視窗內繪圖時,排除子視窗區域。2.more styles system m...
QT 對話方塊二
qmessagebox類 information 函式,主要是提示功能,不需要使用者選擇 standardbutton qmessagebox information qwidget parent,訊息框父視窗指標 const qstring title,訊息框標題欄 const qstring t...