hhyytt
路人甲
路人甲
  • 注册日期2005-09-10
  • 发帖数4
  • QQ
  • 铜币116枚
  • 威望0点
  • 贡献值0点
  • 银元0个
50楼#
发布于:2006-07-07 16:51
<P>好好学习吧,我倒觉得VC好一些</P>
举报 回复(0) 喜欢(0)     评分
langyan8973
路人甲
路人甲
  • 注册日期2006-07-12
  • 发帖数90
  • QQ
  • 铜币456枚
  • 威望0点
  • 贡献值0点
  • 银元0个
51楼#
发布于:2006-07-22 11:56
我遇到的问题和47楼的完全相同,哪位高手帮帮忙吧,愁死我了.
举报 回复(0) 喜欢(0)     评分
gm316
路人甲
路人甲
  • 注册日期2004-06-10
  • 发帖数11
  • QQ
  • 铜币57枚
  • 威望0点
  • 贡献值0点
  • 银元0个
52楼#
发布于:2006-08-04 20:30
<P>47楼的问题是因为没有import有关的库</P>
<P>其实很多库是分别import的</P>
<P>看下ao文档就明白了</P>
<P>IGxDialog是属于ArcCatalog的</P>
<P>应该执行类似代码:</P>
<P>#import "c:\ArcGIS\com\esriFramework.olb" raw_interfaces_only, raw_native_types, no_namespace, named_guids<BR>#import "c:\ArcGIS\com\esriCatalogUI.olb" raw_interfaces_only, raw_native_types, no_namespace, named_guids<BR>#import "c:\ArcGIS\com\esriCatalog.olb" raw_interfaces_only, raw_native_types, no_namespace, named_guids<BR></P>
<P>俺目前在搞vc+ae,其实跟ao基本相同,功能反而少了不少,比如一些UI不可以用的</P>
<P>象很好用的IIdentifyDialogPtr</P>
<P>其实懂vb的代码,基本上转换为vc的就可以了,不过有时候方法会有小的差别,看懂文档就可以了</P>
举报 回复(0) 喜欢(0)     评分
GIS_ADMIN
路人甲
路人甲
  • 注册日期2005-05-29
  • 发帖数43
  • QQ
  • 铜币243枚
  • 威望0点
  • 贡献值0点
  • 银元0个
53楼#
发布于:2006-08-17 12:34
<P>VC+ArcEngine,开发其实也不难,</P>
<P>底层的工作人家都做掉了,我们只是做一下表面的工作</P>
举报 回复(0) 喜欢(0)     评分
GIS_ADMIN
路人甲
路人甲
  • 注册日期2005-05-29
  • 发帖数43
  • QQ
  • 铜币243枚
  • 威望0点
  • 贡献值0点
  • 银元0个
54楼#
发布于:2006-08-17 12:35
<P>就看有没有兴趣了,现在学东西和做事,大多数人太浮躁,很难静下心来</P>
举报 回复(0) 喜欢(0)     评分
byac
路人甲
路人甲
  • 注册日期2006-04-05
  • 发帖数58
  • QQ
  • 铜币315枚
  • 威望0点
  • 贡献值0点
  • 银元0个
55楼#
发布于:2006-08-17 16:23
<DIV class=quote><B>以下是引用<I>gm316</I>在2006-8-4 20:30:19的发言:</B><BR>
<P>47楼的问题是因为没有import有关的库</P>
<P>其实很多库是分别import的</P>
<P>看下ao文档就明白了</P>
<P>IGxDialog是属于ArcCatalog的</P>
<P>应该执行类似代码:</P>
<P>#import "c:\ArcGIS\com\esriFramework.olb" raw_interfaces_only, raw_native_types, no_namespace, named_guids<BR>#import "c:\ArcGIS\com\esriCatalogUI.olb" raw_interfaces_only, raw_native_types, no_namespace, named_guids<BR>#import "c:\ArcGIS\com\esriCatalog.olb" raw_interfaces_only, raw_native_types, no_namespace, named_guids<BR></P>
<P>俺目前在搞vc+ae,其实跟ao基本相同,功能反而少了不少,比如一些UI不可以用的</P>
<P>象很好用的IIdentifyDialogPtr</P>
<P>其实懂vb的代码,基本上转换为vc的就可以了,不过有时候方法会有小的差别,看懂文档就可以了</P></DIV>
<P>我安装的是83版的并没有发现那个三个olb文件,怎么回事那?</P>
举报 回复(0) 喜欢(0)     评分
byac
路人甲
路人甲
  • 注册日期2006-04-05
  • 发帖数58
  • QQ
  • 铜币315枚
  • 威望0点
  • 贡献值0点
  • 银元0个
