對話方塊設計基礎知識(二)

2021-09-25 11:14:00 字數 2663 閱讀 5617

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...