NinJa
路人甲
路人甲
  • 注册日期2003-10-29
  • 发帖数144
  • QQ
  • 铜币238枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1989回复:3

to evaspring

楼主#
更多 发布于:2003-11-12 10:20
很抱歉,这段时间出差了,没能及时看到你的问题.
可以用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是直接使用文件的方式,从打开文件对话框中获取文件路径就可以了.
希望能对你有一点帮助,以后能多交流!
喜欢0 评分0
NinJa
路人甲
路人甲
  • 注册日期2003-10-29
  • 发帖数144
  • QQ
  • 铜币238枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2003-11-12 10:27
BSTR bstrName;
ipFC->get_AliasName(&bstrName);
ipFL->put_Name(bstrName);
ipFL->putref_FeatureClass(ipFC);

举报 回复(0) 喜欢(0)     评分
NinJa
路人甲
路人甲
  • 注册日期2003-10-29
  • 发帖数144
  • QQ
  • 铜币238枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2003-11-12 10:29
有点乱,将就一下吧,
举报 回复(0) 喜欢(0)     评分
cl991036
管理员
管理员
  • 注册日期2003-07-25
  • 发帖数5913
  • QQ14265545
  • 铜币29655枚
  • 威望213点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • GIS帝国铁杆
3楼#
发布于:2003-11-12 11:08
弓虽
没钱又丑,农村户口。头可断,发型一定不能乱。 邮箱:gisempire@qq.com
举报 回复(0) 喜欢(0)     评分
游客

返回顶部