阅读:2174回复:3
to evaspring
很抱歉,这段时间出差了,没能及时看到你的问题.
可以用IGxDialog接口,使用AddData的对话框, IGxDialogPtr ipGxDialog(CLSID_GxDialog); 通过IEnumGxObject接口获取当前要添加的图层, ipGxDialog->DoModalOpen(OLE_HANDLE(pView->m_hWnd), &ipEnumGxObjects, &bVariant) IGxObject接口获取ipEnumGxObjects每一个具体的对象(图层), ipEnumGxObjects->Next(&ipGxObject); 使用QI接口转换, IGxDatasetPtr ipGxDataset; ipGxDataset = ipGxObject; 判断ipGxDataset类型: esriDatasetType esriDSType; ipGxDataset->get_Type(&esriDSType); ipGxDataset->get_Dataset(&ipDataset); if (esriDSType == esriDTFeatureClass)// Feature classes ipFC = ipDataset; ipFL.CreateInstance(CLSID_FeatureLayer); COleVariant v(lCnt); ipFL->put_Visible(VARIANT_FALSE); pMap->AddLayer(ipFL); pMap->MoveLayer(ipFL, lCnt); ipFL->put_Visible(VARIANT_TRUE); 限于篇幅,讲的估计不是很清楚,大致的实现过程就是这样子的,这是第一个Addlayer函数的用法. addlayerfromfile和addshapefile是直接使用文件的方式,从打开文件对话框中获取文件路径就可以了. 希望能对你有一点帮助,以后能多交流! |
|
1楼#
发布于:2003-11-12 10:27
BSTR bstrName;
ipFC->get_AliasName(&bstrName); ipFL->put_Name(bstrName); ipFL->putref_FeatureClass(ipFC); |
|
2楼#
发布于:2003-11-12 10:29
有点乱,将就一下吧,
|
|
3楼#
发布于:2003-11-12 11:08
弓虽
|
|
|