问题描述:
二次开发如何屏蔽一个系统自带命令?
步骤指引:
可以通过添加 DocumentLockModeChanged 反应器,在命令开始执行时判断是否为需要屏蔽的系统命令,如果是则通过 veto() 中断当前命令。
C#
public void AddEvent()
{
Application.DocumentManager.DocumentLockModeChanged += DocumentManager_DocumentLockModeChanged;
}
private void DocumentManager_DocumentLockModeChanged(object sender, DocumentLockModeChangedEventArgs e)
{
if (e.GlobalCommandName.ToLower() == "about")
{
e.Veto();
}
}
C++
class DocManReactor : public AcApDocManagerReactor
{
public:
ACRX_DECLARE_MEMBERS(DocManReactor);
DocManReactor() {}
~DocManReactor() {}
virtual void documentLockModeChanged(ZcApDocument*,
ZcAp::DocLockMode myPreviousMode,
ZcAp::DocLockMode myCurrentMode,
ZcAp::DocLockMode currentMode,
const ZTCHAR* pGlobalCmdName);
}
void DocManReactor::documentLockModeChanged(ZcApDocument *,
ZcAp::DocLockMode myPreviousMode,
ZcAp::DocLockMode myCurrentMode,
ZcAp::DocLockMode currentMode,
const ZTCHAR * pGlobalCmdName)
{
if (StrCmpW(pGlobalCmdName, L"ABOUT") == 0) {
veto();
}
}
| 英文空间链接 |
|---|
★在中望CAD中如何通过二次开发程序屏蔽系统命令?:https://confluence.zwcad.com/pages/viewpage.action?pageId=284952138