明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: epwt

[运行时] 打开cad如何自动加载ribbon菜单

[复制链接]
发表于 2013-8-7 17:05:40 | 显示全部楼层 |阅读模式
写了一个自定义ribbon菜单和一个自定义工具栏,
我想在打开cad的时候就可以自动加载工具栏和ribbon菜单。

我将自定义工具栏和自定义ribbon菜单的方法写在继承自
Autodesk.AutoCAD.Runtime.IExtensionApplication类的Initialize()方法中。
写了一个lisp文件放在cad启动目录中,让他启动时自动加载这个dll。

但是只能加载工具栏,ribbon菜单却无法加载。
看了一下cad的命令,是在启动cad时加载_ribbon命令的。
所以猜想是因为cad本身的ribbon命令还没执行完毕,
RibbonControl对象还为空,所以没办法加载自定义的ribbon菜单。

我想如果我知道cad命令已经加载完了,再控制我的dll自动加载是否就可以了呢?
如果可以,我该如何获得cad启动后自身命令的加载状态?
还望大家指点。
谢谢!
发表于 2013-8-7 20:29:02 | 显示全部楼层
可否挂个命令事件 commandend 之后再加载你的
 楼主| 发表于 2013-8-8 10:33:09 | 显示全部楼层
chmenf087 发表于 2013-8-7 20:29
可否挂个命令事件 commandend 之后再加载你的

有道理!但是Commanded之后的接口是哪个呢?
发表于 2013-8-9 21:40:09 | 显示全部楼层
document.CommandEnded在这个事件之后行不?
 楼主| 发表于 2013-8-9 22:21:51 | 显示全部楼层
多谢chmenf087 !
是在Initialize里委托ComponentManager.ItemInitialized,在此判断Ribbon是否存在,接着创建Ribbon
感谢晓东的回答。
public void Initialize()
{
      Autodesk.Windows.ComponentManager.ItemInitialized += new EventHandler(ComponentManager_ItemInitialized);
}

void ComponentManager_ItemInitialized(object sender, RibbonItemEventArgs e)
{  
if (Autodesk.Windows.ComponentManager.Ribbon != null)
{
      createRibbon();
     Autodesk.Windows.ComponentManager.ItemInitialized -= new EventHandler(ComponentManager_ItemInitialized);
}  
}

public static void createRibbon()
{
     //add ribbon here..
}

public void Terminate()
{
}
发表于 2013-10-14 01:44:15 | 显示全部楼层
epwt 发表于 2013-8-9 22:21
多谢chmenf087 !
是在Initialize里委托ComponentManager.ItemInitialized,在此判断Ribbon是否存在,接着 ...

请教下,在CAD2007环境已实现注册表自动加载,如何实现自动启动命令?
 楼主| 发表于 2013-10-15 14:58:12 | 显示全部楼层
白糖 发表于 2013-10-14 01:44
请教下,在CAD2007环境已实现注册表自动加载,如何实现自动启动命令?

直接在注册的时候把命令添加添加进注册表。
发表于 2013-10-15 23:59:49 | 显示全部楼层
epwt 发表于 2013-10-15 14:58
直接在注册的时候把命令添加添加进注册表。

请问具体怎么添加命令注册信息?
发表于 2015-5-5 17:24:34 | 显示全部楼层
epwt 发表于 2013-10-15 14:58
直接在注册的时候把命令添加添加进注册表。

代码差不多 ,就是不知道怎么在注册的时候把命令添加进注册表,看到了能否回复下呀
发表于 2015-12-14 16:19:07 | 显示全部楼层
epwt 发表于 2013-8-9 22:21
多谢chmenf087 !
是在Initialize里委托ComponentManager.ItemInitialized,在此判断Ribbon是否存在,接着 ...

大神,能否把这段代码共享出来,我是新手,很需要。
自己试了很久都不能正常加载工具条。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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