102 lines
3.2 KiB
C++
102 lines
3.2 KiB
C++
#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
|