一、创建代理类
代理类有以下几种:
1、CATDialogAgent(窗口代理,用于获取窗口按钮点击事件)
2、CATIndicationAgent(2D平面鼠标点击代理,可获取鼠标点击处坐标)
3、CATPathElementAgent(元素(点、线、面等)代理类)
4、待添加
下面以第三种示意如何使用
CATPathElementAgent
1)创建代理类实例
2)AddElementType(CATIGSMPoint::ClassName())//设置选择元素类型
3)SetBehavior(CATDlgEngWithPrevaluation|CATDlgEngWithPSOHSO);//设置选中元素高亮并保持高亮
二、状态设置
状态可以理解为一个包含多个代理类的容器,其当前状态为操作响应状态,可以设置多个状态类,通过状态跳转进行切换,以便相应不同容器中的事件
CATDialogState* pChoosePointState=GetInitialState("选择第一个点")
pChoosePointState.AddDialogAgent(pChooseSecondAgent)
三、状态跳转
AddTransition(
pChoosePointState,NULL,
IsOutputSetCondition(pChooseSecondAgent),
Action((ActionMethod)&CreateLineCpp::ChooseFirstPoint,NULL,NULL)
)
参数1:状态1
参数2:状态2,NULL代表无状态
参数3:触发条件
参数4:条件触发后执行函数
参数5、6:不知道