Files
coco df489d5640 a
2026-07-03 16:05:30 +08:00

119 lines
4.4 KiB
C++

#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<ST_DATA_INFO> 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<STLithologyProfile> m_vecLithologyProfile; //剖面列表
};
#endif