2014-09-21 16:28:52|?次阅读|上传:wustguangh【已有?条评论】发表评论
关键词:C/C++, CAA, CATIA|来源:唯设编程网
下面是命令类CAApadCreateStCmd的头文件:
class CAAPadCreateStCmd: public CATStateCommand
{
//省略其它向导生成代码
//结束当前命令
void ExitCommand();
//选择草图
CATBoolean SelectSketch(void* data);
//创建拉伸体
CATBoolean CreatePad(void* data);
//验证用户输入
CATBoolean ValidateInput();
private:
//参数输入对话框
PadParamInputDlg* _pDlgInput;
//草图选择代理
CATPathElementAgent* _pSelSketchAgent;
//输入对话框确定按钮代理
CATDialogAgent* _pDlgOKAgent;
//保存草图对象
CATISpecObject_var _spSketchObj;
//第一方向偏移长度
double _fOffset1;
//第二方向偏移长度
double _fOffset2;
};
在构造函数对相关成员进行初始化:
CAAPadCreateStCmd::CAAPadCreateStCmd() :
CATStateCommand ("CAAPadCreateStCmd", CATDlgEngOneShot, CATCommandModeExclusive)
// Valid states are CATDlgEngOneShot and CATDlgEngRepeat
,_pDlgInput(NULL)
,_pSelSketchAgent(NULL)
,_pDlgOKAgent(NULL)
,_spSketchObj(NULL_var)
,_fOffset1(0.0)
,_fOffset2(0.0)
{
//初始化对话框
_pDlgInput = new PadParamInputDlg();
_pDlgInput->Build();
_pDlgInput->SetVisibility(CATDlgShow);
//添加创建直线对话框的消息回调函数
AddAnalyseNotificationCB(_pDlgInput,
_pDlgInput->GetWindCloseNotification(),
(CATCommandMethod)&CAAPadCreateStCmd::ExitCommand,
(void*)NULL);
AddAnalyseNotificationCB(_pDlgInput,
_pDlgInput->GetDiaCANCELNotification(),
(CATCommandMethod)&CAAPadCreateStCmd::ExitCommand,
(void*)NULL);
}
在析构函数添加相应资源释放的代码:
CAAPadCreateStCmd::~CAAPadCreateStCmd()
{
//析构对话框
if(NULL != _pDlgInput){
_pDlgInput->RequestDelayedDestruction();
_pDlgInput = NULL;
}
//析构草图选择代理
if(NULL != _pSelSketchAgent){
_pSelSketchAgent->RequestDelayedDestruction();
_pSelSketchAgent = NULL;
}
//析构对话框确定按钮代理
if(NULL != _pDlgOKAgent){
_pDlgOKAgent->RequestDelayedDestruction();
_pDlgOKAgent = NULL;
}
}