一、创建代理类
代理类有以下几种:
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:不知道
本文介绍了如何在软件开发中创建和使用代理类,特别是CATPathElementAgent,用于处理元素选择事件。首先,通过实例化代理类并设置选择元素类型和行为来创建代理。接着,定义状态容器并添加代理,以响应不同操作。最后,通过状态跳转机制,根据触发条件执行特定函数,实现状态间的平滑转换。这一机制在交互设计和用户界面编程中具有重要意义。
4044





