- 积分
- 73
- 明经币
- 个
- 注册时间
- 2011-6-15
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
小弟最近接触ObjectARX编程
遇到一个难题,需求如下
用SelectByPolygon选择某一个框内的图元,但是要把BB和BB1图层上的图元过滤掉.
当FilterType和FilterData没有值的时候,可以全部都选择到,但是当我设置了FilterType时,就什么也选择不到了,代码如下.
VARIANT filterType;
VARIANT filterData;
SAFEARRAYBOUND mSAB1[1];
mSAB1[0].lLbound = 0;
mSAB1[0].cElements = 5;
SAFEARRAYBOUND mSAB2[1];
mSAB2[0].lLbound = 0;
mSAB2[0].cElements = 5;
VariantInit(&filterType);
filterType.vt = VT_ARRAY | VT_R8;
filterType.parray = SafeArrayCreate(VT_R8, 1, mSAB1);
VariantInit(&filterData);
filterData.vt = VT_ARRAY | VT_BSTR;
filterData.parray = SafeArrayCreate(VT_R8, 1, mSAB2);
short ft[5];
CString fd[5];
ft[0] = -4;
fd[0] = _T("<NOT");
ft[1] = 8;
fd[1] = _T("BB1");
ft[2] = 8;
fd[2] = _T("BB");
ft[3] = 8;
fd[3] = _T("轴线尺寸");
ft[4] = -4;
fd[4] = _T("NOT>");
i = 0;
for(i = 0; i < mSAB1[0].cElements; i++)
{
SafeArrayPutElement(filterType.parray, &i, &ft[i]);
}
i = 0;
for(i = 0; i < mSAB2[0].cElements; i++)
{
SafeArrayPutElement(filterData.parray, &i, &fd[i]);
}
acadSelSet->SelectByPolygon(acSelectionSetWindowPolygon, VAR, filterType, filterData);
不知道我这么写到底对不对,请各位大大指点
|
|