56楼#
发布于:2006-08-17 17:16
<DIV class=quote><B>以下是引用<I>Yoyozwf</I>在2006-2-16 23:47:22的发言:</B><BR>
<P>HRESULT hr;<BR>IActiveViewPtr ipActiveView(m_ipMap);<BR>IDisplayPtr pDisp(ipActiveView);</P>
<P>IGxDialogPtr ipGxDialog(CLSID_GxDialog);<BR>IGxObjectFilterCollectionPtr pGxObjectFilterCollect(ipGxDialog);<BR>IGxObjectFilterPtr ipGxObjectFilter(CLSID_GxFilterDatasets);<BR>pGxObjectFilterCollect->AddFilter(ipGxObjectFilter,TRUE);<BR>IGxObjectFilterPtr pGxObjectFileter(CLSID_GxFilterFiles);<BR>pGxObjectFilterCollect->AddFilter(pGxObjectFileter,FALSE);<BR>ipGxDialog->put_AllowMultiSelect(VARIANT_TRUE);<BR>ipGxDialog->put_Title(CComBSTR("选择数据"));<BR>   // ipGxDialog->put_Title("选择数据");<BR>IEnumGxObjectPtr ipEnumGxObject;<BR>VARIANT_BOOL bResult;<BR>hr = ipGxDialog->DoModalOpen(0,;ipEnumGxObject,;bResult);<BR>if(FAILED(hr)) <BR>  return;</P>
<P>if(bResult == VARIANT_FALSE)<BR>  return;</P>
<P>hr = ipEnumGxObject->Reset();<BR>IFeatureLayerPtr ipFeatureLayer(CLSID_FeatureLayer);<BR><BR>IGxObjectPtr ipObject;<BR>while(!ipEnumGxObject->Next(;ipGxObject))<BR>{<BR>  IGxDatasetPtr ipGxDataset(ipGxObject);<BR>  if(ipGxDataset !=0)<BR>  {<BR>   IDatasetPtr ipDataset;<BR>   hr = ipGxDataset->get_Dataset(;ipDataset);<BR>   if(FAILED(hr))<BR>    return;</P>
<P>   IfeatureClassPtr ipFeatureClass(ipDataset);<BR>   hr = ipFeatureLayer->featurefy_FeatureClass(ipFeatureClass);<BR>   if(FAILED(HR))<BR>    return;</P>
<P>   hr = ipFeatureLayer->put_Visible(VARIANT_TRUE);</P>
<P>   if(FALIED(HR))<BR>    return;</P>
<P>   ILayerPtr ipLayer(ipFeatureLayer);<BR>   hr = m_ipMap->AddLayer(ipLayer);<BR>   if(FALIED(HR))<BR>    return;</P>
<P>  }<BR>}</P>
<P>IenvelopePtr ipEnv;<BR>hr = ipActiveView->get_FullExtent(;ipEnv);<BR>     if(FALIED(HR))<BR>    return;</P>
<P>  hr = ipActiveView->put_Full_Extent(ipEnv);<BR>  if(FALIED(HR))<BR>    return;</P>
<P>  hr = ipActiveView->Refresh();<BR>  if(FALIED(HR))<BR>    return;<BR></P>
<P>这是一段添加shp文件的函数,可以在view类的openfile中添加,前提是创建一个vc工程,然后再stdafx中添加要用到的库文件esricore</P></DIV>
<P>请问44楼的高手我使用你提供的代码,当执行到if(ipGxDataset !=0)<BR>  {<BR>就跳过了,根本没有执行{}里面的语句!为什么啊?</P>
举报 回复(0) 喜欢(0)     评分
byac
路人甲
路人甲
  • 注册日期2006-04-05
  • 发帖数58
  • QQ
  • 铜币315枚
  • 威望0点
  • 贡献值0点
  • 银元0个
57楼#
发布于:2006-08-21 15:37
<P>把while语句中的!去掉就可以了,甚么道理!</P>
举报 回复(0) 喜欢(0)     评分
ggxGIS01
路人甲
路人甲
  • 注册日期2006-08-18
  • 发帖数3
  • QQ
  • 铜币132枚
  • 威望0点
  • 贡献值0点
  • 银元0个
58楼#
发布于:2006-08-27 17:38
<P>还是得先学COM</P>
举报 回复(0) 喜欢(0)     评分
yidingyu
路人甲
路人甲
  • 注册日期2005-03-20
  • 发帖数16
  • QQ
  • 铜币217枚
  • 威望0点
  • 贡献值0点
  • 银元0个
59楼#
发布于:2006-11-25 22:11
AO用起来不难,理解起来很难!
举报 回复(0) 喜欢(0)     评分
游客

返回顶部