📄 demo3doc.h
字号:
// Demo3Doc.h : interface of the CDemo3Doc class
//
/////////////////////////////////////////////////////////////////////////////
#if !defined(AFX_Demo3DOC_H__D9D566AB_FFD3_11D3_BB17_00104BC71186__INCLUDED_)
#define AFX_Demo3DOC_H__D9D566AB_FFD3_11D3_BB17_00104BC71186__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
class CMapLayer;
class CListen;
class CTcpSocket;
class CUdpData;
class CDynaObjects;
class CDemo3Doc : public CDocument
{
protected: // create from serialization only
CDemo3Doc();
DECLARE_DYNCREATE(CDemo3Doc)
// 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(float jing, float wei, long& cx, long& cy);//经纬度(度)->直角坐标
void ConvToXYs(float *jw, long *xy, int n);//经纬度(度)->直角坐标多点转换
void ConvToJW(long cx, long cy, float& jing, float& 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);//在状态条中显示指定点经纬度
public://动态目标显示相关定义
CDynaObjects* m_pShips;
public://网络通信相关定义
CListen* m_pListen;
CUdpData* m_pUdp;
CPtrList m_lstConnectionList; //CTcpSocket列表
int m_nSelected; //保存选择的位置
short m_nCanDisplay; //可显示的公司航迹
short m_nMustResend; //需接收本公司航迹的公司
void ProcessPendingAccept();
void ProcessPendingRead(char* buf, int len);
CTcpSocket* ProcessPendingLink(char* RemoteHost, long RemotePort);
void CloseSocket(CTcpSocket*);
void CloseAllTcp();
bool InitSocket(long TcpPort = 0, long UdpPort = 0);
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(CDemo3Doc)
public:
virtual BOOL OnNewDocument();
virtual void Serialize(CArchive& ar);
virtual void SetTitle(LPCTSTR lpszTitle);
//}}AFX_VIRTUAL
// Implementation
public:
virtual ~CDemo3Doc();
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endif
protected:
// Generated message map functions
protected:
//{{AFX_MSG(CDemo3Doc)
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_Demo3DOC_H__D9D566AB_FFD3_11D3_BB17_00104BC71186__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -