明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2782|回复: 17

請教各位怎樣隱藏對話框執行圖面操作後回退到對話框?(急),先謝謝各位啦!

  [复制链接]
发表于 2003-9-23 10:53:00 | 显示全部楼层 |阅读模式
[em00]
发表于 2003-9-23 11:11:00 | 显示全部楼层
再调入显示对话框呀
发表于 2003-9-23 11:33:00 | 显示全部楼层
帮助文件中搜索“隐藏对话框”,有详细介绍和例子。。。
如无中文帮助,本站有下载
发表于 2003-9-23 12:32:00 | 显示全部楼层

例子

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2003-9-23 12:39:00 | 显示全部楼层

可以把幫忙把中文幫助文件網址貼出來嗎?謝謝!

[em00]
发表于 2003-9-23 12:43:00 | 显示全部楼层
不用这么懒吧,方法也告诉你了,例子给你了,也介绍了参考内容,就在本站的下载中心,你找一下都不愿意?
发表于 2003-9-24 09:40:00 | 显示全部楼层
在對話方塊作用期間,使用者無法進行交談式選取。如果您要使用者從圖形螢幕進行選取,必須先隱藏您的對話方塊,然後加以還原。隱藏對話方塊與以 done_dialog 加以結束一樣,不過您的回覆函數必須使用 done_dialog 的 status 引數指出該對話方塊是被隱藏A而不是被結束或取消。請將 status 設成應用程式定義的值。
當對話方塊消失時,start_dialog 函數會傳回應用程式定義的 status。然後您的程式必須檢查  start_dialog 傳回的狀態,看看接著要做什麼。有關標準和應用程式定義的 status 值,請參閱 "done_dialog" 在 「AutoLISP 參考手冊」內。

例如,以下是一個示範對話方塊,它需要使用者在 AutoCAD 圖形視窗中點選一個點:

該對話方塊是以下列 DCL 定義:

hidedcl : dialog
{ label="Hide Example";
  : column
  { : text
    { key="message";
      label="按一下 PickMe 點選一個點";
      fixed_width=true;
      fixed_height=true;
      alignment=centered;
    }
    :row
    { ok_only;
      :retirement_button
      { label    = "ickMe";
        key      = "hide";
        mnemonic = "H";

    }}}}

該函數控制對話方塊來顯示視窗,直到使用者按下「確定」或關閉視窗為止。如果使用者選擇 PickMe,程式便會隱藏對話方塊,並提示使用者選取一個點。下列 AutoLISP 程式碼控制該對話方塊:

(defun c:hidedcl (/ dcl_id what_next cnt)
  (setq dcl_id (load_dialog "hidedcl.dcl"))﹔載入對話方塊。
  (setq what_next 2)
  (setq cnt 1)
  (while (>= what_next 2)                    ;開始顯示迴路。
    (if (null (new_dialog "hidedcl" dcl_id)) ;起始設定對話方塊
      (exit)                                 ;,如果傳回 nil
    ); endif                                 ;則結束。

    ;設定在按下按鈕時要採取的動作。任一按鈕
    ;導致 done_dialog 呼叫關閉對話方塊。
    ;每個按鈕都以 done_dialog 與特定的狀態碼關聯,
    ; 而此狀態碼是由

    ; start_dialog 所傳回。

  
    (action_tile "accept" "(done_dialog 1)") ;設定 OK 的動作。
    (action_tile "hide" "(done_dialog 4)")   ;設定動作
                                             ickMe。
    (setq what_next (start_dialog))         ;顯示對話方塊。
    ;
    (cond
      ((= what_next 4)                       ;提示使用者
        (getpoint "\npick a point")          ;選取一點。
      )
      ((= what_next 0)
        (prompt "\n使用者取消對話")

      )
    )
  )
  (unload_dialog dcl_id)
  (princ)

)

注意 雖然 term_dialog 函數可以一次終止所有的對話方塊,它不會傳回狀態碼,因此沒有任何方法可以讓您的應用程式辨別錯誤情況是來自隱藏巢狀或取消對話方塊。
 楼主| 发表于 2003-9-24 11:16:00 | 显示全部楼层

謝謝Spring和Meflying和指導,但是請幫我看看這個程式,沒辦法偉回屏幕操作的信息,

謝謝Spring和Meflying和指導,但是請幫我看看這個程式,沒辦法偉回屏幕操作的信息,我該怎麼辦啊?再次感謝![br][em00]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2003-9-24 11:59:00 | 显示全部楼层
你的对话框初始化不对,你可以看看程序执行循序,每次调用对话框(就是(while (> what_next 2)...)开始),都会将对话框内所有的值恢复原状。
还有你在屏幕操作时使用(set_tile...)是没用的,因为那时对话框已经结束了。

你必须这样做,对话框的初始化时那些需要变化的全部用变量,这些变量在调用对话框之前设置初始值,而在退出对话框进行屏幕操作时,仅仅改变这些变量即可,再次调用对话框时就会按这些变量的新值初始化对话框
 楼主| 发表于 2003-9-25 17:24:00 | 显示全部楼层

謝謝各位大哥的幫忙,我的程式己經寫好啦,萬分感謝!!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-10-2 16:21 , Processed in 0.195022 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表