找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 6339|回复: 18

[研讨] ODCL非模态对话框设计研讨

[复制链接]

已领礼包: 593个

财富等级: 财运亨通

发表于 2013-4-16 18:04:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
非模态对话框的优点不必多说,有几个问题共同探讨:

1 标题栏中标题前面可否加入一个图标? 后面的文字是否可以用Url?
2 非模态对话框有没有必要一直保留?保留时增加一个按钮直接执行命令,还是命令执行时显示,执行完毕关掉,两种情况哪个更方便
3 用非模态对话框时是否一定先检测是否有打开的并Kill掉,再打开自己的?

本帖被以下淘专辑推荐:

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 145个

财富等级: 日进斗金

发表于 2013-4-16 18:43:33 | 显示全部楼层
1、标题栏可以加图标,标题栏不能加链接

2、非模式框的用途主要是在程序运行的过程中还能继续修改需要的参数,也只是为这个程序服务的,所以我认为程序运行结束后,对话框应该关掉,用的时候在随程序运行在打开。 否则每个人的工具要都一直保留着对话框,那么小小的屏幕乱了,也不方便画图了。应该用既有,不用既无。

3、应该把当前激活的浮动的(不包括停靠的)的非模式对话框KO掉,除非你认为那个是特别必须要浮动的,其实特别需要一直显示的非模式框可以设计成Control Bar 或者 Palette.

具体的实现例子等我晚点在传上来。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2013-4-16 19:02:02 | 显示全部楼层
设计URL可以在Form的一个合适的位置,放入URL控件就行了。


                               
登录/注册后可看大图

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2013-4-16 19:08:10 | 显示全部楼层
标题栏加入图标方法

1、点击Form,在右边的属性窗口找到"标题栏图标",点击发现这个地方是NONE。

说明你没把图标资源文件传上来。



                               
登录/注册后可看大图



2、如何加入图标资源呢?


                               
登录/注册后可看大图




                               
登录/注册后可看大图



                               
登录/注册后可看大图




                               
登录/注册后可看大图


添加完后,在”标题栏图标“那就可以选择了。



                               
登录/注册后可看大图




                               
登录/注册后可看大图



评分

参与人数 1威望 +3 D豆 +5 贡献 +3 收起 理由
牢固 + 3 + 5 + 3 技术引导讨论和指点奖!

查看全部评分

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2013-4-16 19:28:29 | 显示全部楼层
占位1
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2013-4-16 19:28:40 | 显示全部楼层
站位2
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 344个

财富等级: 日进斗金

发表于 2013-4-16 19:53:29 | 显示全部楼层
本帖最后由 牢固 于 2013-4-16 19:57 编辑

我们可以伪造一个标题栏,那么就可以在假的标题栏添加Url 了!
非模态对话框如有必要,可以一直存在!
我的做法是加载非模态对话框时,将其打开状态保存到黑板空间!
当打开另外的文档时只需检测这个打开状态变量值即可判断是否要重新加载对话框!
还可以将这个非模态对话框做成类似QQ的自动隐藏窗口!我在明经论坛发过一个这样的示例代码!
http://bbs.mjtd.com/thread-99759-1-1.html
自动隐藏对话框.gif
请注意:这个标题栏是伪造的!

点评

您说的模态和非模态是什么意思呀?请问  详情 回复 发表于 2013-6-12 21:44
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2013-4-16 20:00:26 | 显示全部楼层
牢固 发表于 2013-4-16 19:53
我们可以伪造一个标题栏,那么就可以在假的标题栏添加Url 了!
非模态对话框如有必要,可以一直存在!
我 ...

G版提供了一个菜单设计的思路,值得借鉴。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

 楼主| 发表于 2013-4-17 07:45:59 | 显示全部楼层
G版的思路很好,自动隐藏是不是要用 MouseMoveOff MouseEntered 事件,然后用Resize对话框
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 344个

财富等级: 日进斗金

发表于 2013-4-17 08:10:22 | 显示全部楼层
eachy 发表于 2013-4-17 07:45
G版的思路很好,自动隐藏是不是要用 MouseMoveOff MouseEntered 事件,然后用Resize对话框

对的!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2013-4-17 08:39:30 | 显示全部楼层
eachy 发表于 2013-4-17 07:45
G版的思路很好,自动隐藏是不是要用 MouseMoveOff MouseEntered 事件,然后用Resize对话框

自动隐藏应该是设计时候隐藏Title Bar, 然后自己设计个“Title Bar",在最上面,自己设计 最小化按钮、最大化按钮,关闭按钮,设置好它们的回调函数。

对按钮设置OnClose事件回调函数,对Form设置OnSise事件回调函数处理对话框显示大小。


设计一个能”尺寸可调并自己定制TITLE的对话框“的思路:




                               
登录/注册后可看大图




                               
登录/注册后可看大图

最上面设计个”矩形框“做Tttle,背景选上合适的颜色。
自己设计个”按钮“,标题写上 X 和_ ,当然可以设计图片按钮,自己画好。



                               
登录/注册后可看大图


可以在这个自己设计的TITLE上加入超链接。



                               
登录/注册后可看大图


设置下Form的Size事件,里面加入处理函数。



                               
登录/注册后可看大图

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2013-4-17 09:12:39 | 显示全部楼层
2 确实有人把非模态对话框做工具栏一样在用!
我觉得更好的用途是在命令开始执行时,一边在图形窗口拾取点交互,另外在非模态对话框中可以修改当前的绘制参数。命令结束时,非模态对话框关闭。
例如,某正软件的绘制桥架那样。
3 非模态对话框的销毁时机可以自己控制,我更倾向于关闭对话框时直接销毁,而不是在应用程序退出时集中销毁;
后者以前也采用过,但是发现如果多个非模态对话框中有GridCtrl等控件时,会出现一些资源冲突。

点评

多个非模态对话框中有GridCtrl等控件会出现一些资源冲突,还真没尝试过!学习了!  发表于 2013-4-17 13:03
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2013-4-17 10:01:25 | 显示全部楼层
zfbj 发表于 2013-4-17 09:12
2 确实有人把非模态对话框做工具栏一样在用!
我觉得更好的用途是在命令开始执行时,一边在图形窗口拾取点 ...

ZF现在你做开发主要是用的什么语言?

我也倾向于非模式对话框不用的时候就关闭。当然这并不影响我们探讨各种技巧的实现。

点评

上周后面出差了,周末刚回来。我现在90%都是用VC。  发表于 2013-4-22 11:21
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 344个

财富等级: 日进斗金

发表于 2013-4-17 11:07:27 | 显示全部楼层
XDSoft 发表于 2013-4-17 10:01
ZF现在你做开发主要是用的什么语言?

我也倾向于非模式对话框不用的时候就关闭。当然这并不影响我们探 ...

非模式对话框如果作为工具栏按钮来使用,当然是需要常开!用户可以自己选择关闭!
如果只是作为某个命令的组成部分,使用完后就可以关闭!这些都是有开发者结合用户使用习惯和方便角度来综合考虑!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2013-4-17 12:13:34 | 显示全部楼层
菜鸟前来学习:)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-12-18 16:16 , Processed in 0.459294 second(s), 71 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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