1)右 键 -> 添 加 -> 添 加 类 -> 类 型 库 的 MFC 类 -> 文 件 -> 添 加
acax16enu.tlb(在 arx 文件夹里)
2)派 生 出
CAcadApplication、CAcadMenuBar、CAcadMenuGroups、CAcadMen
uGroup、CAcadPopupMenu、CAcadPopupMenuItem、CAcadPopupM
enus 类(根据需要添加和删除)。为加载删除方便,统一加入 CMenu.h 文件
3)#include “CMenu.h"
4)添加新命令,加载以下程序
TRY
{
CAcadApplication IAcad(acedGetAcadWinApp()->GetIDispatch(TRUE));
CAcadMenuBar IMenuBar(IAcad.get_MenuBar());
long numberOfMenus;
numberOfMenus = IMenuBar.get_Count();
CAcadMenuGroups IMenuGroups(IAcad.get_MenuGroups());
VARIANT index;
VariantInit(&index);
V_VT(&index) = VT_I4;
V_I4(&index) = 0;
CAcadMenuGroup IMenuGroup(IMenuGroups.Item(index));
CAcadPopupMenus IPopUpMenus(IMenuGroup.get_Menus());
CString cstrMenuName = _T("自动生成XLS");//菜单组名称
VariantInit(&index);
V_VT(&index) = VT_BSTR;
V_BSTR(&index) = cstrMenuName.AllocSysString();
IDispatch* pDisp=NULL;
//see if the menu is already there
TRY
{
pDisp = IPopUpMenus.Item(index);
pDisp->AddRef();
}
CATCH(COleDispatchException,e)
{
}
END_CATCH;
if (pDisp==NULL)//如果没有"自动生成XLS"菜单组,则加载菜单
{
//create it
CAcadPopupMenu pPopUpMenu(IPopUpMenus.Add(cstrMenuName));
pPopUpMenu.AddMenuItem(COleVariant((long)0),_T("生成数据(&C)"), "CreatData\
n"); //0:菜单排列的序号;生成数据(&C):菜单中显示的文字,@表示后面的是快捷键,快捷键为C;
CreatData,菜单调用的命令名称,自动回车
CAcadPopupMenu
评论8