119 lines
4.4 KiB
C++
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 |