changyiran 发表于 2014-12-4 09:08:41

如何制作部分隐藏的对话框

就是制作一个对话框,使对话框的右边部分隐藏,隐藏部分和非隐藏部分有一个类似剪头的东西,点击它,隐藏部分显示,再点击它又隐藏。请各位高手支招。

wzg356 发表于 2014-12-4 14:01:49

本帖最后由 wzg356 于 2014-12-4 14:13 编辑

做成2个对话框(一般也是这样处理),你说的箭头是一个button用于切换,点击button执行另一个对话框的启动指令。
另一个对话框同样做一个button用于切换回来。

changyiran 发表于 2014-12-4 16:46:53

请教各位,opendcl是不是要安装什么程序啊?

sicky111 发表于 2014-12-5 23:06:11

DCL也能实现...



changyiran 发表于 2014-12-6 08:46:11

sicky111 发表于 2014-12-5 23:06 static/image/common/back.gif
DCL也能实现...

不错就是这样的,怎么实现的大神

love1030312 发表于 2014-12-10 23:46:16

期待高手解决此事哦

wzg356 发表于 2014-12-11 01:48:27

dcl我觉得只能用老土办法了,做两个或三个对话框解决,互相切换,没技术含量
看得上的拿去;;;隐框示例
(defun c:tt1 ( / dcl_id dd p str_h)
(setq dcl_id (load_dialog (wwcc1-dcl)))
(new_dialog "wwcc1" dcl_id)
(action_tile "key1" "(done_dialog 1)")
(action_tile "key2" "(done_dialog 2)")
(setq dd (start_dialog))
(cond
    ((= dd 1) (alert "执行你的程序!"))
    ((= dd 2) (c:tt2))
)
(princ)
)

(defun c:tt2 ( / dcl_id dd p str_h)
(setq dcl_id (load_dialog (wwcc2-dcl)))
(new_dialog "wwcc2" dcl_id)
(action_tile "key1" "(done_dialog 1)")
(action_tile "key2" "(done_dialog 2)")
(setq dd (start_dialog))
(cond
    ((= dd 1) (alert "执行你的程序!"))
    ((= dd 2) (c:tt1))
)
(princ)
)
;;;=============================
;;写对话框1
(defun wwcc1-dcl(/ lst_str str file f)
    (setq lst_str '(
""
"wwcc1:dialog {"
"    label = \"第一窗\" ;"
"    :boxed_row {"
"      :text {"
"            label = \"哈喽!\" ;"
"      }"
"    }"
"    :button {"
"      key = \"key1\" ;"
"      label = \"命令1\" ;"
"    }"
"    :button {"
"      key = \"key2\" ;"
"      label = \"第二窗>>&C\" ;"
"    }"
"    :spacer {}"
"    cancel_button;"
"}"
      )
    )
    (setq file (vl-filename-mktemp "DclTemp.dcl"))
    (setq f (open file "w"))
    (foreach str lst_str
(princ "\n" f)
(princ str f)
    )
    (close f)
    ;;返回
    file
)

;;写对话框2
(defun wwcc2-dcl(/ lst_str str file f)
    (setq lst_str '(
""
"wwcc2:dialog {"
"    label = \"第二窗\" ;"
"    :boxed_row {"
"      :text {"
"            label = \"哈喽!\" ;"
"      }"
"    }"
"    :button {"
"      key = \"key1\" ;"
"      label = \"命令1\" ;"
"    }"
"    :boxed_row {"
"      :text {"
"            label = \"没有东东\" ;"
"      }"
"    }"
"    :button {"
"      key = \"key2\" ;"
"      label = \"<<第一窗&C\" ;"
"    }"
"    :spacer {}"
"    cancel_button;"
"}"
      )
    )
    (setq file (vl-filename-mktemp "DclTemp.dcl"))
    (setq f (open file "w"))
    (foreach str lst_str
(princ "\n" f)
(princ str f)
    )
    (close f)
    ;;返回
    file
)
;;;=================================================================*
(princ)

Nico 发表于 2018-5-6 18:37:00

做两个dcl,来回切换
页: [1]
查看完整版本: 如何制作部分隐藏的对话框