⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dlgmapgrid.cpp

📁 一个英国人写的GIS查看/编辑工具。支持标准的shapefile地图文件格式和coverage地图文件格式。同时可以编辑相应的dbf文件。
💻 CPP
字号:
//////////////////////////////////////////////////////
//
// NRDB Pro - Spatial database and mapping application
//
// Copyright (c) 1989-2004 Richard D. Alexander
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
// of the License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
// 
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
//
// NRDB Pro is part of the Natural Resources Database Project 
// 
// Homepage: http://www.nrdb.co.uk/
// Users' Forum: http://nrdb.mypalawan.info/
// 

#include "stdafx.h"
#include "nrdbpro.h"
#include "dlgmapgrid.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CDlgMapGrid dialog


CDlgMapGrid::CDlgMapGrid(CMapGrid mapgrid, CWnd* pParent /*=NULL*/)
	: CDialog(CDlgMapGrid::IDD, pParent)
{
	//{{AFX_DATA_INIT(CDlgMapGrid)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT

   m_mapgrid = mapgrid;
}


void CDlgMapGrid::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDlgMapGrid)
	DDX_Control(pDX, IDC_SECLNG, m_eSecLng);
	DDX_Control(pDX, IDC_SECLAT, m_eSecLat);
	DDX_Control(pDX, IDC_MINLNG, m_eMinLng);
	DDX_Control(pDX, IDC_MINLAT, m_eMinLat);
	DDX_Control(pDX, IDC_DEGLNG, m_eDegLng);
	DDX_Control(pDX, IDC_DEGLAT, m_eDegLat);
	DDX_Control(pDX, IDC_COLOR, m_pbColour);
	DDX_Control(pDX, IDC_APPEARANCE, m_cbAppearance);
	DDX_Control(pDX, IDC_LINESTYLE, m_cbLineStyle);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDlgMapGrid, CDialog)
	//{{AFX_MSG_MAP(CDlgMapGrid)
	ON_BN_CLICKED(IDC_FONT, OnFont)
	ON_CBN_SELCHANGE(IDC_APPEARANCE, OnSelchangeAppearance)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDlgMapGrid message handlers

BOOL CDlgMapGrid::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// Initialise...
   
   // line style
   
   m_cbLineStyle.Initialise(m_mapgrid.m_style.m_nLineStyle, m_mapgrid.m_style.m_nLineWidth);

   // Type
   
   m_cbAppearance.AddStringX(BDString(IDS_DEFAULT), CMapGrid::defaultgrid);
   m_cbAppearance.AddStringX(BDString(IDS_LABELSANDGRID), CMapGrid::labelsgrid);
   m_cbAppearance.AddStringX(BDString(IDS_LABELS), CMapGrid::labels);
   m_cbAppearance.AddStringX(BDString(IDS_NONE), CMapGrid::none);

   for (int i = 0; i < m_cbAppearance.GetCount(); i++)
   {
      if ((int)m_cbAppearance.GetItemData(i) == m_mapgrid.m_nType) m_cbAppearance.SetCurSel(i);
   }   

   // Colour

   m_pbColour.SetColour(m_mapgrid.m_style.m_crLine);

   // Grid

   m_eDegLat.SetValue(m_mapgrid.m_nDegLat);
   m_eMinLat.SetValue(m_mapgrid.m_nMinLat);
   m_eSecLat.SetValue(m_mapgrid.m_nSecLat);
   m_eDegLng.SetValue(m_mapgrid.m_nDegLng);
   m_eMinLng.SetValue(m_mapgrid.m_nMinLng);
   m_eSecLng.SetValue(m_mapgrid.m_nSecLng);

   // Enable controls

   OnSelchangeAppearance();
	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

///////////////////////////////////////////////////////////////////////////////

void CDlgMapGrid::OnFont() 
{
   LOGFONT lf = m_mapgrid.m_logfont;
	CFontDialog dlg(&lf, CF_SCREENFONTS);
   
   if (dlg.DoModal() == IDOK)
   {          
       m_mapgrid.m_logfont = lf;
   };   	
	
}

///////////////////////////////////////////////////////////////////////////////

void CDlgMapGrid::OnSelchangeAppearance() 
{
   int index = m_cbAppearance.GetCurSel();
   DWORD dw = m_cbAppearance.GetItemData(index);

   BOOL bEnable = dw != CMapGrid::defaultgrid && dw != CMapGrid::none;

	m_eDegLat.EnableWindow(bEnable);
   m_eMinLat.EnableWindow(bEnable);
   m_eSecLat.EnableWindow(bEnable);
   m_eDegLng.EnableWindow(bEnable);
   m_eMinLng.EnableWindow(bEnable);
   m_eSecLng.EnableWindow(bEnable);
	
}

///////////////////////////////////////////////////////////////////////////////

void CDlgMapGrid::OnOK() 
{
   // Line Style

   int iLine = m_cbLineStyle.GetCurSel();
   m_mapgrid.m_style.m_nLineStyle = m_cbLineStyle.GetStyle(iLine);
   m_mapgrid.m_style.m_nLineWidth = m_cbLineStyle.GetWidth(iLine);

   // Type

   m_cbAppearance.GetItemDataX((long&)m_mapgrid.m_nType);

   // Colour
   
   m_mapgrid.m_style.m_crLine = m_pbColour.GetColour();

   // Get Values

   if (m_eDegLat.GetValue(m_mapgrid.m_nDegLat, 0, 89) &&
       m_eMinLat.GetValue(m_mapgrid.m_nMinLat, 0, 59) &&
       m_eSecLat.GetValue(m_mapgrid.m_nSecLat, 0, 59) && 
       m_eDegLng.GetValue(m_mapgrid.m_nDegLng, 0, 179) && 
       m_eMinLng.GetValue(m_mapgrid.m_nMinLng, 0, 59) && 
       m_eSecLng.GetValue(m_mapgrid.m_nSecLng, 0, 59))
   {

      CDialog::OnOK();
   }	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -