//**********************************************************************************
//有机会下载安装了mapwingis,试图利用MFC对其二次开发利用,可惜网上能够查到的资料多为C#,VC资料太少。
//经过几天的研究,参考了网上网友的资料,利用VC实现了mapwingis部分功能的开发,为了和我有相同需求的码农们着想,
//少走弯路,特开发部分示例代码,以抛砖引玉。
// 禾呈 && 博士 2019-5-30
//**********************************************************************************
- MapWinGIS5.0.1.0-Win32安装
- 创建单文档,采用CFormView
- 添加控件和变量
map1.h中添加:using namespace mapWindow;
stdafx.h中添加:#import "c:\dev\MapWinGIS\MapWinGIS.ocx"rename_namespace("mapWindow") rename("GetObject","GISGetObject") rename("max","mapMax") rename("min","mapMin")
- 启动运行发现窗体不能最大化,添加
m_pMainWnd->ShowWindow(SW_SHOWDEFAULT);//解决窗体最大化问题
m_pMainWnd->ShowWindow(SW_SHOWMAXIMIZED);
m_pMainWnd->UpdateWindow();
- 实现控件随着窗体大小变化
在onsize()中添加
if(m_map.m_hWnd == NULL)return;
if(IsWindow(m_map.m_hWnd))
{
CRect rect;
GetClientRect(&rect);
m_map.MoveWindow(rect,FALSE);
m_map.ZoomToPrev();
}
- 添加图层
void CmapwingisTest2View::OnToolsAddLayer()
{
TCHAR szFilters[]= _T("TIFF Files (*.tif)|*.tif|SHP Files (*.shp)|*.shp||");
CFileDialog fileDlg (TRUE,_T("tif"),_T("*.tif"),
OFN_FILEMUSTEXIST| OFN_HIDEREADONLY, szFilters, this);
if( fileDlg.DoModal ()!=IDOK ) return;
CString m_strFilePath = fileDlg.GetPathName();
if (_T("")!=m_strFilePath)&nbs