找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 10802|回复: 50

[公告]:给大家看一个可自动隐藏的停靠面板

[复制链接]
发表于 2004-9-12 20:01:46 | 显示全部楼层 |阅读模式

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

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

×
我最近用VC7.0 + ARX2004 + XTremeToolkit8.7 作了一个可自动隐藏(跟VC7界面中的一样)的停靠面板。共有5个页面,它们可以独立停靠,也可以组合停靠;前3页为基本控件视图,第4页是基于对话框模板的;第5页是一个独立的SDI体系(还没挂入文档类),拥有自己的菜单条、工具条、状态条、视图,其中上面的菜单条和工具条都是可任意停靠的;整个停靠系统采用了Office2003的风格,总体效果还不错,希望大家能下载下来看一下,提提建议和意见;总体性的东西都采用XTreme Toolkit 8.7的,我只作了一些比较复杂的挂接处理。

运行环境:AutoCAD2004
激活命令:pane
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-9-12 22:55:34 | 显示全部楼层
不错,支持。能共享一下代码吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-9-13 17:35:43 | 显示全部楼层
希望兄弟共享VC7.0 + ARX2004 + XTremeToolkit8.7一起開發的任一簡單原代碼
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-9-14 16:50:45 | 显示全部楼层
我怎么下载不了,虽然穷但还够消费的啊,郁闷啊。。。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-9-14 17:07:27 | 显示全部楼层 |阅读模式

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

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

×
下了解压缩有2个文件不行
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
 楼主| 发表于 2004-9-14 18:21:20 | 显示全部楼层
包里头就两条文件:pane16.arx 和 xtpUI.dll,把它们放在一块然后用CAD2004加载ARX文件,之后输入pane命令即可显示出面板,不需要附带其它文件(需要的CAD2004都有);下不下来我就不知道怎么回事了,我可没要爱心币;源代码暂不能公布,因为它涉及someone的利益,只不过我会把原理逐渐告诉大家的;XTreme Toolkit在网上好好找一下,多的是;VC7.0和ARX2004不需要我说了吧;大家好好研究一下,XTreme Toolkit包很适合做类似于ARX这种插件,比BCGControlBar好多了;有什么问题发上了大家共同讨论!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-4-14 20:06:26 | 显示全部楼层
Hellow"只不过我会把原理逐渐告诉大家的"请说一下你是如何使用Xtrem做复杂的挂接工作吧,谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-4-14 21:07:37 | 显示全部楼层
思路是这样的:
咱们常见的系统一般都只有一个框架窗口,就像CAD只有一个CMDIFrameWnd一样,且为主窗口(CFrameWnd类)。按照MFC的编制原则,在正常下只有此类窗体才能拥有菜单、工具条、状态条等等这些东西;换句话说,所有的控件条都需要此类窗体来提供停靠/浮动支持,这一点不能改变,但有一点就是,MFC没有限制一个系统中只能有一个框架窗口。我用的就是这一点:
用XTreme Toolkit:
1、以CAD主窗体为父窗体创建一个面板管理器并挂在CAD主窗体上。
2、用面板管理器创建可停靠面板。
3、以可停靠面板为父窗体创建一个另一个框架窗体并附着到可停靠面板上。
4、在框架窗体内创建菜单条、工具条、状态条等元素,此步骤与普通框架窗体的过程一样。
这样做,就避开了可停靠元素对父窗体的限制。
下面的图片就是我做出来的效果:
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-4-15 07:41:26 | 显示全部楼层
1、以CAD主窗体为父窗体创建一个面板管理器并挂在CAD主窗体上。
2、用面板管理器创建可停靠面板。
3、以可停靠面板为父窗体创建一个另一个框架窗体并附着到可停靠面板上。
能够说清楚吗,关键是2,3两点方面?
我知道在CAD里能够再新建一个框架窗口,!但是挂接的问题你是如何处理的!谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-4-15 19:23:17 | 显示全部楼层
如何挂接:
这就涉及到两个层面的消息处理。
1、单独构造一个面板管理器窗口,其父窗体为CAD的主窗体,在其内放置XTP的面板管理器。
2、响应面板管理器窗口的WM_CREATE消息,在此消息内先让CWnd进行处理,之后创建XTP面板管理器,并调用响应函数将XTP面板管理器安装在CAD主窗体上,并设置XTP面板管理器的拥有者为面板管理器窗口(否则收不到通告消息)。接下来就创建好所有的面板及面板内置元素。
3、在面板管理器窗口拦截来自于面板管理器的通告(创建面板、显示面板、隐藏面板、销毁面板等)并进行处理。这些处理可做成独立的回调过程。
至于如何将框架窗体放在面板上,看一下XTP的例子,里面有一个。
说得比较详细了,自己好好琢磨一下吧。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-4-15 19:58:04 | 显示全部楼层
请问你的那个面板管理器是什么意思,究竟是指的是那一个,是ARX的那个类派生出来,另外那你说的那个XTP里有一个例子是那一个,给个路径,谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-4-15 21:11:01 | 显示全部楼层
XTP例子:
E:\SDKs\GUI_src\XTPRO9601\Samples\Common\Advanced
看看它里面那个带工具条的可隐藏面板
面板管理器:
就是CWnd的派生类,CAD主窗体的直接子窗体,由它直接与CAD主窗体结合,其它任何子窗体都以它为父窗体创建。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-4-15 21:25:01 | 显示全部楼层
我也用其他方法做了一个,不需用其他库,我们可否交换源码?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-4-16 07:23:43 | 显示全部楼层
liron你的那个和hellow有很大的不同,停靠方面你的窗体里的工具栏只能停靠在窗体的右边,而hellow是可以停靠在窗体的左边的!
另外还请hellow大哥说一下
面板管理器:
就是CWnd的派生类,CAD主窗体的直接子窗体,由它直接与CAD主窗体结合,其它任何子窗体都以它为父窗体创建。
这个面板管理器!
谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-4-16 09:25:51 | 显示全部楼层
面板管理器是这个类:CXTPDockingPaneManager,注意它仅仅是一个管理器,不是一个真正的窗体,它的作用是在程序中调用其CreatePane函数来创建一个可浮动面板,这个函数返回指向新创建的CXTPDockingPane浮动面板的指针,然后再在这个浮动面板上做任何你想要做的事情,包括附着一个框架都可以,当然最常用的是在其上面附着一个自己的窗体,表达自己的一些信息和操作。我觉得浮动面板的父窗体可以直接是XTp的框架,而没必要非的是AutoCad的主框架。

另外:liron,你做的面板也挺有意思,希望能和你交流一下,我的MSN:yeguixi@hotmail.com,
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 21:24 , Processed in 0.243881 second(s), 62 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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