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

📄 demo2doc.h

📁 Viaual C++实战演练一书的源代码,对于C++程序员有实际的借鉴意义.
💻 H
字号:
// Demo2Doc.h : interface of the CDemo2Doc class
//
/////////////////////////////////////////////////////////////////////////////

#if !defined(AFX_DEMO2DOC_H__D9D566AB_FFD3_11D3_BB17_00104BC71186__INCLUDED_)
#define AFX_DEMO2DOC_H__D9D566AB_FFD3_11D3_BB17_00104BC71186__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

class CMapLayer;

class CDemo2Doc : public CDocument
{
protected: // create from serialization only
	CDemo2Doc();
	DECLARE_DYNCREATE(CDemo2Doc)

// Attributes
public:
	CArray<CMapLayer*, CMapLayer*> m_aLayers;//海图层数组
	CDC* m_pMemDC;//绘制位图使用的DC
	CBitmap *m_pBitmap, *m_pDefaultBitmap;
	long m_nViewWidth, m_nVeiwHeight;//窗口最大显示范围
	double m_fMapjw[4];//当前海图经纬度范围
	double m_fMaxCX, m_fMaxCY;//当前海图最大显示范围(直角坐标)
	long m_nOffsetX, m_nOffsetY;//当前海图顶点相对屏幕原点偏移量
	CString m_strMapName;//海图名称
	long m_nMaxPoint;//海图图元最大端点数
	long* m_pData;

	void DrawMap(CDC* pDC);//绘制海图
	void Zoom(float scale);
	void ConvToXY(double jing, double wei, long& cx, long& cy);//经纬度(度)->直角坐标
	void ConvToXYs(double *jw, long *xy, int n);//经纬度(度)->直角坐标多点转换
	void ConvToJW(long cx, long cy, double& jing, double& wei);//直角坐标->经纬度(度)
	void LPtoDPs(long* data, int n);
	void LPtoDP(long &x, long &y);//海图逻辑坐标转换为屏幕坐标
	void DPtoLP(long &x, long &y);//屏幕坐标转换为海图逻辑坐标
	void SetCenter(CPoint point);//设置海图显示的中心
	void MoveOffset(CPoint point);//移动海图显示
	void SetLayerMenu(bool opened = true);//设置“图层”菜单
	void InitData();//初始化用户数据
	void DisplayLocationOnStatusBar(CPoint point);//在状态条中显示指定点经纬度

private:
	double relfa(double r)
	{
		return log(tan(r*0.0087266 + 0.7853981));
	}

	double absfa(double s)
	{
		return (atan(exp(s)) - 0.7853981) * 114.59156; // 57.29578*2
	}

// Operations
public:
	
// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CDemo2Doc)
	public:
	virtual BOOL OnNewDocument();
	virtual void Serialize(CArchive& ar);
	virtual void SetTitle(LPCTSTR lpszTitle);
	//}}AFX_VIRTUAL

// Implementation
public:
	virtual ~CDemo2Doc();
#ifdef _DEBUG
	virtual void AssertValid() const;
	virtual void Dump(CDumpContext& dc) const;
#endif

protected:

// Generated message map functions
protected:
	//{{AFX_MSG(CDemo2Doc)
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

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

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_DEMO2DOC_H__D9D566AB_FFD3_11D3_BB17_00104BC71186__INCLUDED_)

⌨️ 快捷键说明

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