📄 changeformatdlg.h
字号:
// ChangeFormatDlg.h : header file
//
#if !defined(AFX_CHANGEFORMATDLG_H__04D422C5_F880_4CEB_8FC1_2D762BC822BB__INCLUDED_)
#define AFX_CHANGEFORMATDLG_H__04D422C5_F880_4CEB_8FC1_2D762BC822BB__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include <vector>
using std::vector;
/////////////////////////////////////////////////////////////////////////////
// CChangeFormatDlg dialog
#define MAXCHANNALNUM 99
class CChangeFormatDlg : public CDialog
{
// Construction
public:
CChangeFormatDlg(CWnd* pParent = NULL); // standard constructor
~CChangeFormatDlg();
void Serialize(CArchive& ar);
// Dialog Data
//{{AFX_DATA(CChangeFormatDlg)
enum { IDD = IDD_CHANGEFORMAT_DIALOG };
// NOTE: the ClassWizard will add data members here
//}}AFX_DATA
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CChangeFormatDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
HICON m_hIcon;
CString m_szFileName; // 记录当前文件名称
CString m_szExt; // 记录当前文件后缀
CString m_szFileSrcName; // 记录源文件名称(全路径)
CString m_szFileSaveName; // 记录文件保存名称(全路径)
BOOL m_bModified; // 文件修改标记
CMenu* m_pMenu; // 记录对话框菜单
struct Data //数据存储
{
float fX;
float fY;
};
typedef struct Channal
{
vector<Data> nData; //数据
int nCount; //数据个数
int nWidth; //线条宽度
BOOL bShow; //False-不显示 True-显示
BOOL nFlag; //有没有数据
BOOL dShutter; //Shutter 0开 1关
double dStartWL; //起始波长
double dEndWL; //终止波长
double nScanSpeed;//扫描速度
double nDelay; //时间延时
double nResponce; //响应时间
double nExSlit; //Ex slit
double nEmSlit; //Em Slit
double nFute; //电压
double dExwl; //EX WL
double dInterv; //jiange
COLORREF nColor; //线条颜色
CString nScanMode; //扫描模式
CString mDataMode; //数据模式
CString strTitle; //图谱的名称
CString dComment; //谱图介绍
// 时间扫描里的数据
double dPrecision;
double dActivity; //活动性
}WL_TE_ChannalInfo;
WL_TE_ChannalInfo m_Channal;
typedef struct PH_Channal
{
double m_dK1; //拟合系数
double m_dK2;
double m_dK3;
double m_dK4;
double m_dMaxX; //坐标轴最值
double m_dMinX;
double m_dMaxY;
double m_dMinY;
double m_pRightx; //拟合后画线使用
double m_pLeftx;
double m_dXIntvl; //坐标轴间隔
double m_dYIntvl;
int TestType; //拟合方式 1-线性 2-二次三项式 3-三次多项式 4-折线
int TestMethod; //测量方法 0-波长扫描 1-峰面积 2-峰高 3-倒数 4-比例
int TestMethodType; //记录波长扫描时的测量点数 最多六个点
int ColumType; //数据形式 0激发固定 1发射固定 2都不固定
double StandardTestEX[6]; //存储EX
double StandardTestEM[6]; //存储EM
double StandardGudingEX; //激发固定
double StandardGudingEM; //发射固定
double m_dINCStandardSampleCal[20];
double m_dINCStandardSampleEnergy[20];
int nCurView; //显示View类型 0 单个View 1两个View 2四个View
CRect rDC;
int m_nHandTest; //0不是手动测量 TRUE手动测量
BOOL m_nthroghZero; //强制过零
int nStandardCount; //标准样品数组个数
int nStandardrealCount;//实际侧的标准样品的个数
int nSampleTestCount;//样品数组个数
BOOL nStandardisZeng;//标样顺序false 增 true 减
struct TestData //数据结构
{
double dX;
double dY;
};
typedef struct SampleChannal//样品信息
{
double nSv;//变异系数
double nSD;//标准偏差
double nPingjunnongdu;//平均浓度
double nBianyixishu; //变异系数
double nT; //T
double nRd; //RD
double nDiff; //未知
double nR; //已算出
double nR2; //已算出
double dTestnum; //测量数据
double dTestConc; //测量数据
vector<TestData> m_vecSamplePoint;//波长模式下用来存储测量数据
int nCount; //数据个数
CString strTitle; //图谱的名称
CString SampleComment;//样品
CString m_curOperator;// 操作员
}m_nSampleChannal;
m_nSampleChannal nSampleChannal[MAXCHANNALNUM];
typedef struct StandardChannal //以下是存储样标准品数据
{
double nPingjunnongdu;
double nBianyixishu; //变异系数
double nT; //T
double nRd; //RD
double nDiff; //未知
double nR; //已算出
double nR2; //已算出
double dTestnum; //标准数据
double dTestConc; //标准数据
vector<TestData> m_vecSamplePoint;//波长模式下用来存储测量数据
int nCount; //数据个数
CString strTitle; //图谱的名称
CString SampleComment;//样品
}m_nStandardChannal;
m_nStandardChannal nStandardChannal[MAXCHANNALNUM];
BOOL nStandardHasbeenTest[20];//用来判断标准样品是否测量过(false 没侧 true已测)
//以下是打印信息
LOGFONT m_dPrintFontSet; //打印字体
BOOL pIncludedata; //打印数据
BOOL pIncludeMethod; //打印方法
BOOL pIncludecalibrationmethod;//打印采数方法
BOOL pIncludestandards; //打印标准
BOOL pIncludecalibration; //打印采集数据
BOOL pIncludeSample; //打印样品数据
BOOL pIncludestandardcomment; //打印标准样品信息
BOOL pIncludesamplecomment; //打印样品信息
BOOL nZhijiedayin;//是否直接打印
}PH_ChannalInfo;
PH_ChannalInfo m_PH_Channal;
typedef struct TD_Channal
{
CRect rDC;//打印时用到
BOOL init; //等高线存储完成
//以下部分是用来存储等高线 和对应颜色
struct LineData
{
float fX; //--发射波长
float fY; //--激发波长
};
struct LineColor
{
vector<LineData> LineNum;//--每条等高线的数据
int Colorred; //--颜色1
int Colorgreen; //--颜色2
int Colorblue ; //--颜色3
};
vector<LineColor> LineNumData;
//以下是信息设置(待做)(注:里面变量已经启用)
struct DisplayConfig
{
BOOL m_dTarceShow; //---是否是查找模式(这里一直都是真的状态,保持查找模式)
BOOL m_dGridShow; //---是否显示网格
int m_dGridType; //---显示网各类型
int m_denggao; //等高等分
double m_dMaxX; //---X轴的最大值
double m_dMinX; //---X轴的最小值
double m_dMaxY; //---Y轴的最大值
double m_dMinY; //---Y轴的最小值
double m_dMaxZ; //---z轴的最大值
double m_dMinZ; //---z轴的最小值
double m_dIntMaxX; //---X轴的最大值
double m_dIntMinX; //---X轴的最小值
double m_dIntMaxY; //---Y轴的最大值
double m_dIntMinY; //---Y轴的最小值
double n_dIntMaxZ; //---Z轴最大值
double m_dIntMinZ; //---Z轴最小值
int m_dAxisType; //---坐标轴的间隔方式(没用)
double m_dXIntvl; //---X轴间隔
double m_dYIntvl; //---Y轴间隔
LOGFONT m_dFontSet; //---字体
int m_dSpectra; //---谱图 //========未做
int m_nLineWidth; //---线宽
COLORREF m_strKeduColor; //---线条颜色
int m_dDisplaySpectra; //----选择的谱图
CString m_dSpectraName; //----谱图名称
CString m_dSpectraInfo; //----谱图描述
CString m_dOperator; //----用户信息
CString m_dModel; //----模式
int m_dPage7Spectra; //---选择的谱图
int m_dPage7Processing; //---检峰方式
int m_dPage7Method; //---方式
double m_dSensitivity; //---灵敏度
double m_dThreshold; //---阈值
BOOL m_nPrintPutu;
BOOL m_nTestMethord;
}m_DisplayConfig;
//打印设置信息
LOGFONT m_dPrintFontSet; //打印字体
BOOL pMethod; //方法
BOOL pGraph; //图
double m_3DEX_Start_WL; //--- 激发光起始波长
double m_3DEX_End_WL; //--- 激发光终止波长
double m_3DEX_Interval_WL; //--- 激发波长间隔(计算峰高需要的间隔)
double m_3DEM_Start_WL; //--- 发射光起始波长
double m_3DEM_End_WL; //--- 发射光终止波长
double m_3DEM_Interval_WL; //--- 发射波长间隔
double m_3DEM_inter; //--- 激发波长的实际测量时的间隔
double **m_p3DData; //--- 记录3D扫描数据
int *m_3DPointNum; //--- 记录每条曲线上的点数
int m_3DNumPerNM; //--- 每纳米采集数据的点数,由采集速度参数决定
int m_3DRealCurveNum;//实际扫描的点数
BOOL m_nZhijiedayin;
CString Oper; //---操作者
CString spectraname; //---名称
CString Comment; //---介绍
CString Instrument; //---仪器
CString Measurement; //---测量方法
double speed; //---扫描速度
double EX_Slit; //---激发狭峰
double EM_Slit; //---发射狭峰
double Voltage; //---电压
BOOL spectra_correct; //---谱图校正
BOOL shutter; //---斩波(0关1开)
int exnum; //---激发波长数
int emnum; //---发射波长数
double m_dMaxX; //---寄存器,表示当前的显示区域
double m_dMaxY;
double m_dMinY;
double m_dMinX;
double m_dMaxZ;
double m_dMinZ;
double emwl; //---查找用
double exwl; //---查找用
}TD_ChannalInfo;
TD_ChannalInfo m_TD_Channal;
// 打开文件对话框
BOOL DoPromptFileName(CString& fileName, UINT nIDSTitle, DWORD lFlags, BOOL bOpenFileDialog);
// 打开文件
BOOL OnOpenDocument(LPCTSTR lpszPathName);
// 保存文件
BOOL OnSaveDocument(LPCTSTR lpszPathName);
// 设置文件修改标记
void SetModifiedFlag(BOOL bModified = TRUE);
void ReleaseFile(CFile* pFile, BOOL bAbort);
void ReportSaveLoadException(LPCTSTR lpszPathName,
CException* e, BOOL bSaving, UINT nIDPDefault);
void CChangeFormatDlg::SetPathName(LPCTSTR lpszPathName);
// 格式转换
void WL_Serialize(CArchive& ar); // 波长
void TE_Serialize(CArchive& ar); // 时间
void PH_Serialize(CArchive& ar); // 光度值
void TD_Serialize(CArchive& ar); // 三维
// Generated message map functions
//{{AFX_MSG(CChangeFormatDlg)
virtual BOOL OnInitDialog();
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
virtual void OnOK();
virtual void OnCancel();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_CHANGEFORMATDLG_H__04D422C5_F880_4CEB_8FC1_2D762BC822BB__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -