zcp76
路人甲
路人甲
  • 注册日期2005-06-03
  • 发帖数14
  • QQ
  • 铜币155枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1455回复:1

添加图层为什么有问题?(vc)带有程序。

楼主#
更多 发布于:2005-09-12 10:57
<P>添加图层为什么有问题?(vc)当我打开程序,按下打开按钮时,可进入文件选择菜单,当选择某一图层时,如MO自带的一些数据,***.SHP等时,会出现“无法写只读特性”的字样,图层加不进去。请各位帮看一看,哪里有问题。谢谢!</P>
<P>CString CGPSView::AddShpLayer(const CString ; path, COLORREF color, short symbolSize, short symbolStyle,BOOL VisibleFlag)<BR>{</P>
<P>    CMoDataConnection conn;<BR>    if (!conn.CreateDispatch(TEXT("MapObjects2.DataConnection"))) <BR>  return "";<BR>        conn.SetDatabase(GetFileDirectory(path));<BR>    if (!conn.Connect()) return ""; </P>
<P>    // Add layer specified by path<BR>     CMoLayers layers=m_map.GetLayers();<BR>     CMoMapLayer layer;<BR>     if (!layer.CreateDispatch(TEXT("MapObjects2.MapLayer"))) <BR>   return "";</P>
<P>     CString LayerName = GetFileTitle(path);<BR>     CMoGeoDataset geoDataset=conn.FindGeoDataset(LayerName);<BR>     if(!geoDataset) <BR>   return ""; </P>
<P>    layer.SetGeoDataset(geoDataset);</P>
<P>   if(VisibleFlag)<BR>      layer.SetValid(TRUE);<BR>   else<BR>      layer.SetValid(FALSE);</P>
<P>    CMoSymbol layerSymbol(layer.GetSymbol()); </P>
<P>    if (color != -1) <BR>  layerSymbol.SetColor(color); // Set color if specified</P>
<P>     layerSymbol.SetSize(symbolSize);<BR>     layerSymbol.SetStyle(symbolStyle);<BR>     layers.Add(layer);<BR>     return(layer.GetName());</P>
<P>} </P>
<P><BR>CString CGPSView::GetFileDirectory(const CString; path)<BR>{</P>
<P>int pos = path.ReverseFind('\\');<BR>if (pos >= 0) <BR>return path.Left(pos);<BR>return "";</P>
<P>} </P>
<P>CString CGPSView::GetFileTitle(const CString; path)<BR>{</P>
<P>CString strResult = GetFileName(path);<BR>int pos = strResult.ReverseFind('.');<BR>if (pos >= 0) return strResult.Left(pos);<BR>return strResult;</P>
<P>} </P>
<P>CString CGPSView::GetFileName(const CString; path)<BR>{</P>
<P>int pos = path.ReverseFind('\\');<BR>if (pos >= 0) return path.Right(path.GetLength() - pos - 1);<BR>return path;</P>
<P>} </P>
<P>void CGPSView::OnFileOpen() <BR>{<BR> // TOD Add your command handler code here<BR> CString DefExt;<BR> CString DataFileName;<BR> DefExt.Format("%s","SHAPE文件(*.SHP)|*.shp|所有文件(*.*)|*.*|");<BR> CFileDialog dlgFile(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_PATHMUSTEXIST|OFN_FILEMUSTEXIST,DefExt,NULL);<BR> if(dlgFile.DoModal()==IDOK)<BR> {<BR>  DataFileName=dlgFile.GetPathName ();<BR> }<BR> else<BR>  return;<BR> AddShpLayer(DataFileName,RGB(194,252,254),1,0,1);<BR>}</P>
喜欢0 评分0
air_621
路人甲
路人甲
  • 注册日期2005-05-09
  • 发帖数10
  • QQ
  • 铜币147枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2007-04-27 12:27
请问这个问题怎么解决的?<br>我也遇到这个问题了<br>谢谢<br><img src="images/post/smile/dvbbs/em01.gif" />
举报 回复(0) 喜欢(0)     评分
游客

返回顶部