www.pudn.com > HPMapx.rar > gpsset.h
// gpsset.h
#ifndef _GPSSET_H__
#define _GPSSET_H__
#pragma once
#include "mapx.h"
#include "FeatureStruct.HPP"
#define MY_INFOTOOL 1
#define MAP_DISTANCE 2
#define ADD_TARGET 3
class CGpsSet : public CWnd
{
public:
CGpsSet ();
virtual ~CGpsSet() {RemoveCurrent();}
void OnMapViewChanged();
void SetStartXY(double x,double y);
CMapX* GetMapx() {return &m_ctrlMapX;}
void UpdateGraph() {UpdateFeature(m_CurrentCarLayer.GetFeatureByID(m_nFeaID));}
void UpdateSpeed(double speed) { m_dSpeed = speed;}
void UpdateDirection(double nTableRotation) { m_dDirection = nTableRotation;}
void UpdateDirection(CMapXFeature &feature);
public:
//{{AFX_VIRTUAL(CGpsSet)
public:
virtual BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext = NULL);
//}}AFX_VIRTUAL
public:
//{{AFX_MSG(CGpsSet)
void OnSetFocus(CWnd* pO);
void OnSize(UINT nType, int cx, int cy);
//}}AFX_MSG
void OnLayercontrol() {m_ctrlMapX.GetLayers().LayersDlg(); }
void OnEntire() {m_ctrlMapX.SetZoom(m_ctrlMapX.GetGeoSetWidth());}
void OnSelectpoint() {m_ctrlMapX.SetCurrentTool(miSelectTool); }
void OnRectselect() {m_ctrlMapX.SetCurrentTool(miRectSelectTool); }
void OnZoomin() {m_ctrlMapX.SetCurrentTool(miZoomInTool); }
void OnZoomout() {m_ctrlMapX.SetCurrentTool(miZoomOutTool); }
void OnPan() {m_ctrlMapX.SetCurrentTool(miPanTool); }
void OnCenter() {m_ctrlMapX.SetCurrentTool(miCenterTool); }
void OnDistance() {m_ctrlMapX.SetCurrentTool(MAP_DISTANCE); }
void OnInfo() {m_ctrlMapX.SetCurrentTool(MY_INFOTOOL); }
DECLARE_MESSAGE_MAP()
DECLARE_EVENTSINK_MAP()
private:
CMapX m_ctrlMapX;
CMapXLayer m_CurrentCarLayer;
double m_dCX; //当前位置X坐标
double m_dCY; //当前位置Y坐标
double m_dSpeed; //当前速度
double m_dDirection; //当前方向
int m_nFeaID; //当前图元
void RemoveAll();
void RemoveCurrent();
void ZoomTo();
void ShowCurrentFeature();
void HideCurrentFeature();
bool FindLayer(CString strLayerName);
void UpdateFeature(CMapXFeature &feature);
void OnCarMove(CMapXFeature& ft, double x, double y);
void OnViewScalebar();
CMapXFeature FindFeature(CMapXLayer &layer) {return layer.GetFeatureByID(m_nFeaID);}
void OnToolUsed(short ToolNum, double X1, double Y1, double X2, double Y2, double Distance, BOOL Shift, BOOL Ctrl, VARIANT* EnableDefault);
void OnDrawUserLayer(LPDISPATCH Layer, long hOutputDC, long hAttributeDC, LPDISPATCH RectFull, LPDISPATCH RectInvalid);
};
#endif