2,141
社区成员
发帖
与我相关
我的任务
分享
layer=axMap.Layers.Item(1);//获得图层
//下面这段代码就这么写,我也搞不太懂,反正就是将图层的数据赋给layerVt
COleVariant layerVt;
layerVt.vt = VT_DISPATCH;
layerVt.pdispVal = layer.m_lpDispatch;
layerVt.pdispVal->AddRef();
ds = m_ctrlMapX.GetDatasets().Add(miDataSetLayer, layerVt);
//然后你就可以循环读取 fieds了
COleVariant ValueVt;
int iFieldCount = ds.GetFields().GetCount();
//显示每个field
for (int j = 0; j < iFieldCount; j++)
{
buffer1 = ds.GetFields().Item(j+1).GetName();//字段
COleVariant vVal;
CString buffer1;
vVal = ds.GetValue(f.GetFeatureID(), j+1);
vVal.ChangeType(VT_BSTR);//转化为string类型
buffer2 = vVal.bstrVal;//从相应类型的地方读取 字段的值
}
CMapXDataset ds;
//只有一个
layer = f.GetLayer();
COleVariant layerVt;
layerVt.vt = VT_DISPATCH;
layerVt.pdispVal = layer.m_lpDispatch;
layerVt.pdispVal->AddRef();
//往ds中添加数据 miDataSetLayer 为添加类型
ds = m_ctrlMapX.GetDatasets().Add(miDataSetLayer, layerVt);
COleVariant ValueVt;
int iFieldCount = ds.GetFields().GetCount();
//显示每个field
for (int j = 0; j < iFieldCount; j++)
{
buffer = ds.GetFields().Item(j+1).GetName();
m_InfoDlg.m_ctrlInfoList.InsertItem(j,buffer);
COleVariant vVal;
CString buffer1;
vVal = ds.GetValue(f.GetFeatureID(), j+1);
vVal.ChangeType(VT_BSTR);//转化为string类型
buffer = vVal.bstrVal;//从相应类型的地方读取
}