找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 4650|回复: 24

[原创]:AutoCAD2004下的可停靠、可自动隐藏面板演示

[复制链接]
发表于 2004-9-14 19:14:07 | 显示全部楼层 |阅读模式

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

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

×
开发环境: VC7.0+ARX2004
运行环境: Win2000/WinXP/Win2003+AutoCAD2004/2005
激活命令: mypane
源代码:     附带
主要内容:
        使用ARX2004中的CAdUiPalette和CAdUiPaletteSet类(他们实际类似于MFC中的CPropertyPage和CProperySheet),编程思路如下:

页面的创建过程:
1、基于CAdUiPalette类派生出自定义类,作为面板中的一个页面。
2、在自定义页面类中插入页面所属的子窗体(添加成员变量)。
3、在自定义页面类中响应OnCreate消息进行内部子窗体的动态创建;响应OnSize消息进行重新布置页面内的子窗体

容器的创建:
1、基于CAdUiPaletteSet派生一个类,作为页面的容器。
2、将各自定义页面作为容器成员变量加入容器类。
3、在容器类中响应OnCreate消息,进行个页面的创建,并调用AddPalette将个页面添加到容器中。

控件条的创建:
和通常的控件条动态创建办法一样,这里就不说了。

注意:
若页面中嵌入的子窗体自身不能处理自身的命令消息(如普通的控件),则应另行创建一个隐形的消息处理窗口,然后将这些子窗口的拥有者设为此消息处理窗口(按MFC消息发送机制,命令/通告等消息发往窗口的拥有者,而不是它的父窗口,但缺省情况下,拥有者和父窗口相同),然后就可以在消息处理窗口中处理这些子窗口的消息。

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

已领礼包: 3532个

财富等级: 富可敌国

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

使用道具 举报

发表于 2004-9-15 07:59:41 | 显示全部楼层
沒有和XT一起使用的代碼麼?
怎麼在Dll中使用XTreme啊?能隨便給個簡單的例程嗎?
编译没有错,但始终在运行时出错。死在这句:
CXTPPropertyGridView::CXTPPropertyGridView()
{
...
m_hCursor = AfxGetApp()->LoadCursor( XTP_IDC_HSPLITBAR);
...
}
不知道为什么?
错误对话框截图:
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-9-15 08:25:46 | 显示全部楼层
先收藏了,等考试完毕后好好研究一下。
初步用了一下,在对话框测试的 list控件下拉时会失去焦点,自动隐藏功能也不能实行。
感谢HELLOW带来这么好的东东。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2004-9-15 13:56:33 | 显示全部楼层
To easypower:
XT库中的那句话出错是因为资源没有切换过来,CAD资源中可没有XTP_IDC_HSPLITBAR,修改源代码如下:
{
...
m_hCursor=::LoadCursor(AfxGetResourceHandle(),MAKEINTRESOURCE(XTP_IDC_HSPLITBAR));
...
}

(别忘了重新编译库!)
然后在使用此类前加入资源切换语句:
CAcModuleResourceOverride res;
CXTPPropertyGridView ...;
...
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-9-15 14:07:53 | 显示全部楼层
XT類庫中使用到他自己的資源的地方也挺多的...除了自己修改
m_hCursor=::LoadCursor(AfxGetResourceHandle(),MAKEINTRESOURCE(XTP_IDC_HSPLITBAR));
這種办法以外,還有其他簡單一點的办法在自己的資源和他的資源之間切換的嗎?

btw:
"XT库中的那句话出错是因为资源没有切换过来,CAD资源中可没有XTP_IDC_HSPLITBAR,修改源代码如下:
{
...
m_hCursor=::LoadCursor(AfxGetResourceHandle(),MAKEINTRESOURCE(XTP_IDC_HSPLITBAR));
...
}
"
如果要修改源代碼的話,可是exe程序爲什麽可以?
總有什麽解決方法把???
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-9-17 00:31:17 | 显示全部楼层
因为exe程序是独立模块,内部缺省的资源就是它本身,所以不存在切换问题;而ARX属于一个扩展的MFC DLL,挂入CAD后,系统缺省的资源就是CAD本身(exe程序),而要使用ARX内的资源,就要把状态切换到ARX(扩展模块)那边去!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-9-17 16:53:09 | 显示全部楼层
是呀﹐所以用CAcModuleResourceOverride res;切換資源呀﹗
切換之后為何還要切換資源呢?
是不是要用XT自己的資源??
所以要切換到他的資源么???
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-9-21 14:11:35 | 显示全部楼层
YES!我找到它内部有自己的资源切换宏:
XT_MANAGE_STATE_BEGIN
XT_MANAGE_STATE_END
这两个宏的使用一看它的意思就应该明白了!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-9-22 08:52:11 | 显示全部楼层
路过,还是忍不住要看一下。
论坛里面的分类不够详细,应该再分设一个界面类就好了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2004-10-15 20:30:32 | 显示全部楼层
CAcModuleResourceOverride res在没有文档时发生错误!cad的bug
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-10-16 08:24:05 | 显示全部楼层
最初由 Hellow 发布
[B]YES!我找到它内部有自己的资源切换宏:
XT_MANAGE_STATE_BEGIN
XT_MANAGE_STATE_END
这两个宏的使用一看它的意思就应该明白了! [/B]


不對呀,我在Release版本下不用切換資源也不出錯,
在Debug版本下我自己寫了切換資源的代碼,沒用宏,也要斷言出錯...
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-11-9 15:29:36 | 显示全部楼层
我刚注册,还无法下载,甚至无法订阅该主题。过分吧。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-1 03:06 , Processed in 0.468149 second(s), 60 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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