明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3975|回复: 23

如何隐藏一个对话框

  [复制链接]
发表于 2004-11-1 12:10:00 | 显示全部楼层 |阅读模式
请教:我在启动一个对话框后,需要到屏幕上捕捉一个点,我用了人上button按钮,点上以后如何将对话框隐藏起来,使得光标能够到屏幕上取点,点完后重现对话框?我一时记不起有什么命令了,手头又没有资料在旁边,请指教!
发表于 2004-11-1 12:23:00 | 显示全部楼层
帮助文件中搜索"隐藏对话框",有现成的例子
 楼主| 发表于 2004-11-1 12:52:00 | 显示全部楼层
可惜我的是E文的,好难看哎
 楼主| 发表于 2004-11-1 15:30:00 | 显示全部楼层
我看懂这段E文,但采用这种方法为什么在点完后不返回对话框呢?
发表于 2004-11-1 15:57:00 | 显示全部楼层
不返回?你直接运行帮助中的例子看看...肯定是你什么地方改得不对了
 楼主| 发表于 2004-11-1 16:00:00 | 显示全部楼层
我把HELP中的一段给复制过来用了,插在unload_dialog的前面,点完给一个nil就不弹出对话框了,我有点糊涂了,请飞版主解惑
发表于 2004-11-1 16:05:00 | 显示全部楼层
你要嘛就只运行帮助文件中的那段代码,先把这个过程弄明白了,要嘛把你的程序贴上来,否则怎么给你解惑?
 楼主| 发表于 2004-11-1 16:30:00 | 显示全部楼层
(defun c:ccd()
(setq ccd (load_dialog "dimccd.dcl"))
(if (null (new_dialog "dimccd" ccd))
(exit)
)
(setq sccd "3") ;设初值
(accd) ;运行一个子程序,取相应值
(mode_tile "accept" 1) ;使确定钮不可用
(action_tile "mccd" "(setq sccd (get_tile \"mccd\")) (accd)");按一个图象钮,取相应值
(action_tile "jccd" "(dccd \"jccd\") (setq ss 1)") ;按加工钮,将值付给ss为下面绘制图形作准备
(action_tile "wccd" "(dccd \"wccd\") (setq ss 2)") ;按加工钮,将值付给ss为下面绘制图形作准备
(action_tile "rccd" "(dccd \"rccd\") (setq ss 3)") ;按加工钮,将值付给ss为下面绘制图形作准备
(action_tile "dpoint" "(mode_tile \"accept\" 0) (done_dialog 4) ")
(setq what_next (start_dialog))
(cond
((= what_next 4)
(setq lg true)
(while (not lg)
(setvar "osmode" 0)
(setq pp1 (getpoint "\n在要标注粗糙度的轮廓外侧指定一点:"))
(setq lg (setq pp2 (osnap pp1 "nearest"))) ;捕捉距所指点最近的点
)
(setq ag0 (angle pp2 pp1))
)
((= what_next 0)
(prompt "\n用户中止了对话框")
)
)
(action_tile "accept" "(setq cd 1) (done_dialog)")
(unload_dialog ccd))
 楼主| 发表于 2004-11-1 16:46:00 | 显示全部楼层
ACTION_tile调用有错,因为在start_dialog后面不能再接受动作了,改了一下 (defun c:ccd()
(setq ccd (load_dialog "dimccd.dcl"))
(if (null (new_dialog "dimccd" ccd))
(exit)
)
(setq sccd "3") ;设初值
(accd) ;运行一个子程序,取相应值
(mode_tile "accept" 1) ;使确定钮不可用
(action_tile "mccd" "(setq sccd (get_tile \"mccd\")) (accd)");按一个图象钮,取相应值
(action_tile "jccd" "(dccd \"jccd\") (setq ss 1)") ;按加工钮,将值付给ss为下面绘制图形作准备
(action_tile "wccd" "(dccd \"wccd\") (setq ss 2)") ;按加工钮,将值付给ss为下面绘制图形作准备
(action_tile "rccd" "(dccd \"rccd\") (setq ss 3)") ;按加工钮,将值付给ss为下面绘制图形作备
(action_tile "accept" "(setq cd 1) (done_dialog)") ;点确定后关闭对话框
(action_tile "dpoint" "(mode_tile \"accept\" 0) (done_dialog 4) ");按下点取后,确定钮可用,并隐藏对话框取点
(setq what_next (start_dialog))
(cond
((= what_next 4)
(setq lg true)
(while (not lg)
(setvar "osmode" 0)
(setq pp1 (getpoint "\n在要标注粗糙度的轮廓外侧指定一点:"))
(setq lg (setq pp2 (osnap pp1 "nearest"))) ;捕捉距所指点最近的点
)
(setq ag0 (angle pp2 pp1))
)
((= what_next 0)
(prompt "\n用户中止了对话框")
)
)
(unload_dialog ccd) (princ))
发表于 2004-11-1 16:48:00 | 显示全部楼层
(while (>= what_next 2)                                ...;这句怎么没有??


再好好看看帮助文件,就那么几行代码,先把那几句弄明白了在写到你的程序里面去
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-9-30 06:22 , Processed in 0.154964 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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