【原创】LISP DCL 非模态对话框研究成功!(20090601第四版)
本帖最后由 nonsmall 于 2013-5-13 11:43 编辑 <br /><br /><p>最新第四版研究成果展示:</p><p>谢谢楼下的支持和激励!</p><p>演示结果详见这里</p><p></p><p></p><p>或到<a href="http://nonsmall.ys168.com/">http://nonsmall.ys168.com/</a>下载</p><p>目前新论坛无法正常上传GIFt预览图片</p><a href="http://www.mjtd.com/Bbs/dispbbs.asp?boardid=3&replyid=120941&id=71369&page=7&skin=0&landlord=0&Star=1"></a><p></p><p>====================我是版本分割线=================</p><p>第三版:</p><p>虽然我现在不是用DCL实现的</p><p>但确实是我个人研究的用Lisp实现非模态的一个结果</p><p>见链接</p><p><a href="http://www.mjtd.com/bbs/dispbbs.asp?boardid=3&replyid=418&id=73266&page=1&skin=0&landlord=0&Star=1">Lisp 使用 非模态的VBA对话框成功</a></p><p>======================================</p><p>以下为第二版本的研究:---------->>>></p><p>原理:根据第一版的情况和网上的一些参考</p><p>窗体非模态就是把父窗体置为当前 当前的DCL对话框就不再是最前端的了 (这里的父窗体其实是绘图区)</p><p>图中使用API 包括:</p><p>GetForegroundWindow</p><p>EnableWindow </p><p>GetWindow</p><p></p><p>==================================</p><p>==================================</p><p>以下为第一版本的研究:---------->>>></p><p></p><p></p><p></p><p>执行后 DCL 变成非模态对话框,可以对当前图进行绘制操作</p><p>同时可以直接使用set_tile进行对话框控制</p><p>(set_tile "txt" (cdr(assoc 0 (entget(car (entsel))))))</p><p>可以查看图元信息</p><p>原理显而易见--------其实是对话框在另一个图档即可</p><p>不过DCL的非模态被我发现了,希望大家一起研究(例如怎样把DCL所在文档隐藏不可见或者自动切换回来????)</p> 源码不完整呀 本帖最后由 作者 于 2008-10-28 17:05:57 编辑 <br /><br /> <p>玩两下就觉得没意思了...</p><p>你新建了一个文档,切换到新的文档上去,说实在话,俺觉得意义不大...(实在想不出来有啥用)</p><p>然后,再切换回来原来DCL对话框启动时所在的文档时,DCL对话框还是处于模态对话框的情况...</p><p>不action就没办法对其所在文档进行操作...(本来DCL就是模态对话框)</p><p>期待高手有新思路...不然,凭俺的脑袋想不出这个有啥用///</p><p>不过,能发现这个,楼主的细心,用心的劲儿,值得学习...</p><p>但是我觉得楼主对非模态化的理解有点出入吧/...</p> <p>呵呵,好想法.</p> 我想到好多id啦,谢谢楼主 我的也是,死机 如果能在旧文档里实现就好了. 本帖最后由 作者 于 2008-10-28 18:38:58 编辑dcl不支持非模态窗口,楼主这也算是一种办法 本帖最后由 作者 于 2008-10-28 19:07:42 编辑 <br /><br /> <p>也许最终无法应用,也许能研究出更好的应用,权当我抛了一块砖。</p><p>我只是提出一点新的想法,希望和大家一起讨论看看有没有真正实现非模态的可能。</p><p>本来我是想在新图中加载后返回当前图启用 但是还没有成功</p><p>另外action的问题也的确存在(也许可以配合lisp自定义生成临时的工具栏按钮)</p><p>目前配合反应器可以做点简单的事情 其他的控件还没有尝试</p><p>和当前的DCL是否有冲突也未知 有待研究</p> 不错