ObjectARX动态添加AutoCAD传统下拉菜单入门篇(一)

本文介绍了如何使用ObjectARX通过COM接口动态添加AutoCAD的传统下拉菜单,无需预先制作mnu文本文件。讲解了利用VS2010+VS2008及AutoCAD2011环境,通过#import导入tlb类型库的方法,指出这种方法不需额外cpp文件。文章提及尽管能动态加载菜单,但可能无法实现带图标的菜单,并提供了源码供参考。
摘要由CSDN通过智能技术生成

ObjectARX动态添加传统下拉菜单入门篇 图文by edata  , 转载注明出处 http://www.cnblogs.com/edata 

AutoCAD 添加传统下拉菜单有很多种方式,比较典型的就是制作菜单文件mnu文本,加载(下拉菜单有的可能需要写弹出代码才能添加到菜单栏才能显示,工具条加载就能显示)。

还有另外一种方式就是使用com接口来动态添加,而com接口的使用在objectARX编程中主要有两种应用方式,代码编写不同。

下面介绍的就是com接口的第二种方式,使用#import导入tlb类型库,这种方式不用加入额外的cpp文件。

以下参考arxdev.chm的相关章节完成 ,编程测试环境,vs2010+vs2008,AutoCAD2011。

图文开始:

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,你需要创建一个 QT 窗口和一个下拉菜单。你可以使用 QT Designer 来创建它们。然后,你需要将 QT 窗口嵌入到 Auto CAD 中。这可以通过 ObjectARX 中的 AcApGetMainWnd 函数来实现。 接下来,你需要将下拉菜单添加到 QT 窗口中。这可以使用 QT 中的 QComboBox 类来实现。你需要在 QComboBox 中添加所有的选项,如下所示: ``` QComboBox *comboBox = new QComboBox(); comboBox->addItem("Option 1"); comboBox->addItem("Option 2"); comboBox->addItem("Option 3"); ``` 然后,你需要将 QT 窗口嵌入到 Auto CAD 中,并将下拉菜单添加到 Auto CAD 的菜单栏中。这可以使用 ObjectARX 中的 AcMenuBar 类来实现。你需要创建一个 AcMenuBar 对象,并使用 AddMenuBar 方法将其添加到 Auto CAD 的菜单栏中。然后,你需要使用 AddMenu 方法将一个新菜单添加到 AcMenuBar 对象中。最后,你需要使用 AddMenuItem 方法将 QComboBox 添加到新菜单中。 下面是一个示例代码: ``` void AddComboBoxToMenu() { // 获取 Auto CAD 主窗口 HWND hwndCAD = acedGetAcadHwnd(); // 创建 QT 窗口 QWidget *pQTWidget = new QWidget; QComboBox *pComboBox = new QComboBox(pQTWidget); pComboBox->addItem("Option 1"); pComboBox->addItem("Option 2"); pComboBox->addItem("Option 3"); // 将 QT 窗口嵌入到 Auto CAD 中 AcApGetMainWnd()->SetWindowLongPtr(GWLP_HWNDPARENT, (LONG_PTR)hwndCAD); pQTWidget->winId(); // 将下拉菜单添加到 Auto CAD 的菜单栏中 AcMenuBar *pMenuBar = new AcMenuBar; pMenuBar->AddMenuBar(); AcMenu *pMenu = pMenuBar->AddMenu(_T("MyMenu")); pMenu->AddMenuItem(_T("MyComboBox"), (long)pQTWidget->winId()); } ``` 注意,这只是一个简单的示例代码,并且可能需要根据你的需求进行修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值