|
|
|
|
|
|
|
|
|
// CcdDataImageProcessingDlg.cpp : ʵ<><CAB5><EFBFBD>ļ<EFBFBD>
|
|
|
|
|
//
|
|
|
|
|
|
|
|
|
|
#include "stdafx.h"
|
|
|
|
|
#include "CcdDataImageProcessing.h"
|
|
|
|
|
#include "CcdDataImageProcessingDlg.h"
|
|
|
|
|
#include "afxdialogex.h"
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD>
|
|
|
|
|
#define FILE_CCD_IMAGE_INFO_PATH _T("ccd_image_info.csv")
|
|
|
|
|
#define FILE_CCD_DATAT_PATH _T("ccd_data_path.csv")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// <20>ؼ<EFBFBD>IDӳ<44><D3B3>
|
|
|
|
|
const int minEnergyCtrlIds[] = { IDC_MIN_ENERGY_EDIT1, IDC_MIN_ENERGY_EDIT2, IDC_MIN_ENERGY_EDIT3,
|
|
|
|
|
IDC_MIN_ENERGY_EDIT4, IDC_MIN_ENERGY_EDIT5, IDC_MIN_ENERGY_EDIT6,
|
|
|
|
|
IDC_MIN_ENERGY_EDIT7, IDC_MIN_ENERGY_EDIT8, IDC_MIN_ENERGY_EDIT9, IDC_MIN_ENERGY_EDIT10 };
|
|
|
|
|
|
|
|
|
|
const int maxEnergyCtrlIds[] = { IDC_MAX_ENERGY_EDIT1, IDC_MAX_ENERGY_EDIT2, IDC_MAX_ENERGY_EDIT3,
|
|
|
|
|
IDC_MAX_ENERGY_EDIT4, IDC_MAX_ENERGY_EDIT5, IDC_MAX_ENERGY_EDIT6,
|
|
|
|
|
IDC_MAX_ENERGY_EDIT7, IDC_MAX_ENERGY_EDIT8, IDC_MAX_ENERGY_EDIT9, IDC_MAX_ENERGY_EDIT10 };
|
|
|
|
|
|
|
|
|
|
const int proportionEnergyCtrlIds[] = { IDC_PROPORTION_ENERGY_EDIT1, IDC_PROPORTION_ENERGY_EDIT2, IDC_PROPORTION_ENERGY_EDIT3,
|
|
|
|
|
IDC_PROPORTION_ENERGY_EDIT4, IDC_PROPORTION_ENERGY_EDIT5, IDC_PROPORTION_ENERGY_EDIT6,
|
|
|
|
|
IDC_PROPORTION_ENERGY_EDIT7, IDC_PROPORTION_ENERGY_EDIT8, IDC_PROPORTION_ENERGY_EDIT9, IDC_PROPORTION_ENERGY_EDIT10 };
|
|
|
|
|
|
|
|
|
|
const int colorComboCtrlIds[] = { IDC_COLOR_COMBO1, IDC_COLOR_COMBO2, IDC_COLOR_COMBO3,
|
|
|
|
|
IDC_COLOR_COMBO4, IDC_COLOR_COMBO5, IDC_COLOR_COMBO6,
|
|
|
|
|
IDC_COLOR_COMBO7, IDC_COLOR_COMBO8, IDC_COLOR_COMBO9, IDC_COLOR_COMBO10 };
|
|
|
|
|
|
|
|
|
|
const int energyComboCtrlIds[] = { IDC_ENERGY_COMBO1, IDC_ENERGY_COMBO2, IDC_ENERGY_COMBO3,
|
|
|
|
|
IDC_ENERGY_COMBO4, IDC_ENERGY_COMBO5, IDC_ENERGY_COMBO6,
|
|
|
|
|
IDC_ENERGY_COMBO7, IDC_ENERGY_COMBO8, IDC_ENERGY_COMBO9, IDC_ENERGY_COMBO10 };
|
|
|
|
|
|
|
|
|
|
const TCHAR* colorNames[] = {
|
|
|
|
|
_T("Red"), _T("Orange"), _T("Yellow"), _T("Green"), _T("Cyan"), _T("Blue"),
|
|
|
|
|
_T("Purple"), _T("Grey"), _T("Pink"), _T("Black"), _T("White"), _T("Brown")
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
#ifdef _DEBUG
|
|
|
|
|
#define new DEBUG_NEW
|
|
|
|
|
#endif
|
|
|
|
|
//ColorSchemeManager m_colorSchemeManager;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>Ӧ<EFBFBD>ó<EFBFBD><C3B3><EFBFBD><F2A1B0B9>ڡ<EFBFBD><DAA1>˵<EFBFBD><CBB5><EFBFBD><EFBFBD><EFBFBD> CAboutDlg <20>Ի<EFBFBD><D4BB><EFBFBD>
|
|
|
|
|
|
|
|
|
|
class CAboutDlg : public CDialogEx
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
CAboutDlg();
|
|
|
|
|
|
|
|
|
|
// <20>Ի<EFBFBD><D4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
#ifdef AFX_DESIGN_TIME
|
|
|
|
|
enum { IDD = IDD_ABOUTBOX };
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV ֧<><D6A7>
|
|
|
|
|
|
|
|
|
|
// ʵ<><CAB5>
|
|
|
|
|
protected:
|
|
|
|
|
DECLARE_MESSAGE_MAP()
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
CAboutDlg::CAboutDlg() : CDialogEx(IDD_ABOUTBOX)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
|
|
|
|
|
{
|
|
|
|
|
CDialogEx::DoDataExchange(pDX);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
BEGIN_MESSAGE_MAP(CAboutDlg, CDialogEx)
|
|
|
|
|
END_MESSAGE_MAP()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// CCcdDataImageProcessingDlg <20>Ի<EFBFBD><D4BB><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CCcdDataImageProcessingDlg::CCcdDataImageProcessingDlg(CWnd* pParent /*=NULL*/)
|
|
|
|
|
: CDialogEx(IDD_CCDDATAIMAGEPROCESSING_DIALOG, pParent)
|
|
|
|
|
{
|
|
|
|
|
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
|
|
|
|
|
|
|
|
|
|
m_SumEnergy = 0;
|
|
|
|
|
m_NumEnergy = 0;
|
|
|
|
|
|
|
|
|
|
m_Scheme1 = 0;
|
|
|
|
|
m_Scheme2 = 0;
|
|
|
|
|
m_Scheme3 = 0;
|
|
|
|
|
m_Scheme4 = 0;
|
|
|
|
|
m_Scheme5 = 0;
|
|
|
|
|
m_Scheme6 = 0;
|
|
|
|
|
m_Scheme7 = 0;
|
|
|
|
|
m_Scheme8 = 0;
|
|
|
|
|
m_Scheme9 = 0;
|
|
|
|
|
m_Scheme10 = 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void CCcdDataImageProcessingDlg::DoDataExchange(CDataExchange* pDX)
|
|
|
|
|
{
|
|
|
|
|
CDialogEx::DoDataExchange(pDX);
|
|
|
|
|
DDX_Control(pDX, IDC_MIN_ENERGY_EDIT1, m_MinEnergy1);
|
|
|
|
|
DDX_Control(pDX, IDC_MAX_ENERGY_EDIT1, m_MaxEnergy1);
|
|
|
|
|
DDX_Control(pDX, IDC_MIN_ENERGY_EDIT2, m_MinEnergy2);
|
|
|
|
|
DDX_Control(pDX, IDC_MAX_ENERGY_EDIT2, m_MaxEnergy2);
|
|
|
|
|
DDX_Control(pDX, IDC_MIN_ENERGY_EDIT3, m_MinEnergy3);
|
|
|
|
|
DDX_Control(pDX, IDC_MAX_ENERGY_EDIT3, m_MaxEnergy3);
|
|
|
|
|
DDX_Control(pDX, IDC_MIN_ENERGY_EDIT4, m_MinEnergy4);
|
|
|
|
|
DDX_Control(pDX, IDC_MAX_ENERGY_EDIT4, m_MaxEnergy4);
|
|
|
|
|
DDX_Control(pDX, IDC_MIN_ENERGY_EDIT5, m_MinEnergy5);
|
|
|
|
|
DDX_Control(pDX, IDC_MAX_ENERGY_EDIT5, m_MaxEnergy5);
|
|
|
|
|
DDX_Control(pDX, IDC_MIN_ENERGY_EDIT6, m_MinEnergy6);
|
|
|
|
|
DDX_Control(pDX, IDC_MAX_ENERGY_EDIT6, m_MaxEnergy6);
|
|
|
|
|
DDX_Control(pDX, IDC_MIN_ENERGY_EDIT7, m_MinEnergy7);
|
|
|
|
|
DDX_Control(pDX, IDC_MAX_ENERGY_EDIT7, m_MaxEnergy7);
|
|
|
|
|
DDX_Control(pDX, IDC_MIN_ENERGY_EDIT8, m_MinEnergy8);
|
|
|
|
|
DDX_Control(pDX, IDC_MAX_ENERGY_EDIT8, m_MaxEnergy8);
|
|
|
|
|
DDX_Control(pDX, IDC_MIN_ENERGY_EDIT9, m_MinEnergy9);
|
|
|
|
|
DDX_Control(pDX, IDC_MAX_ENERGY_EDIT9, m_MaxEnergy9);
|
|
|
|
|
DDX_Control(pDX, IDC_MIN_ENERGY_EDIT10, m_MinEnergy10);
|
|
|
|
|
DDX_Control(pDX, IDC_MAX_ENERGY_EDIT10, m_MaxEnergy10);
|
|
|
|
|
DDX_Control(pDX, IDC_ENERGY_COMBO1, m_bEnergy1);
|
|
|
|
|
DDX_Control(pDX, IDC_ENERGY_COMBO2, m_bEnergy2);
|
|
|
|
|
DDX_Control(pDX, IDC_ENERGY_COMBO3, m_bEnergy3);
|
|
|
|
|
DDX_Control(pDX, IDC_ENERGY_COMBO4, m_bEnergy4);
|
|
|
|
|
DDX_Control(pDX, IDC_ENERGY_COMBO5, m_bEnergy5);
|
|
|
|
|
DDX_Control(pDX, IDC_ENERGY_COMBO6, m_bEnergy6);
|
|
|
|
|
DDX_Control(pDX, IDC_ENERGY_COMBO7, m_bEnergy7);
|
|
|
|
|
DDX_Control(pDX, IDC_ENERGY_COMBO8, m_bEnergy8);
|
|
|
|
|
DDX_Control(pDX, IDC_ENERGY_COMBO9, m_bEnergy9);
|
|
|
|
|
DDX_Control(pDX, IDC_ENERGY_COMBO10, m_bEnergy10);
|
|
|
|
|
|
|
|
|
|
DDX_Control(pDX, IDC_PROPORTION_ENERGY_EDIT1, m_ProportionEnergy1);
|
|
|
|
|
DDX_Control(pDX, IDC_PROPORTION_ENERGY_EDIT2, m_ProportionEnergy2);
|
|
|
|
|
DDX_Control(pDX, IDC_PROPORTION_ENERGY_EDIT3, m_ProportionEnergy3);
|
|
|
|
|
DDX_Control(pDX, IDC_PROPORTION_ENERGY_EDIT4, m_ProportionEnergy4);
|
|
|
|
|
DDX_Control(pDX, IDC_PROPORTION_ENERGY_EDIT5, m_ProportionEnergy5);
|
|
|
|
|
DDX_Control(pDX, IDC_PROPORTION_ENERGY_EDIT6, m_ProportionEnergy6);
|
|
|
|
|
DDX_Control(pDX, IDC_PROPORTION_ENERGY_EDIT7, m_ProportionEnergy7);
|
|
|
|
|
DDX_Control(pDX, IDC_PROPORTION_ENERGY_EDIT8, m_ProportionEnergy8);
|
|
|
|
|
DDX_Control(pDX, IDC_PROPORTION_ENERGY_EDIT9, m_ProportionEnergy9);
|
|
|
|
|
DDX_Control(pDX, IDC_PROPORTION_ENERGY_EDIT10, m_ProportionEnergy10);
|
|
|
|
|
|
|
|
|
|
DDX_Control(pDX, IDC_COLOR_COMBO1, m_Color1);
|
|
|
|
|
DDX_Control(pDX, IDC_COLOR_COMBO2, m_Color2);
|
|
|
|
|
DDX_Control(pDX, IDC_COLOR_COMBO3, m_Color3);
|
|
|
|
|
DDX_Control(pDX, IDC_COLOR_COMBO4, m_Color4);
|
|
|
|
|
DDX_Control(pDX, IDC_COLOR_COMBO5, m_Color5);
|
|
|
|
|
DDX_Control(pDX, IDC_COLOR_COMBO6, m_Color6);
|
|
|
|
|
DDX_Control(pDX, IDC_COLOR_COMBO7, m_Color7);
|
|
|
|
|
DDX_Control(pDX, IDC_COLOR_COMBO8, m_Color8);
|
|
|
|
|
DDX_Control(pDX, IDC_COLOR_COMBO9, m_Color9);
|
|
|
|
|
DDX_Control(pDX, IDC_COLOR_COMBO10, m_Color10);
|
|
|
|
|
|
|
|
|
|
DDX_Control(pDX, IDC_CCD_DATA_PATH_EDIT, m_CddDataPath);
|
|
|
|
|
|
|
|
|
|
DDX_Control(pDX, IDC_PIC_CTRL, m_PicCtrl);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
BEGIN_MESSAGE_MAP(CCcdDataImageProcessingDlg, CDialogEx)
|
|
|
|
|
ON_WM_SYSCOMMAND()
|
|
|
|
|
// ON_WM_PAINT()
|
|
|
|
|
ON_WM_QUERYDRAGICON()
|
|
|
|
|
ON_BN_CLICKED(IDC_IMAGE_INFO_SAVE_BUTTON, &CCcdDataImageProcessingDlg::OnBnClickedImageInfoSaveButton)
|
|
|
|
|
ON_BN_CLICKED(IDC_DLG_MIN_BUTTON, &CCcdDataImageProcessingDlg::OnBnClickedDlgMinButton)
|
|
|
|
|
ON_BN_CLICKED(IDC_DLG_MAX_BUTTON, &CCcdDataImageProcessingDlg::OnBnClickedDlgMaxButton)
|
|
|
|
|
ON_BN_CLICKED(IDC_IMAGE_GENERATE_BUTTON, &CCcdDataImageProcessingDlg::OnBnClickedImageGenerateButton)
|
|
|
|
|
ON_BN_CLICKED(IDC_SLECT_PATH_BUTTON, &CCcdDataImageProcessingDlg::OnBnClickedSlectPathButton)
|
|
|
|
|
ON_WM_PAINT()
|
|
|
|
|
ON_BN_CLICKED(IDC_SAVE_IMAGE_BUTTON, &CCcdDataImageProcessingDlg::OnBnClickedSaveImageButton)
|
|
|
|
|
ON_WM_TIMER()
|
|
|
|
|
END_MESSAGE_MAP()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// CCcdDataImageProcessingDlg <20><>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
BOOL CCcdDataImageProcessingDlg::OnInitDialog()
|
|
|
|
|
{
|
|
|
|
|
CDialogEx::OnInitDialog();
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...<2E><><EFBFBD>˵<EFBFBD><CBB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD>ϵͳ<CFB5>˵<EFBFBD><CBB5>С<EFBFBD>
|
|
|
|
|
|
|
|
|
|
// IDM_ABOUTBOX <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵͳ<CFB5><CDB3><EFBFBD>Χ<EEB7B6>ڡ<EFBFBD>
|
|
|
|
|
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
|
|
|
|
|
ASSERT(IDM_ABOUTBOX < 0xF000);
|
|
|
|
|
|
|
|
|
|
CMenu* pSysMenu = GetSystemMenu(FALSE);
|
|
|
|
|
if (pSysMenu != NULL)
|
|
|
|
|
{
|
|
|
|
|
BOOL bNameValid;
|
|
|
|
|
CString strAboutMenu;
|
|
|
|
|
bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);
|
|
|
|
|
ASSERT(bNameValid);
|
|
|
|
|
if (!strAboutMenu.IsEmpty())
|
|
|
|
|
{
|
|
|
|
|
pSysMenu->AppendMenu(MF_SEPARATOR);
|
|
|
|
|
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD>ô˶Ի<CBB6><D4BB><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD>ꡣ <20><>Ӧ<EFBFBD>ó<EFBFBD><C3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><DAB2>ǶԻ<C7B6><D4BB><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>ܽ<EFBFBD><DCBD>Զ<EFBFBD>
|
|
|
|
|
// ִ<>д˲<D0B4><CBB2><EFBFBD>
|
|
|
|
|
SetIcon(m_hIcon, TRUE); // <20><><EFBFBD>ô<EFBFBD>ͼ<EFBFBD><CDBC>
|
|
|
|
|
SetIcon(m_hIcon, FALSE); // <20><><EFBFBD><EFBFBD>Сͼ<D0A1><CDBC>
|
|
|
|
|
|
|
|
|
|
// TODO: <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD>Ӷ<EFBFBD><D3B6><EFBFBD><EFBFBD>ij<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
OnInitEnergyCombo();
|
|
|
|
|
OnInitEnergyInfo();
|
|
|
|
|
OnInitCcdDataPath();
|
|
|
|
|
OnInitAll();
|
|
|
|
|
SetTimer(0, 500, NULL);
|
|
|
|
|
return TRUE; // <20><><EFBFBD>ǽ<EFBFBD><C7BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><C3B5>ؼ<EFBFBD><D8BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> TRUE
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void CCcdDataImageProcessingDlg::OnSysCommand(UINT nID, LPARAM lParam)
|
|
|
|
|
{
|
|
|
|
|
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
|
|
|
|
|
{
|
|
|
|
|
CAboutDlg dlgAbout;
|
|
|
|
|
dlgAbout.DoModal();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
CDialogEx::OnSysCommand(nID, lParam);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD>û<EFBFBD><C3BB>϶<EFBFBD><CFB6><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱϵͳ<CFB5><CDB3><EFBFBD>ô˺<C3B4><CBBA><EFBFBD>ȡ<EFBFBD>ù<EFBFBD><C3B9><EFBFBD>
|
|
|
|
|
//<2F><>ʾ<EFBFBD><CABE>
|
|
|
|
|
HCURSOR CCcdDataImageProcessingDlg::OnQueryDragIcon()
|
|
|
|
|
{
|
|
|
|
|
return static_cast<HCURSOR>(m_hIcon);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void CCcdDataImageProcessingDlg::OnBnClickedImageInfoSaveButton()
|
|
|
|
|
{
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|
|
|
|
CString strFilePath = FILE_CCD_IMAGE_INFO_PATH;
|
|
|
|
|
CString ccdFilePath = FILE_CCD_DATAT_PATH;
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD> CStdioFile <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD> UTF-8 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
CStdioFile file,ccdDataFilePath;
|
|
|
|
|
if (!file.Open(strFilePath, CFile::modeCreate | CFile::modeWrite | CFile::typeText)) {
|
|
|
|
|
AfxMessageBox(_T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>"));
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!ccdDataFilePath.Open(ccdFilePath, CFile::modeCreate | CFile::modeWrite | CFile::typeText)) {
|
|
|
|
|
AfxMessageBox(_T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>"));
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// д<><D0B4><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ö<EFBFBD><C3B6>ŷָ<C5B7>
|
|
|
|
|
file.WriteString(_T("Plan,MinEnergy,MaxEnergy,Color,TF,Proportion(%)\n"));
|
|
|
|
|
// ӳ<><D3B3><EFBFBD>ؼ<EFBFBD>ID
|
|
|
|
|
|
|
|
|
|
CString cddDataPathInfo;
|
|
|
|
|
GetDlgItemText(IDC_CCD_DATA_PATH_EDIT, cddDataPathInfo);
|
|
|
|
|
ccdDataFilePath.WriteString(cddDataPathInfo);
|
|
|
|
|
|
|
|
|
|
// ѭ<><D1AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿһ<C3BF><D2BB><EFBFBD>ؼ<EFBFBD>
|
|
|
|
|
for (int i = 0; i < 10; ++i) {
|
|
|
|
|
CString strPlan;
|
|
|
|
|
strPlan.Format(_T("%d"), i + 1);
|
|
|
|
|
|
|
|
|
|
// <20><>ȡ<EFBFBD>༭<EFBFBD><E0BCAD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
CString minEnergy, maxEnergy, proportionEnergy, energyCombo, colorCombo;
|
|
|
|
|
GetDlgItemText(minEnergyCtrlIds[i], minEnergy);
|
|
|
|
|
GetDlgItemText(maxEnergyCtrlIds[i], maxEnergy);
|
|
|
|
|
GetDlgItemText(proportionEnergyCtrlIds[i], proportionEnergy);
|
|
|
|
|
|
|
|
|
|
// <20><>ȡ<EFBFBD><C8A1>ɫ<EFBFBD><C9AB><EFBFBD>Ͽ<EFBFBD><CFBF><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
CComboBox* pColorComboBox = (CComboBox*)GetDlgItem(colorComboCtrlIds[i]);
|
|
|
|
|
int colorSel = pColorComboBox->GetCurSel(); // <20><>ȡ<EFBFBD><C8A1>ǰѡ<C7B0><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
if (colorSel != CB_ERR) {
|
|
|
|
|
pColorComboBox->GetLBText(colorSel, colorCombo); // <20><>ȡ<EFBFBD><C8A1>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
colorCombo = _T(""); // <20><><EFBFBD><EFBFBD>û<EFBFBD><C3BB>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// <20><>ȡTF<54><46><EFBFBD>Ͽ<EFBFBD><CFBF><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
CComboBox* pComboBox = (CComboBox*)GetDlgItem(energyComboCtrlIds[i]);
|
|
|
|
|
int energySel = pComboBox->GetCurSel(); // <20><>ȡ<EFBFBD><C8A1>ǰѡ<C7B0><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
if (energySel != CB_ERR) {
|
|
|
|
|
pComboBox->GetLBText(energySel, energyCombo); // <20><>ȡTrue/False
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
energyCombo = _T(""); // <20><><EFBFBD><EFBFBD>û<EFBFBD><C3BB>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD>У<EFBFBD><D0A3><EFBFBD>ʹ<EFBFBD>ö<EFBFBD><C3B6>ŷָ<C5B7>
|
|
|
|
|
file.WriteString(strPlan + _T(",") + minEnergy + _T(",") + maxEnergy +
|
|
|
|
|
_T(",") + colorCombo + _T(",") + energyCombo +
|
|
|
|
|
_T(",") + proportionEnergy + _T("\n"));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>
|
|
|
|
|
//AfxMessageBox(_T("CCDͼ<44><CDBC><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>ѱ<EFBFBD><D1B1>棡"),MB_TOPMOST);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void CCcdDataImageProcessingDlg::OnBnClickedDlgMinButton()
|
|
|
|
|
{
|
|
|
|
|
// <20><>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
ShowWindow(SW_MINIMIZE);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void CCcdDataImageProcessingDlg::OnBnClickedDlgMaxButton()
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void CCcdDataImageProcessingDlg::OnInitEnergyCombo()
|
|
|
|
|
{
|
|
|
|
|
// <20><>ʼ<EFBFBD><CABC>ComboBox<6F>ؼ<EFBFBD><D8BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>True<75><65>Falseѡ<65><D1A1>
|
|
|
|
|
CComboBox* energyCombos[] = {
|
|
|
|
|
&m_bEnergy1, &m_bEnergy2, &m_bEnergy3, &m_bEnergy4, &m_bEnergy5,
|
|
|
|
|
&m_bEnergy6, &m_bEnergy7, &m_bEnergy8, &m_bEnergy9, &m_bEnergy10
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// ѭ<><D1AD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Energy ComboBox<6F>ؼ<EFBFBD>
|
|
|
|
|
for (int i = 0; i < 10; ++i)
|
|
|
|
|
{
|
|
|
|
|
TRACE(_T("Initializing ComboBox %d\n"), i); // <20><>ӡ<EFBFBD><D3A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|
|
|
|
|
|
|
|
|
energyCombos[i]->AddString(_T("True"));
|
|
|
|
|
energyCombos[i]->AddString(_T("False"));
|
|
|
|
|
energyCombos[i]->SetCurSel(0); // Ĭ<><C4AC>ѡ<EFBFBD><D1A1>False
|
|
|
|
|
energyCombos[i]->ModifyStyle(CBS_SIMPLE, CBS_DROPDOWNLIST); // <20><><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD><D0B1><EFBFBD>ģʽ<C4A3><CABD><EFBFBD><EFBFBD><EFBFBD>ܱ༭
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>ɫ ComboBox<6F>ؼ<EFBFBD>
|
|
|
|
|
CComboBox* colorCombos[] = {
|
|
|
|
|
&m_Color1, &m_Color2, &m_Color3, &m_Color4, &m_Color5,
|
|
|
|
|
&m_Color6, &m_Color7, &m_Color8, &m_Color9, &m_Color10
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// ѭ<><D1AD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ ComboBox<6F>ؼ<EFBFBD>
|
|
|
|
|
for (int i = 0; i < 10; ++i)
|
|
|
|
|
{
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB><EFBFBD>Ƶ<EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD>ɫ<EFBFBD>ؼ<EFBFBD>
|
|
|
|
|
for (int j = 0; j < sizeof(colorNames) / sizeof(colorNames[0]); ++j)
|
|
|
|
|
{
|
|
|
|
|
colorCombos[i]->AddString(colorNames[j]);
|
|
|
|
|
}
|
|
|
|
|
colorCombos[i]->SetCurSel(0); // Ĭ<><C4AC>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ɫ
|
|
|
|
|
colorCombos[i]->ModifyStyle(0, CBS_DROPDOWNLIST); // <20><><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD><D0B1><EFBFBD>ģʽ<C4A3><CABD><EFBFBD><EFBFBD><EFBFBD>ܱ༭
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void CCcdDataImageProcessingDlg::OnInitEnergyInfo()
|
|
|
|
|
{
|
|
|
|
|
// <20><>ʼ<EFBFBD><CABC> CEdit <20>ؼ<EFBFBD><D8BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ 0
|
|
|
|
|
m_MinEnergy1.SetWindowText(_T("0"));
|
|
|
|
|
m_MaxEnergy1.SetWindowText(_T("0"));
|
|
|
|
|
m_MinEnergy2.SetWindowText(_T("0"));
|
|
|
|
|
m_MaxEnergy2.SetWindowText(_T("0"));
|
|
|
|
|
m_MinEnergy3.SetWindowText(_T("0"));
|
|
|
|
|
m_MaxEnergy3.SetWindowText(_T("0"));
|
|
|
|
|
m_MinEnergy4.SetWindowText(_T("0"));
|
|
|
|
|
m_MaxEnergy4.SetWindowText(_T("0"));
|
|
|
|
|
m_MinEnergy5.SetWindowText(_T("0"));
|
|
|
|
|
m_MaxEnergy5.SetWindowText(_T("0"));
|
|
|
|
|
m_MinEnergy6.SetWindowText(_T("0"));
|
|
|
|
|
m_MaxEnergy6.SetWindowText(_T("0"));
|
|
|
|
|
m_MinEnergy7.SetWindowText(_T("0"));
|
|
|
|
|
m_MaxEnergy7.SetWindowText(_T("0"));
|
|
|
|
|
m_MinEnergy8.SetWindowText(_T("0"));
|
|
|
|
|
m_MaxEnergy8.SetWindowText(_T("0"));
|
|
|
|
|
m_MinEnergy9.SetWindowText(_T("0"));
|
|
|
|
|
m_MaxEnergy9.SetWindowText(_T("0"));
|
|
|
|
|
m_MinEnergy10.SetWindowText(_T("0"));
|
|
|
|
|
m_MaxEnergy10.SetWindowText(_T("0"));
|
|
|
|
|
|
|
|
|
|
// <20><>ʼ<EFBFBD><CABC> CEdit <20>ؼ<EFBFBD><D8BC>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>ֵΪ 0
|
|
|
|
|
m_ProportionEnergy1.SetWindowText(_T("0"));
|
|
|
|
|
m_ProportionEnergy2.SetWindowText(_T("0"));
|
|
|
|
|
m_ProportionEnergy3.SetWindowText(_T("0"));
|
|
|
|
|
m_ProportionEnergy4.SetWindowText(_T("0"));
|
|
|
|
|
m_ProportionEnergy5.SetWindowText(_T("0"));
|
|
|
|
|
m_ProportionEnergy6.SetWindowText(_T("0"));
|
|
|
|
|
m_ProportionEnergy7.SetWindowText(_T("0"));
|
|
|
|
|
m_ProportionEnergy8.SetWindowText(_T("0"));
|
|
|
|
|
m_ProportionEnergy9.SetWindowText(_T("0"));
|
|
|
|
|
m_ProportionEnergy10.SetWindowText(_T("0"));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void CCcdDataImageProcessingDlg::OnInitCcdDataPath()
|
|
|
|
|
{
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>FILE_CCD_DATAT_PATH<54>Ǻ궨<C7BA>壬<EFBFBD><E5A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>滻Ϊ<E6BBBB><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7>
|
|
|
|
|
CString strFilePath = FILE_CCD_DATAT_PATH;
|
|
|
|
|
CStdioFile file;
|
|
|
|
|
CString filePath;
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ж<EFBFBD>ȡ
|
|
|
|
|
if (!file.Open(strFilePath, CFile::modeRead | CFile::typeText))
|
|
|
|
|
{
|
|
|
|
|
AfxMessageBox(_T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>"));
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// <20><>ȡ<EFBFBD><C8A1>һ<EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
if (file.ReadString(filePath))
|
|
|
|
|
{
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><C3B5>ؼ<EFBFBD><D8BC><EFBFBD>
|
|
|
|
|
m_CddDataPath.SetWindowText(filePath);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
AfxMessageBox(_T("<EFBFBD>ļ<EFBFBD>Ϊ<EFBFBD>ջ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// <20>ر<EFBFBD><D8B1>ļ<EFBFBD>
|
|
|
|
|
file.Close();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void CCcdDataImageProcessingDlg::UpProportionEnergy()
|
|
|
|
|
{
|
|
|
|
|
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
|
|
|
|
|
int totalEnergy = m_NumEnergy; // <20><><EFBFBD><EFBFBD> m_NumEnergy <20>洢<EFBFBD><E6B4A2><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD> m_proportionEnergy <20>е<EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>
|
|
|
|
|
for (const auto& pair : m_proportionEnergy) {
|
|
|
|
|
int key = pair.first; // <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>ؼ<EFBFBD>ID<49><44>
|
|
|
|
|
int value = pair.second; // <20><>ȡֵ<C8A1><D6B5>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
double proportion = (static_cast<double>(value) * 100) / totalEnergy;
|
|
|
|
|
|
|
|
|
|
// <20><>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
|
|
|
|
|
CString strProportion;
|
|
|
|
|
strProportion.Format(_T("%.2f%%"), proportion);
|
|
|
|
|
|
|
|
|
|
// <20><>ȡ<EFBFBD>ؼ<EFBFBD> ID <20><>Ӧ<EFBFBD>Ŀؼ<C4BF>ָ<EFBFBD><D6B8>
|
|
|
|
|
SetDlgItemText(key, strProportion); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><C3B5>ؼ<EFBFBD><D8BC><EFBFBD>
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void CCcdDataImageProcessingDlg::OnInitAll()
|
|
|
|
|
{
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>·<EFBFBD><C2B7>
|
|
|
|
|
CString strFilePath = FILE_CCD_IMAGE_INFO_PATH;
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
if (FileExists(strFilePath))
|
|
|
|
|
{
|
|
|
|
|
// <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ڣ<EFBFBD><DAA3><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>м<EFBFBD><D0BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
LoadEnergyDataFromFile(strFilePath);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ڵĸ<DAB5><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
BOOL CCcdDataImageProcessingDlg::FileExists(const CString& strFilePath)
|
|
|
|
|
{
|
|
|
|
|
DWORD dwFileAttrib = GetFileAttributes(strFilePath);
|
|
|
|
|
return (dwFileAttrib != INVALID_FILE_ATTRIBUTES && !(dwFileAttrib & FILE_ATTRIBUTE_DIRECTORY));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void CCcdDataImageProcessingDlg::LoadEnergyDataFromFile(const CString& strFilePath)
|
|
|
|
|
{
|
|
|
|
|
CStdioFile file;
|
|
|
|
|
CString line;
|
|
|
|
|
CString minEnergy, maxEnergy, proportionEnergy, colorCombo, energyCombo;
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ж<EFBFBD>ȡ
|
|
|
|
|
if (!file.Open(strFilePath, CFile::modeRead | CFile::typeText))
|
|
|
|
|
{
|
|
|
|
|
AfxMessageBox(_T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>"));
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ
|
|
|
|
|
file.ReadString(line);
|
|
|
|
|
|
|
|
|
|
// ѭ<><D1AD><EFBFBD><EFBFBD>ȡÿһ<C3BF>в<EFBFBD><D0B2><EFBFBD><EFBFBD>¿ؼ<C2BF>
|
|
|
|
|
for (int i = 0; i < 10; ++i)
|
|
|
|
|
{
|
|
|
|
|
// <20><>ȡÿһ<C3BF><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
if (file.ReadString(line))
|
|
|
|
|
{
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6>ŷָ<C5B7>
|
|
|
|
|
CStringArray fields;
|
|
|
|
|
int start = 0;
|
|
|
|
|
int end = line.Find(_T(','));
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>ÿһ<C3BF>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
while (end != -1)
|
|
|
|
|
{
|
|
|
|
|
fields.Add(line.Mid(start, end - start));
|
|
|
|
|
start = end + 1;
|
|
|
|
|
end = line.Find(_T(','), start);
|
|
|
|
|
}
|
|
|
|
|
fields.Add(line.Mid(start));
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD>ÿؼ<C3BF><D8BC><EFBFBD>ֵ
|
|
|
|
|
if (fields.GetSize() >= 6)
|
|
|
|
|
{
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>MinEnergy<67><79>MaxEnergy
|
|
|
|
|
SetDlgItemText(minEnergyCtrlIds[i], fields[1]);
|
|
|
|
|
SetDlgItemText(maxEnergyCtrlIds[i], fields[2]);
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>Proportion
|
|
|
|
|
SetDlgItemText(proportionEnergyCtrlIds[i], fields[5]);
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
|
|
|
|
|
CComboBox* pColorCombo = (CComboBox*)GetDlgItem(colorComboCtrlIds[i]);
|
|
|
|
|
int colorIndex = pColorCombo->FindStringExact(-1, fields[3]);
|
|
|
|
|
if (colorIndex != CB_ERR)
|
|
|
|
|
{
|
|
|
|
|
pColorCombo->SetCurSel(colorIndex);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>TF
|
|
|
|
|
CComboBox* pEnergyCombo = (CComboBox*)GetDlgItem(energyComboCtrlIds[i]);
|
|
|
|
|
int tfIndex = pEnergyCombo->FindStringExact(-1, fields[4]);
|
|
|
|
|
if (tfIndex != CB_ERR)
|
|
|
|
|
{
|
|
|
|
|
pEnergyCombo->SetCurSel(tfIndex);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// <20>ر<EFBFBD><D8B1>ļ<EFBFBD>
|
|
|
|
|
file.Close();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void CCcdDataImageProcessingDlg::OnBnClickedSlectPathButton()
|
|
|
|
|
{
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD>Ի<EFBFBD><D4BB><EFBFBD>
|
|
|
|
|
CFileDialog fileDlg(TRUE, _T("csv"), NULL, OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST, _T("Text Files (*.csv)|*.csv|All Files (*.*)|*.*||"));
|
|
|
|
|
|
|
|
|
|
// <20><>ʾ<EFBFBD>ļ<EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD>Ի<EFBFBD><D4BB><EFBFBD>
|
|
|
|
|
if (fileDlg.DoModal() == IDOK)
|
|
|
|
|
{
|
|
|
|
|
// <20><>ȡѡ<C8A1><D1A1><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>·<EFBFBD><C2B7>
|
|
|
|
|
CString filePath = fileDlg.GetPathName();
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD> m_CddDataPath <20>ؼ<EFBFBD>
|
|
|
|
|
m_CddDataPath.SetWindowText(filePath);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void CCcdDataImageProcessingDlg::OnBnClickedImageGenerateButton()
|
|
|
|
|
{
|
|
|
|
|
CWaitCursor wait;
|
|
|
|
|
CString cddDataPathInfo;
|
|
|
|
|
GetDlgItemText(IDC_CCD_DATA_PATH_EDIT, cddDataPathInfo);
|
|
|
|
|
m_colorSchemeManager.addScheme("Scheme1"); // <20><><EFBFBD>Ӷ<EFBFBD><D3B6><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>
|
|
|
|
|
//---<2D><>ȡ<EFBFBD><C8A1><EFBFBD>з<EFBFBD><D0B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>--------------------------------------------
|
|
|
|
|
|
|
|
|
|
// ѭ<><D1AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿһ<C3BF><D2BB><EFBFBD>ؼ<EFBFBD>
|
|
|
|
|
for (int i = 0; i < 10; ++i) {
|
|
|
|
|
CString strPlan;
|
|
|
|
|
strPlan.Format(_T("%d"), i + 1);
|
|
|
|
|
|
|
|
|
|
// <20><>ȡ<EFBFBD>༭<EFBFBD><E0BCAD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
CString minEnergy, maxEnergy, proportionEnergy, energyCombo, colorCombo;
|
|
|
|
|
GetDlgItemText(minEnergyCtrlIds[i], minEnergy);
|
|
|
|
|
GetDlgItemText(maxEnergyCtrlIds[i], maxEnergy);
|
|
|
|
|
//GetDlgItemText(proportionEnergyCtrlIds[i], proportionEnergy);
|
|
|
|
|
|
|
|
|
|
// <20><>ȡ<EFBFBD><C8A1>ɫ<EFBFBD><C9AB><EFBFBD>Ͽ<EFBFBD><CFBF><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
CComboBox* pColorComboBox = (CComboBox*)GetDlgItem(colorComboCtrlIds[i]);
|
|
|
|
|
int colorSel = pColorComboBox->GetCurSel(); // <20><>ȡ<EFBFBD><C8A1>ǰѡ<C7B0><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
if (colorSel != CB_ERR) {
|
|
|
|
|
pColorComboBox->GetLBText(colorSel, colorCombo); // <20><>ȡ<EFBFBD><C8A1>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
colorCombo = _T(""); // <20><><EFBFBD><EFBFBD>û<EFBFBD><C3BB>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// <20><>ȡTF<54><46><EFBFBD>Ͽ<EFBFBD><CFBF><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
CComboBox* pComboBox = (CComboBox*)GetDlgItem(energyComboCtrlIds[i]);
|
|
|
|
|
int energySel = pComboBox->GetCurSel(); // <20><>ȡ<EFBFBD><C8A1>ǰѡ<C7B0><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
if (energySel != CB_ERR) {
|
|
|
|
|
pComboBox->GetLBText(energySel, energyCombo); // <20><>ȡTrue/False
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
energyCombo = _T(""); // <20><><EFBFBD><EFBFBD>û<EFBFBD><C3BB>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// ת<><D7AA><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
float minEnergyValue = _tstof(minEnergy); // ת<><D7AA>Ϊ float
|
|
|
|
|
float maxEnergyValue = _tstof(maxEnergy); // ת<><D7AA>Ϊ float
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
|
|
|
|
|
COLORREF color = RGB_WHITE; // Ĭ<><C4AC><EFBFBD><EFBFBD>ɫΪ<C9AB><CEAA>ɫ
|
|
|
|
|
if (colorCombo == colorNames[0]) { // Red
|
|
|
|
|
color = RGB_RED;
|
|
|
|
|
}
|
|
|
|
|
else if (colorCombo == colorNames[1]) { // Orange
|
|
|
|
|
color = RGB_ORANGE;
|
|
|
|
|
}
|
|
|
|
|
else if (colorCombo == colorNames[2]) { // Yellow
|
|
|
|
|
color = RGB_YELLOW;
|
|
|
|
|
}
|
|
|
|
|
else if (colorCombo == colorNames[3]) { // Green
|
|
|
|
|
color = RGB_GREEN;
|
|
|
|
|
}
|
|
|
|
|
else if (colorCombo == colorNames[4]) { // Cyan
|
|
|
|
|
color = RGB_CYAN;
|
|
|
|
|
}
|
|
|
|
|
else if (colorCombo == colorNames[5]) { // Blue
|
|
|
|
|
color = RGB_BLUE;
|
|
|
|
|
}
|
|
|
|
|
else if (colorCombo == colorNames[6]) { // Purple
|
|
|
|
|
color = RGB_PURPLE;
|
|
|
|
|
}
|
|
|
|
|
else if (colorCombo == colorNames[7]) { // Grey
|
|
|
|
|
color = RGB_GREY;
|
|
|
|
|
}
|
|
|
|
|
else if (colorCombo == colorNames[8]) { // Pink
|
|
|
|
|
color = RGB_PINK;
|
|
|
|
|
}
|
|
|
|
|
else if (colorCombo == colorNames[9]) { // Black
|
|
|
|
|
color = RGB_BLACK;
|
|
|
|
|
}
|
|
|
|
|
else if (colorCombo == colorNames[10]) { // White
|
|
|
|
|
color = RGB_WHITE;
|
|
|
|
|
}
|
|
|
|
|
else if (colorCombo == colorNames[11]) { // Brown
|
|
|
|
|
color = RGB_BROWN;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӷ<EFBFBD>Χ
|
|
|
|
|
if (energyCombo == _T("True")) {
|
|
|
|
|
m_colorSchemeManager.schemes["Scheme1"].addRange(minEnergyValue, maxEnergyValue, color, proportionEnergyCtrlIds[i]); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB>Χ
|
|
|
|
|
m_proportionEnergy[proportionEnergyCtrlIds[i]] = 0;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//---<2D><>ͼ--------------------------------------------------------
|
|
|
|
|
m_colorSchemeManager.setCurrentScheme("Scheme1"); // <20><><EFBFBD>õ<EFBFBD>ǰ<EFBFBD><C7B0>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>Ϊ Scheme1
|
|
|
|
|
gCsvToImg->m_colorSchemeManager = m_colorSchemeManager;
|
|
|
|
|
gCsvToImg->ReadCsv2Img(cddDataPathInfo);
|
|
|
|
|
|
|
|
|
|
auto Db2CString=[](float val)
|
|
|
|
|
{
|
|
|
|
|
CString str;
|
|
|
|
|
str.Format("%.3f", val);
|
|
|
|
|
return str;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
auto ¤tScheme = gCsvToImg->m_colorSchemeManager.currentScheme;
|
|
|
|
|
auto &Ranges = currentScheme->ranges;
|
|
|
|
|
//CEdit <20>ؼ<EFBFBD><D8BC>е<EFBFBD>ռ<EFBFBD><D5BC>ֵ (ûȫ<C3BB><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>쳣)
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
m_ProportionEnergy1.SetWindowText(Db2CString(Ranges.at(0).dPercent));
|
|
|
|
|
m_ProportionEnergy2.SetWindowText(Db2CString(Ranges.at(1).dPercent));
|
|
|
|
|
m_ProportionEnergy3.SetWindowText(Db2CString(Ranges.at(2).dPercent));
|
|
|
|
|
m_ProportionEnergy4.SetWindowText(Db2CString(Ranges.at(3).dPercent));
|
|
|
|
|
m_ProportionEnergy5.SetWindowText(Db2CString(Ranges.at(4).dPercent));
|
|
|
|
|
m_ProportionEnergy6.SetWindowText(Db2CString(Ranges.at(5).dPercent));
|
|
|
|
|
m_ProportionEnergy7.SetWindowText(Db2CString(Ranges.at(6).dPercent));
|
|
|
|
|
m_ProportionEnergy8.SetWindowText(Db2CString(Ranges.at(7).dPercent));
|
|
|
|
|
m_ProportionEnergy9.SetWindowText(Db2CString(Ranges.at(8).dPercent));
|
|
|
|
|
m_ProportionEnergy10.SetWindowText(Db2CString(Ranges.at(9).dPercent));
|
|
|
|
|
}
|
|
|
|
|
catch (...){}
|
|
|
|
|
|
|
|
|
|
UpdateWindow();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
|
|
|
|
|
COLORREF CCcdDataImageProcessingDlg::GetColorFromEnergy(float energy)
|
|
|
|
|
{
|
|
|
|
|
if (m_colorSchemeManager.currentScheme == nullptr) {
|
|
|
|
|
return RGB_WHITE;
|
|
|
|
|
}
|
|
|
|
|
return m_colorSchemeManager.currentScheme->getColor(energy);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//void CCcdDataImageProcessingDlg::OnPaint()
|
|
|
|
|
//{
|
|
|
|
|
//
|
|
|
|
|
//
|
|
|
|
|
// gCsvToImg->ShowLastImg(&m_PicCtrl);
|
|
|
|
|
// return;
|
|
|
|
|
//
|
|
|
|
|
// CPaintDC dc(this); // <20>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
// CRect clientRect;
|
|
|
|
|
// GetClientRect(&clientRect); // <20><>ȡ<EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
//
|
|
|
|
|
// // <20><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD>ɫ
|
|
|
|
|
// dc.FillSolidRect(clientRect, RGB(255, 255, 255));
|
|
|
|
|
//
|
|
|
|
|
// // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
// CFont font;
|
|
|
|
|
// font.CreatePointFont(120, _T("Arial"));
|
|
|
|
|
// dc.SelectObject(&font);
|
|
|
|
|
//
|
|
|
|
|
// // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
// int numRows = m_data.size();
|
|
|
|
|
// int numCols = (numRows > 0) ? m_data[0].size() : 0;
|
|
|
|
|
//
|
|
|
|
|
// // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD><D5A3><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>
|
|
|
|
|
// if (numRows == 0 || numCols == 0) {
|
|
|
|
|
// dc.TextOut(10, 10, _T("No data available"));
|
|
|
|
|
// return;
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// // <20><>ȡ<EFBFBD><C8A1><EFBFBD>ڵĿ<DAB5><C4BF>Ⱥ߶<CDB8>
|
|
|
|
|
// int maxImageWidth = clientRect.Width(); // ʹ<>ô<EFBFBD><C3B4>ڵĿ<DAB5><C4BF><EFBFBD>
|
|
|
|
|
// int maxImageHeight = clientRect.Height(); // ʹ<>ô<EFBFBD><C3B4>ڵĸ߶<C4B8>
|
|
|
|
|
//
|
|
|
|
|
// // <20><><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><DDBF>Ĵ<EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Σ<EFBFBD>
|
|
|
|
|
// float pointSize;
|
|
|
|
|
// if (numCols > 0) {
|
|
|
|
|
// // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CDB4>ڿ<EFBFBD><DABF>ȶ<EFBFBD>̬<EFBFBD><CCAC><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><DDBF>Ĵ<EFBFBD>С
|
|
|
|
|
// float maxPointSizeWidth = static_cast<float>(maxImageWidth) / numCols; // <20><><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><DDBF>ڿ<EFBFBD><DABF><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С
|
|
|
|
|
// pointSize = static_cast<int>(maxPointSizeWidth); // ѡ<><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƵĴ<C6B5>С
|
|
|
|
|
// }
|
|
|
|
|
// else {
|
|
|
|
|
// pointSize = 10; // Ĭ<>ϴ<EFBFBD>С
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߶ȿ<DFB6><C8BF>ÿռ䣬<D5BC><E4A3AC>̬<EFBFBD><CCAC><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><DDBF>ĸ߶<C4B8>
|
|
|
|
|
// int pointSizeHeight;
|
|
|
|
|
// if (numRows > 0) {
|
|
|
|
|
// // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CDB4>ڸ߶ȶ<DFB6>̬<EFBFBD><CCAC><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><DDBF>Ĵ<EFBFBD>С
|
|
|
|
|
// float maxPointSizeHeight = static_cast<float>(maxImageHeight) / numRows; // <20><><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><DDBF>ڸ߶<DAB8><DFB6>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С
|
|
|
|
|
// pointSizeHeight = static_cast<int>(maxPointSizeHeight); // ѡ<><D1A1><EFBFBD>߶<EFBFBD><DFB6><EFBFBD><EFBFBD>ƵĴ<C6B5>С
|
|
|
|
|
// }
|
|
|
|
|
// else {
|
|
|
|
|
// pointSizeHeight = 10; // Ĭ<>ϴ<EFBFBD>С
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// // ȡ<><C8A1>Сֵ<D0A1><D6B5>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD><DDB5>ܹ<EFBFBD><DCB9><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>
|
|
|
|
|
// if (pointSize > pointSizeHeight)pointSize = pointSizeHeight;
|
|
|
|
|
//
|
|
|
|
|
// // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> pointSize ̫С<CCAB><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>Сֵ
|
|
|
|
|
// if (pointSize < 0.5) {
|
|
|
|
|
// pointSize = 0.5; // ȷ<><C8B7>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD><DDB5><EFBFBD><EFBFBD><EFBFBD>Ϊ 1
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// // <20><><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹͼ<CAB9><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ұߣ<D2B1><DFA3>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD>ϱ<EFBFBD>
|
|
|
|
|
// int offsetX = 0;
|
|
|
|
|
// int offsetY = 0;
|
|
|
|
|
//
|
|
|
|
|
// // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD>
|
|
|
|
|
// for (int row = 0; row < numRows; ++row) {
|
|
|
|
|
// for (int col = 0; col < numCols; ++col) {
|
|
|
|
|
// // ȷ<><C8B7>ÿ<EFBFBD><C3BF>Ԫ<EFBFBD>ض<EFBFBD><D8B6><EFBFBD>Ч
|
|
|
|
|
// if (row < m_data.size() && col < m_data[row].size()) {
|
|
|
|
|
// try {
|
|
|
|
|
// float energy = std::stof(m_data[row][col]); // <20><><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
//
|
|
|
|
|
// // <20><><EFBFBD><EFBFBD>ͳ<EFBFBD><CDB3>
|
|
|
|
|
// if (energy < m_minEnergy) m_minEnergy = energy; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Сֵ
|
|
|
|
|
// if (energy > m_maxEnergy) m_maxEnergy = energy; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|
|
|
|
//
|
|
|
|
|
// m_NumEnergy++;
|
|
|
|
|
//
|
|
|
|
|
// // <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>ɫ
|
|
|
|
|
// COLORREF color = GetColorFromEnergy(energy);
|
|
|
|
|
// dc.SetDCBrushColor(color); // <20><><EFBFBD>û<EFBFBD>ˢ<EFBFBD><CBA2>ɫ
|
|
|
|
|
//
|
|
|
|
|
// // <20><><EFBFBD>㵱ǰ<E3B5B1><C7B0><EFBFBD>ݵ<EFBFBD>λ<EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
// float scaledX = col * pointSize + offsetX;
|
|
|
|
|
// float scaledY = row * pointSize + offsetY;
|
|
|
|
|
//
|
|
|
|
|
// // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>
|
|
|
|
|
// CRect rect(scaledX, scaledY, scaledX + pointSize, scaledY + pointSize);
|
|
|
|
|
// dc.FillSolidRect(rect, color);
|
|
|
|
|
// }
|
|
|
|
|
// catch (const std::invalid_argument& e) {
|
|
|
|
|
// // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
// continue; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ float<61><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰԪ<C7B0><D4AA>
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// // <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD>ֵ
|
|
|
|
|
// CString str;
|
|
|
|
|
// str.Format(_T("Min Energy: %.2f, Max Energy: %.2f"), m_minEnergy, m_maxEnergy);
|
|
|
|
|
// dc.TextOut(0, 1300, str);
|
|
|
|
|
// UpProportionEnergy();
|
|
|
|
|
//}
|
|
|
|
|
|
|
|
|
|
void CCcdDataImageProcessingDlg::OnBnClickedSaveImageButton()
|
|
|
|
|
{
|
|
|
|
|
// 1. ʹ<><CAB9><EFBFBD>ļ<EFBFBD><C4BC>Ի<EFBFBD><D4BB><EFBFBD>ѡ<EFBFBD><EFBFBD>λ<EFBFBD>ú<EFBFBD><C3BA>ļ<EFBFBD><C4BC><EFBFBD>
|
|
|
|
|
CFileDialog saveFileDlg(FALSE, _T("png"), _T("saved_image.png"), OFN_OVERWRITEPROMPT, _T("PNG Files (*.png)|*.png|All Files (*.*)|*.*||"));
|
|
|
|
|
|
|
|
|
|
if (saveFileDlg.DoModal() == IDOK) {
|
|
|
|
|
// <20><>ȡ<EFBFBD>û<EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>·<EFBFBD><C2B7>
|
|
|
|
|
CString savePath = saveFileDlg.GetPathName();
|
|
|
|
|
|
|
|
|
|
// 2. <20><><EFBFBD><EFBFBD>ͼ<EFBFBD>溯<F1B1A3B4><E6BAAF>
|
|
|
|
|
gCsvToImg->SaveLastImg(savePath);
|
|
|
|
|
//SaveImage(savePath);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void CCcdDataImageProcessingDlg::SaveImage(const CString& savePath)
|
|
|
|
|
{
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB> CImage <20><><EFBFBD><EFBFBD>
|
|
|
|
|
CImage image;
|
|
|
|
|
|
|
|
|
|
// <20><>ȡ<EFBFBD><C8A1>ǰ<EFBFBD><C7B0>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD>ijߴ<C4B3>
|
|
|
|
|
CClientDC dc(this); // <20><>ȡ<EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
CRect rect;
|
|
|
|
|
GetClientRect(&rect);
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>24λ<34><CEBB>ɫ
|
|
|
|
|
image.Create(rect.Width(), rect.Height(), 24);
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ڴ<EFBFBD><DAB4>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD>ڻ<EFBFBD><DABB>Ƶ<EFBFBD>ͼ<EFBFBD><CDBC>
|
|
|
|
|
CDC* pMemDC = CDC::FromHandle(image.GetDC());
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݸ<EFBFBD><DDB8>Ƶ<EFBFBD><C6B5>ڴ<EFBFBD><DAB4>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
pMemDC->BitBlt(0, 0, rect.Width(), rect.Height(), &dc, 0, 0, SRCCOPY);
|
|
|
|
|
|
|
|
|
|
// <20>ͷ<EFBFBD><CDB7>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
image.ReleaseDC();
|
|
|
|
|
|
|
|
|
|
// 3. <20><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
|
|
|
|
|
HRESULT hr = image.Save(savePath, Gdiplus::ImageFormatPNG); // <20><><EFBFBD><EFBFBD>Ϊ PNG <20><>ʽ
|
|
|
|
|
if (FAILED(hr)) {
|
|
|
|
|
AfxMessageBox(_T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>"));
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
AfxMessageBox(_T("ͼ<EFBFBD><EFBFBD><EFBFBD>ѱ<EFBFBD><EFBFBD><EFBFBD>"));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void CCcdDataImageProcessingDlg::OnTimer(UINT_PTR nIDEvent)
|
|
|
|
|
{
|
|
|
|
|
// TODO: <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC>ֵ
|
|
|
|
|
gCsvToImg->ShowLastImg(&m_PicCtrl);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CDialogEx::OnTimer(nIDEvent);
|
|
|
|
|
}
|