- UID
- 508747
- 积分
- 113
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2006-10-31
- 最后登录
- 1970-1-1
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
其中已定义LSP里已经(defun C:ABCD() ...)
想用ARX实现(defun C:A() (C:ABCD)),谁会,请教教我。
目前我采用的方法
1、 AcEdCommand * cmd = acedRegCmds->lookupGlobalCmd(_T(“C:ABCD”));
acedRegCmds->addCommand(_T(“MYGroup”),
_T("A"), _T("A"), cmd->commandFlags(), cmd->functionAddr());
这个方法不行,命令是ARX命令时才行。
2、 acedRegCmds->addCommand(_T(“MYGroup”),
_T("A"), _T("A"), ACRX_CMD_MODAL, acedInvokeLsp);
void acedInvokeLsp ()
{
struct resbuf *result = NULL, *list;
list = acutBuildList(RTSTR, _T(“C:ABCD”), RTNONE);
if (list != NULL)
{
int stat = acedInvoke(list, &result);
acutRelRb(list);
}
if (result != NULL)
{
// Do somthing
acutRelRb(result);
}
}
这个方法能调用A,但是参数不能用cmd->commandFlags(),当有命令可以先选择后执行时,A命令不能先选择后执行。
达不到(defun C:A() (C:ABCD))的效果。
哪位大神知道如何定义,望赐教。
|
|