中国地图
GIS探索者
地图网
GIS论坛
网站首页| GIS论坛 |新闻动态 | 技术专栏 | GIS书籍 | 资源下载 | 求职招聘 | 研究生考试 | GIS博客 | GIS空间站
欢迎光临GIS空间站!   网站地图
  专栏导航:| ArcGIS | MapInfo | TopMap | 地理信息 | 遥感 | GPS | 测绘 | WebGIS | LBS | 前沿 | 数据库 | 开发 | 行业应用
  推荐栏目:| AO开发 | 业界动态 | GIS资源 | 招聘信息 | 求职简历 | 共享软件 | 电子书籍 | 研究生考题 | 电子期刊 | GIS论文
您现在的位置: GIS空间站 >> 技术专栏 >> ArcGIS >> AO开发 >> 文章正文

AO开发笔记(实战篇)-用VC+AO开发独立的应用程序(3)续1

作者:Snoopy    文章来源:中国3S网站(httpwww.863s.com)    点击数:    更新时间:2006-12-11
 
 

另外几个函数代码如下:

// 获取所有图层

BOOL CLayerManageDlg::GetAllLayer()

{

  if(m_ipMapControl == NULL) return FALSE;

  long lLayerCount=0;

  m_ipMapControl->get_LayerCount(&lLayerCount);

  CString szLayersName;

  int iIndex=0;

  for(long i=0;i<lLayerCount;i++)

  {

    ILayerPtr ipLayer;

    m_ipMapControl->get_Layer(i,&ipLayer);

    if(ipLayer)

    {

              BSTR bstrLayerName;

      ipLayer->get_Name(&bstrLayerName);

      VARIANT_BOOL bVisible=FALSE;

      ipLayer->get_Visible(&bVisible);

      szLayersName = bstrLayerName;

      ::SysFreeString(bstrLayerName);

      m_listLayer.InsertItem(iIndex,szLayersName,0);

      m_listLayer.SetCheck(iIndex,bVisible);

      iIndex++;

    }

  }

  return TRUE;

}

// 刷新地图显示

void CLayerManageDlg::RefreshMap()

{

  IActiveViewPtr ipActiveView;

  HRESULT hr=m_ipMapControl->get_ActiveView(&ipActiveView);

  if(ipActiveView != NULL)

  {

    ipActiveView->Refresh();

  }

}         

// 上移图层

void CLayerManageDlg::OnBtnUp()

{

  int iCurSel = m_listLayer.GetSelectionMark();

  if(iCurSel<=0) return;

  IMapPtr ipMap;

  HRESULT hr = m_ipMapControl->get_Map(&ipMap);

  if (FAILED(hr)) return ;

  ILayerPtr ipLayer;

  hr = ipMap->get_Layer(iCurSel,&ipLayer);

  if (FAILED(hr)) return ;

  hr = ipMap->MoveLayer(ipLayer,iCurSel-1);      

  if (FAILED(hr)) return ;

  RefreshMap();

  CString szLayerName = m_listLayer.GetItemText(iCurSel,0);

  BOOL bVisiable = m_listLayer.GetCheck(iCurSel);

  m_listLayer.DeleteItem(iCurSel);

  int iNewItem = m_listLayer.InsertItem(iCurSel-1,szLayerName,0);

  m_listLayer.SetCheck(iNewItem,bVisiable);

}

 

// 下移图层

void CLayerManageDlg::OnBtnDown()

{

  int iCurSel = m_listLayer.GetSelectionMark();

  if(iCurSel>=m_listLayer.GetItemCount()-1) return;

  IMapPtr ipMap;

  HRESULT hr = m_ipMapControl->get_Map(&ipMap);

  if (FAILED(hr)) return ;

  ILayerPtr ipLayer;

  hr = ipMap->get_Layer(iCurSel,&ipLayer);

  if (FAILED(hr)) return ;

  hr = ipMap->MoveLayer(ipLayer,iCurSel+1);

  if (FAILED(hr)) return ;

            RefreshMap();

  CString szLayerName = m_listLayer.GetItemText(iCurSel,0);

  BOOL bVisiable = m_listLayer.GetCheck(iCurSel);

  m_listLayer.DeleteItem(iCurSel);

  int iNewItem = m_listLayer.InsertItem(iCurSel+1,szLayerName,0);

  m_listLayer.SetCheck(iNewItem,bVisiable);

}

文章录入:gissky    责任编辑:gissky  发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
■■相 关 图 书:
■■相 关 文 章:
  • AO开发笔记(实战篇)-用VC+AO开发独立的应用程序(3)续2

  • AO开发笔记(实战篇)-用VC+AO开发独立的应用程序(3)

  • AO开发笔记(实战篇)-用VC+AO开发独立的应用程序(2)续

  • AO开发笔记(实战篇)-用VC+AO开发独立的应用程序(2)

  • AO开发笔记(实战篇)-用VC+AO开发独立的应用程序(1)

  • 上一篇文章:

  • 下一篇文章:
  •  
    GIS博客精华
    热点文章
    热门资源
     
    关于我们 | 联系我们 | 广告服务 | 友情链接 | 申请链接 | 合作联盟 | 诚聘英才
      GIS空间站(GISSky.Net)版权所有 站长:兔八哥