- UID
- 281509
- 积分
- 1054
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2005-6-21
- 最后登录
- 1970-1-1
|
发表于 2005-11-10 21:06:22
|
显示全部楼层
BOOL CGenericFun::GetNearEntityBySet(AcGePoint3d mousePt,AcDbObjectId eId,int entStyle)
{
CPoint pt;
HWND mHnd;
CMDIFrameWnd *pFrm;
pFrm=acedGetAcadFrame();
pt.x=(int)mousePt.x;
pt.y=(int)mousePt.y;
mHnd=pFrm->GetActiveFrame()->m_hWnd;
ClientToScreen(mHnd,&pt);
struct resbuf rb;
acedGetVar("cursorsize",&rb);
rb.restype=RTSHORT;
int mLen=rb.resval.rint;
acedGetVar("screensize",&rb);
rb.restype=RTPOINT;
mLen=(int)(rb.resval.rpoint[0]*mLen/200);
ads_point pt1,pt2;
static ads_name ssname,LineName;
char sbuf[10];
rb.restype=0;
switch(entStyle)
{
case 0:
strcpy(sbuf,"WJREDLINE");
case 1:
default:
break;
}
rb.resval.rstring=sbuf;
rb.rbnext=NULL;
CPoint pt0;
pt0.x=pt.x-mLen;
pt0.y=pt.y-mLen;
ScreenToClient(mHnd,&pt0);
pt1[X]=pt0.x;
pt1[Y]=pt0.y;
pt0.x=pt.x+mLen;
pt0.y=pt.y+mLen;
ScreenToClient(mHnd,&pt0);
pt2[X]=pt0.x;
pt2[Y]=pt0.y;
pt1[Z]=pt2[Z]=0;
int ret=acedSSGet("C",pt1,pt2,&rb,ssname);
long i;
acedSSLength(ssname,&i);
acedSSName(ssname,0L,LineName);
acdbGetObjectId(eId,LineName);
acedSSFree(ssname);
return true;
}
参考 |
|