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 |