在AE 开发中,可以利用钩子把mapcontrol给传到由ITool或者ICommond继承的命令或者工具里,传进去的钩子就是hook,类型是一个object,实际上就是一个mapcontrol,可以用强制转换为MapControl
ICommand GTCStandard;
if (!Match.ImageMatch.m_isAlive)
{
GTCStandard = new MatchTool();
GTCStandard.OnCreate(axMapControl1.GetOcx());
if (GTCStandard != null)
axMapControl1.CurrentTool = (ITool)GTCStandard;
上面的代码是在主框架中将钩子传给由basetool或者 basecommond继承而来的命令或者工具。
这样还有一个利用就是,在由命令或者工具里生成的form,可以把钩子先传到form里,要是mapcontrol的currenttool不是这个命令,可以在form ,声明一个mapcontrol,将钩子转换为mapcontrol,然后把当前命令置为想要变成的命令。