mfc通过MapWinGIS控件读取shp文件(通过#import实现)

Posted marblemm

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mfc通过MapWinGIS控件读取shp文件(通过#import实现)相关的知识,希望对你有一定的参考价值。

 

在MFC工程中想使用MapWinGIS组件,有多种方法可以实现,

第一种方法,#Import来实现

1、首先注册MapWinGIS ActiveX组件,

2、新建一个单文档工程:MapGis,为控件添加一个ACtiveX控件中的MFC类,如下图:

 

技术分享图片

接着在注册表中选择Map Control<1.0>,为接口_DMap添加一个CDMap0类,具体如下图:

 

技术分享图片

首先打开 stdafx.h, 在其中加入:

 

 

[cpp] view plain copy
 
  1. #import "C:MapWinGISMapWinGIS.ocx" rename_namespace("mapWindow") rename("GetObject", "GISGetObject")  


"C:MapWinGISMapWinGIS.ocx" 为MapWinGIS.ocx 解压后的存放路径,改为自己的即可

技术分享图片

技术分享图片

在视图类添加一个CString类型的私有变量m_strFilePath用于保存tif图像或者shp文件的路径,接着在视图类为菜单"打开"添加一个命令消息函数:OnFileOpen:

  1. CString  m_strFilePath;  

 技术分享图片

程序运行效果图如下:

 

 

 技术分享图片

问题:

根据以上说明,编译MFC工程时,会报一系列错误

技术分享图片

 

 这个在网上查了之后,有人建议在#import上面加上如下几行代码,加上后就编译通过了

__pragma(push_macro("max"));
__pragma(push_macro("min"));
#undef max
#undef min

原因我也不知道了 

 

源码下载:https://github.com/marblemm/TestCode/tree/master/MapGis

 





以上是关于mfc通过MapWinGIS控件读取shp文件(通过#import实现)的主要内容,如果未能解决你的问题,请参考以下文章

MFC读取对话框控件文本

怎么读取列表控件中的数据

在MFC中,如何读取外部的位图文件,让它显示在图片控件(Picture Control)中?

MFC组合框控件下拉列表式如何读取所选值和设置默认选项

Visual Studio 2019 MFC 应用程序:如何从文本文件中读取并在不同字段/编辑控件中显示字符串?

mfc c++ 从编辑控件更新文本文件