明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 5856|回复: 23

AcadMenuGroup是什么?

  [复制链接]
发表于 2003-9-26 08:41:00 | 显示全部楼层 |阅读模式
我想在cad的右键菜单中加入一菜单选项,来响应自己编写的程序。

我在帮助项里只找到了vba的例程, 如何把vb编写的程序改为vc的形式??
(谈谈您的见解:如何将vb的代码改写成vc的?二者主要在哪些方面会有不同?)
比如: vb:       Dim currMenuGroup As AcadMenuGroup         这样定义变量
而对    vc,若用 AcadMenuGroup currMenuGroup;                形式定义上例变量,两者是否等价?


vc编写的程序中需包含的头文件从哪里可以查找到?
////////////Creating a new popup menu//////////////////////////////////////////////

This example creates a new popup menu called "TestMenu" in the first menu group of the MenuGroups collection.

Sub Ch6_CreateMenu()
    Dim currMenuGroup As AcadMenuGroup
    Set currMenuGroup = ThisDrawing.Application.MenuGroups.Item(0)
   
    ' Create the new menu
    Dim newMenu As AcadPopupMenu
    Set newMenu = currMenuGroup.Menus.Add("TestMenu")

End Sub
发表于 2003-9-30 10:42:00 | 显示全部楼层
AcadMenuGroup所代表的是AcadMenuGroups的一个弹出菜单。
上面的代码可以参考一下下面的代码:

CMenu *currMenuGroup=CreatMenu();
//
//如果掉入自己的资源菜单可以用下面的菜单
//currMenuGroup->Loadmenu(YouMenuTempId);
//YouMenuTempId表示你的菜单资源的ID

//如果要得到CAD的系统菜单,可用如下命令
//CMDIFrameWnd* acedGetAcadFrame();
currMenuGroup=acedGetAcadFrame()->getmenu();

Cmenu *newMenu =currMenuGroup->append(...........);//后面的代码同上。

//此段代码要注意,CMDIFrameWnd* acedGetAcadFrame();为接口。在rxmfcapi.h中。
 楼主| 发表于 2003-10-5 16:39:00 | 显示全部楼层
//如果要得到CAD的系统菜单,可用如下命令
//CMDIFrameWnd* acedGetAcadFrame();
currMenuGroup=acedGetAcadFrame()->getmenu();
非常感谢您无私的帮助。
/如果要得到CAD的右键快捷弹出式菜单,该用什么命令?
这些东西在哪些资料里能找到?!!!
发表于 2003-10-8 17:36:00 | 显示全部楼层
黄毛丫丫,有两种方法:
1、你可以可以参考《contextmenu》方面的书,。在安装目录下有个例子,你可以运行一下(例子的目录好象是:objectarx\samples\mfcsamps\contextmenu)。
2、可以利用REACTOR来进行或者时间来进行右键弹出菜单。
其实,你只要多看例子,你就可以最大限度的熟悉ARX和抄代码,真正的事半功倍。
 楼主| 发表于 2003-10-8 19:20:00 | 显示全部楼层
真的非常感谢您!
我有点感觉了!我会慢慢地、一点点地看过去的。
若能得到你们的及时指导和热心帮助,我相信:我真的会事半功倍的!!!
发表于 2003-10-9 15:30:00 | 显示全部楼层
你是在搞二次开发的!还是学习
 楼主| 发表于 2003-10-9 20:18:00 | 显示全部楼层
哦。我是搞autocad二次开发的,主要是搞公差那部分的,目的在于推广几何产品规范(英文简称为GPS)国际标准,GPS对象是公差、尺寸之类的要素,换句话说,GPS在制造业中的作用就同uml在软件开发中的作用,一种架构的理念、概念性的东西。如同砌房,仅告诉我们砌不同的房,就有不同的房子结构,以致产生不同的功效(比如隔音,夏凉冬暖等);而没有详述如何搭建房子的细节问题。

打算选中某个实体,比如直线度公差,在cad菜单中选中新增菜单项“GPS标准”选项,需
弹出一对话框,提供这个实体的“测量仪器”,“测量方法”等以供选择,选择项内容
由数据库提供,
(数据库用vc的ado组件做成dll形式,arx调用此dll文件。)
我学arx才2周,还请您多多执教!现在我心中更多的是想法,还不知可不可行?给点意见,如何?呵呵!
 楼主| 发表于 2003-10-10 17:29:00 | 显示全部楼层
dear lilin,
我在调试objectarx\samples\mfcsamps\contextmenu程序时,没能看到dsw文件,只看见了好多cpp文件,于是我在vc下新建了dll工程,然后将contextmenu目录下的这些.h和.cpp和.rc和.rc2拷到了新建的目录下,该替换的我已替换掉,但我在rebuild all时,出现了一个错误:
arxmfctmpl.cpp(14):error c2065:'arxMFCDLL':undeclared indentifier
arxMFCDLL在哪里定义阿?怎么定义阿?
我查看了帮助项,只见
AC_IMPLEMENT_EXTENSION_MODULE(the ArxDLL)
这一句,
不同于例程中报错指向的那句:
AFX_IMPLEMENT_EXTENSION_MODULE arxMFCDLL;
 楼主| 发表于 2003-10-14 14:32:00 | 显示全部楼层
sorry
问了一个白痴问题
打开dsp的文件,就ok了
delete please

谢谢lilin,这个程序contextmenu正是我所想要的,选中不同的实体,
右键菜单中添加不同的菜单项,衷心谢谢您的帮助!
我现在最需要的是在细心认真的前提下调试程序并读懂代码,免得
增添大家的麻烦。
发表于 2003-10-21 11:12:00 | 显示全部楼层
其实没什么的了,我也是搞二次开发的,今年刚好毕业,以前是搞PB和纯C++的,我还是有很多问题的。在学习的过程中,我得到了开发室的许多“前辈”的指导。其实在现在的软件行业,最重要的不是知识,而是你学习的虔诚度。软件行业的门口很底,相应的上门梁也很底,所以,欲进此门,必须先弯腰。正因为如此,我才能得到许多人的帮助。这是我在一篇什么文章上看到的,希望对你有好处。
在学习过程中,ADS ARX提供的大量源代码,几乎能解答我们所有的遇到的问题。还有,在应用MFC时,千万不要自己用纯的MFC,而是要从ADUI和ACUI接口来调用。例如我曾经做了一个DOCKING 窗口,不论如何移动,DOCK的位置就是不对,但是引用了接口以后,横顺利的就解决了,并且代码少了很多。

很高兴认识你的!因为我学的是土木专业和计算机专业,所以对GPS了解的相对多一点。希望在以后能多交流
(前些天,单位服务器坏了,不好意思的!)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 21:30 , Processed in 0.156654 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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