Files
envi-code/SourceCode/Code2026/tg_shs/shs_kerncmd/TchKernCmdGlobalFunc.h
T
2026-09-28 15:28:50 +08:00

102 lines
3.2 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#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