#ifndef _TCH_KERNCMD_GLOBALFUNC_H #define _TCH_KERNCMD_GLOBALFUNC_H // 选择对象,支持关键字,支持点选和框选 extern int SelectEnts(CString csPrompt, PickSet &ssResult, TRBList &rbBaseMask, const TCHAR* szKeyword); // Zyu add on 101209,添加一部分函数的外部声名 // 此函数不是很准确,可以删除 extern int SelectEnts(CString csPrompt1, CString csPrompt2, PickSet &ssResult, TRBList &rbBaseMask, const TCHAR* szKeyword); // modify by xly on 101104 支持多次选择的选择集,当第一次选择提示语第二次不同时,支持关键字(单个关键字); /* 参数说明: 首次选择时,支持输入关键字,在csPrompt1与csPrompt2两个字符串进行切换提示; 再次选择时,命令行提示csNextPrompt; 最终的选择结果,存放在ssResult中; aryPtInput,记录用户点选的点(世界坐标系); bFirState:记录关键字切换的开关; bAccurateLoc:在判断实体是否被选中时,是否精确比较线是否被选中,或者只粗略计算范围; bEntInBlock:标记希望获得块内的对象,或者块对象; 返回值说明: 用户取消选择时返回:RTCAN;右键回车时返回:RTNONE; */ extern int SelectEnts(CString csPrompt1, CString csPrompt2, PickSet &ssResult, TRBList &rbBaseMask, const TCHAR* szKeyword, CString csNextPrompt, AcGePoint3dArray &aryPtInput, bool &bFirState, BOOL bAccurateLoc, BOOL bEntInBlock); // 支持多次选择的选择集,当第一次选择提示语第二次不同时,不支持关键字 // 首次选择时,使用csPrompt1字符串命令行提示用户选择,再次选择时使用csPrompt2字符串命令行提示用户选择, // 选择结果存放在ssResult中;返回值int的说明,用户取消选择时返回:RTCAN;右键回车时返回:RTNONE; extern int SelectEnts(CString csPrompt1, CString csPrompt2, PickSet &ssResult, TRBList &rbBaseMask); // 首次选择提示szPrompt,之后提示szNextPrompt,支持关键字 extern int SelectEnts(LPCTSTR szPrompt, LPCTSTR szNextPrompt, TRBList &rbBaseMask, PickSet &ssResult, LPCTSTR szKeyword, TCHAR& cRet); // sg add 110208,在用户拾取的区域内获得对象 // bAccurateLoc:在判断实体是否被选中时,是否精确比较线是否被选中,或者只粗略计算范围; // bEntInBlock:标记希望获得块内的对象,或者块对象; extern int GetEntityByPoly(TADSGePoint3d pt1, TADSGePoint3d pt2, AcDbObjectIdArray &idAry, BOOL bAccurateLoc, BOOL bEntInBlock, const TCHAR* pszDxf = NULL); extern int SelectEnts1(CString csPrompt, XPoint &pt1,XPoint &pt2); extern int SelectEnts(CString csPrompt1, AcDbObjectIdArray &idAryAll, BOOL bEntInBlock, BOOL bSelText); //监控系统消息类 和 选择集类声明 //add by lxb on 2011/12/02 begin class THook { public: THook(const CString &sPormat = _T(""),TCHAR *pszKeyWord = NULL); ~THook(); int GetValue(); CString GetKeyWord(); public: enum { eLBUTTONDOWN = 0, eRBUTTONDOWN = 1, eESC = 2 }; protected: static BOOL ListenMsg(MSG* pMsg); private: static int s_iValue; //0:左键,1:空格、回车、右键,2:ESC键 static CString s_sKeyRet; //返回的关键字(单个) static CString s_sPormat; //提示语 static CString s_sKeyWord; //关键字串 }; class TPickEntSetEx { public: TPickEntSetEx(); ~TPickEntSetEx(); int Get(LPCTSTR commandString, void *pt1, const ads_point pt2, const TRBList& entmask, AcDbObjectIdArray idmask = NULL);//最后参数为指定范围过滤 int Length(); TEntitySet operator [](long index) const; public: enum { eERROR = 0, eOK = 1, }; private: PickSet ssTatol; }; //add by lxb on 2011/12/02 end #endif