#ifndef AFX_C_2D_SIMULATION_DLG_H_20191223_INCLUDE_H #define AFX_C_2D_SIMULATION_DLG_H_20191223_INCLUDE_H #pragma once // C2DSimulationDlg 对话框 #define WM_MSG_UPDATE_CROSSHOLEMAINWND_BTN WM_USER+1000 class C2DSimulationDlg : public CDialog { DECLARE_DYNAMIC(C2DSimulationDlg) public: // 对话框数据 enum { IDD = IDD_DIALOG_SIMULATION_BOARD }; static C2DSimulationDlg* GetInstance(); void AddBoreholePointToVector(std::map> mapNewPoints); //将坐标点添加到井下集合 void AddSurfacePointsToVector(std::vector vecNewPoints); //将坐标点添加到地表集合 void DeleteCoordinatesPoint(); //设置时间间隔 void SetTimeInterval(int iTimeInterval); //获取整个测试列表 void SetSingleChannelSimulationRunMethod(vector vecAllBoreholeABMNInfo); void SetMultiChannelSimulationRunMethod(map>> mapPointsSortedByABMN); BOOL StartSimulation(); //开始模拟 BOOL StopSimulation(); //结束模拟 BOOL IsSimulating(); //是否正在模拟中 virtual BOOL OnInitDialog(); afx_msg void OnPaint(); protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持 DECLARE_MESSAGE_MAP() private: C2DSimulationDlg(CWnd* pParent = NULL); // 标准构造函数 virtual ~C2DSimulationDlg(); //模拟脚本跑极方式 static UINT SimulateScriptRunMethodThread(LPVOID lParam); //用户保存需要绘制的点 std::map> m_mapBoreholePoints; //保存井下所有的点,,int存放X用于区分是否在同一个孔 std::vector m_vecSurfacePoints; //地表所有的点,只有一条测线 BOOL m_bStopSimulation; //停止模拟 int m_iA; int m_iB; int m_iM; int m_iN; int m_iTimeInterval; //模拟跑极间隔 CRect m_rcWnd; //模拟器窗口大小 CRect m_rcBrush; //绘制电缆示意图区域 vector m_vecAllBoreholeABMNInfo; //单通道ABMN信息 map>> m_mapPointsSortedByABMN; //多通道ABMN信息,第一个int用于存放A,第二个int用于存放B,第三个int对应M,改变了的作用主要是用来控制多通道/单通道测点跑极方式的 }; #endif