#ifndef AFX_DIALOG_LOGGING_TEST_WND_H_20190817 #define AFX_DIALOG_LOGGING_TEST_WND_H_20190817 #include "afxwin.h" #include "logging/CDialogLoggingLithologicWnd.h" #pragma once // CDialogLoggingWnd 对话框 #define COMPANY_NAME_TO_TOP_DISTANCE (30) //公司名称到顶部的距离 #define STATIC_TO_WND_TOP_DISTANCE (70) //第一行的Static控件到窗口顶部的距离 #define DRAW_DATA_TO_STATIC_DISTANCE (10) //数据框到Static的距离 #define STATIC_HEIGHT_INTERVAL (1) //文件属性Static控件高度间距 #define LITHOLOGY_NAME_COLUMN_WIDTH (100) //岩性名称列宽 #define BOTTOM_DEPTH_COLUMN_WIDTH (50) //底板深度列宽 #define STRATA_THICKNESS_COLUMN_WIDTH (50) //岩层厚度列宽 #define LITHOLOGY_COLUMN_WIDTH (50) //岩性柱状列宽 #define DEPTH_COLUMN_WIDTH (70) //深度列宽 #define SP_RESISTIVITY_COLUMN_WIDTH (150) //SP电阻率列宽 #define LONG_RESISTIVITY_COLUMN_WIDTH (150) //长电位电阻率列宽 #define SHORT_RESISTIVITY_COLUMN_WIDTH (150) //短电位电阻率列宽 #define GRADIENT_RESISTIVITY_COLUMN_WIDTH (150) //梯度电位电阻率列宽 #define CUSTOM_COLUMN_HEIGHT (150) //列头高度 #define ONE_DECIMETER_TO_HEIGHT (10) //一分米对应的高度 #define DEPTH_SCALE_DISTANCE (5) //深度刻度线之间的间距 #define DEPTH_SHORT_SCALE_VALUE (6) //深度短刻度 #define DEPTH_LONG_SCALE_VALUE (10) //深度长刻度 #define EACH_SCALE_PIXEL_POINT_VALUE (5) //每个刻度对应的像素点 #define DISTANCE_TO_RIGHT_FRAME (15) //High值到右边框的距离 #define DISTANCE_TO_BOTTOM_FRAME (2) //Low\High到底部边框的距离 #define LOW_HIGH_DEVIATION_VALUE (1) //Low\High偏差值 #define TOTAL_DATA_COLUMN (16) //数据段分16列 typedef struct ST_READ_DAT_FILE_DATA_INFO { float fDepth; float fSPV; float fLV; float fLI; float fLR; float fSV; float fSI; float fSR; float fGV; //梯度电压 float fGI; //梯度电刘 float fGR; //梯度电阻 ST_READ_DAT_FILE_DATA_INFO() { memset(this, 0, sizeof(ST_READ_DAT_FILE_DATA_INFO)); } }ST_DATA_INFO; class CDialogLoggingWnd : public CDialog { DECLARE_DYNAMIC(CDialogLoggingWnd) public: static CDialogLoggingWnd* GetInstance(); // 对话框数据 enum { IDD = IDD_DIALOG_LOGGING_WND }; virtual BOOL OnInitDialog(); //绘制Static位置 RECT DrawFirstColumnStatic(RECT rcWnd); RECT DrawSecondColumnStatic(RECT rcWnd, RECT rcLastColumn); RECT DrawThreeColumnStatic(RECT rcWnd, RECT rcLastColumn); RECT DrawFourColumnStatic(RECT rcWnd, RECT rcLastColumn); RECT DrawFiveColumnStatic(RECT rcWnd, RECT rcLastColumn); RECT DrawSixColumnStatic(RECT rcWnd, RECT rcLastColumn); void DrawTitleStatic(RECT rcWnd); void SetColumnNameVisible(BOOL bVisible);//设置SP\Long\Short\Gradient列名显示 //打开文件 float OpenFile(CString strFolderPath, CString strFileName); //关闭文件 BOOL CloseFile(); //打开文件时,加载参数文件 float LoadParamXMLFile(CString strFilePath);//返回井深 //打开文件时,加载数据文件 BOOL LoadDataDATFile(CString strFilePath); UINT GetStartDrawDataHeight(); //获取开始绘制数据的高度 protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持 DECLARE_MESSAGE_MAP() afx_msg void OnPaint(); afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor); afx_msg void OnMouseHover(UINT nFlags, CPoint point); afx_msg void OnMouseMove(UINT nFlags, CPoint point); afx_msg void OnLButtonDown(UINT nFlags, CPoint point); void UpdateLowHighValue(); private: CDialogLoggingWnd(CWnd* pParent = NULL); // 标准构造函数 virtual ~CDialogLoggingWnd(); float m_fWellDepth; RECT m_rcDrawData;//粗线蓝框 std::vector m_vecDataInfo; CRect m_rcLithology; //岩性柱状矩形框 float m_fMinSPR; //SP最小电阻率 float m_fMaxSPR; //SP最大电阻率 float m_fMinLR; //L最小电阻率 float m_fMaxLR; //L最大电阻率 float m_fMinSR; //short最小电阻率 float m_fMaxSR; //short最大电阻率 float m_fMinGR; //最小梯度电阻率 float m_fMaxGR; //最大梯度电阻率 RECT m_rcWnd; //窗口大小 CString m_strFileName; //加载数据文件名 UINT m_uiStartDrawHeigh;//记录开始绘制数据的高度 std::vector m_vecLithologyProfile; //剖面列表 }; #endif