From c856cf2dc2dca99f303458586dc6f70324228cf0 Mon Sep 17 00:00:00 2001
From: mrDarker <mr.darker@163.com>
Date: 星期五, 25 七月 2025 16:50:25 +0800
Subject: [PATCH] 1. 更新视觉程序(代提交)

---
 ENRIT/View/DlgCoordinateConvert.cpp |  210 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 210 insertions(+), 0 deletions(-)

diff --git a/ENRIT/View/DlgCoordinateConvert.cpp b/ENRIT/View/DlgCoordinateConvert.cpp
new file mode 100644
index 0000000..6124531
--- /dev/null
+++ b/ENRIT/View/DlgCoordinateConvert.cpp
@@ -0,0 +1,210 @@
+锘�// DlgCoordinateConvert.cpp: 瀹炵幇鏂囦欢
+//
+
+#include "stdafx.h"
+#include "ENRIT.h"
+#include "afxdialogex.h"
+#include "DlgCoordinateConvert.h"
+
+// CDlgCoordinateConvert 瀵硅瘽妗�
+
+const int CAM_COLUMN_COUNT = 5;
+const TCHAR* CAM_COLUMN_NAMES[CAM_COLUMN_COUNT] = {
+	_T("Dimension"),
+	_T("0 Hand Resolution(H)"),
+	_T("0 Hand Resolution(V)"),
+	_T("1 Hand Resolution(H)"),
+	_T("1 Hand Resolution(V)")
+};
+
+const int CAM_COLUMN_WIDTHS[CAM_COLUMN_COUNT] = {
+	80, 120, 120, 120, 120
+};
+
+#define GRID_FIX_COLOR			RGB(144,200,246)
+#define GRID_COLOR				RGB(242,242,242)
+#define GRID_TEXT_COLOR			RGB(255,255,255)
+#define GRID_LINE_COLOR			GRID_FIX_COLOR
+
+IMPLEMENT_DYNAMIC(CDlgCoordinateConvert, CDialogEx)
+
+CDlgCoordinateConvert::CDlgCoordinateConvert(CWnd* pParent /*=nullptr*/)
+	: CDialogEx(IDD_DLG_COORD_CONVERT, pParent)
+	, m_nCameraCount(0)
+	, m_nScanCount(0)
+	, m_pDlgRecipe(nullptr)
+{
+
+}
+
+CDlgCoordinateConvert::~CDlgCoordinateConvert()
+{
+}
+
+void CDlgCoordinateConvert::SetRecipe(CGlassRecipe* pRecipe)
+{
+	m_pDlgRecipe = pRecipe;
+}
+
+void CDlgCoordinateConvert::InitCameraGrid()
+{
+	if (m_gridCameraList.GetSafeHwnd() == NULL) {
+		return;
+	}
+
+	m_gridCameraList.GetDefaultCell(TRUE, FALSE)->SetBackClr(GRID_FIX_COLOR);
+	m_gridCameraList.GetDefaultCell(FALSE, TRUE)->SetBackClr(GRID_FIX_COLOR);
+	m_gridCameraList.GetDefaultCell(FALSE, FALSE)->SetBackClr(GRID_COLOR);
+	m_gridCameraList.SetFixedBkColor(GRID_FIX_COLOR);
+	m_gridCameraList.SetGridLines(GVL_BOTH);
+
+	m_gridCameraList.SetColumnCount(CAM_COLUMN_COUNT);
+	m_gridCameraList.SetRowCount(10);
+	m_gridCameraList.SetFixedRowCount(1);
+	m_gridCameraList.SetFixedColumnCount(0);
+	m_gridCameraList.ExpandColumnsToFit();
+
+	CFont* pFont = m_gridCameraList.GetFont();
+	if (!pFont) {
+		return;
+	}
+
+	LOGFONT lf;
+	pFont->GetLogFont(&lf);
+	lf.lfItalic = 0;
+	lf.lfHeight = 14;
+	lf.lfWeight = FW_BOLD;
+	_tcscpy_s(lf.lfFaceName, LF_FACESIZE, _T("Arial"));
+
+	m_gridCameraList.GetDefaultCell(TRUE, FALSE)->SetFont(&lf);
+	m_gridCameraList.GetDefaultCell(FALSE, TRUE)->SetFont(&lf);
+	m_gridCameraList.GetDefaultCell(TRUE, TRUE)->SetFont(&lf);
+	m_gridCameraList.SetEditable(TRUE);
+	m_gridCameraList.EnableSelection(TRUE);
+
+	InitCameraGridHeader();
+}
+
+void CDlgCoordinateConvert::InitCameraGridHeader()
+{
+	CString str;
+	GV_ITEM Item;
+	int		nCol = 0;
+	int		iLoop;
+
+	Item.mask = GVIF_TEXT;
+	Item.row = 0;
+	for (iLoop = 0; iLoop < CAM_COLUMN_COUNT; iLoop++) {
+		Item.col = nCol++;
+		Item.strText = CAM_COLUMN_NAMES[iLoop];
+		m_gridCameraList.SetItem(&Item);
+		m_gridCameraList.SetColumnWidth(Item.col, CAM_COLUMN_WIDTHS[iLoop]);
+	}
+
+	m_gridCameraList.Invalidate();
+}
+
+void CDlgCoordinateConvert::FillCameraGrid()
+{
+	m_gridCameraList.SetRowCount(MAX_DIMENSION_COUNT + 1);
+
+	CProfileInspect_Prm profile;
+	if (m_pDlgRecipe != nullptr) {
+		profile = m_pDlgRecipe->m_ProfilePrm;
+	}
+	else {
+		for (int i = 0; i < MAX_DIMENSION_COUNT; i++) {
+			profile.m_dConvResolution[i][0] = 0.01;
+			profile.m_dConvResolution[i][1] = 0.01;
+			profile.m_dScanResolution[i][0] = 0.01;
+			profile.m_dScanResolution[i][1] = 0.01;
+		}
+	}
+
+	CString str;
+	const TCHAR* SET_INS_DIMENSION[] = { _T("A Top"),_T("B Top"),_T("C Top"),_T("D Top"),_T("A Bot"),_T("B Bot"),_T("C Bot"),_T("D Bot") };
+	for (int i = 0; i < MAX_DIMENSION_COUNT; ++i) {
+		int iRow = i + 1;
+
+		m_gridCameraList.SetItemText(iRow, 0, SET_INS_DIMENSION[i]);
+		m_gridCameraList.SetItemState(iRow, 0, GVIS_READONLY);
+
+		str.Format(_T("%.10f"), profile.m_dConvResolution[i][0]);
+		m_gridCameraList.SetItemText(iRow, 1, str);
+
+		str.Format(_T("%.10f"), profile.m_dConvResolution[i][1]);
+		m_gridCameraList.SetItemText(iRow, 2, str);
+
+		str.Format(_T("%.10f"), profile.m_dScanResolution[i][0]);
+		m_gridCameraList.SetItemText(iRow, 3, str);
+
+		str.Format(_T("%.10f"), profile.m_dScanResolution[i][1]);
+		m_gridCameraList.SetItemText(iRow, 4, str);
+	}
+
+	m_gridCameraList.Invalidate();
+}
+
+void CDlgCoordinateConvert::DoDataExchange(CDataExchange* pDX)
+{
+	CDialogEx::DoDataExchange(pDX);
+	DDX_Control(pDX, IDC_CAMERA_LIST, m_gridCameraList);
+	DDX_Text(pDX, IDC_EDIT_CAMERA_COUNT, m_nCameraCount);
+	DDX_Text(pDX, IDC_EDIT_SCAN_COUNT, m_nScanCount);
+}
+
+BEGIN_MESSAGE_MAP(CDlgCoordinateConvert, CDialogEx)
+END_MESSAGE_MAP()
+
+BEGIN_EVENTSINK_MAP(CDlgCoordinateConvert, CDialogEx)
+	ON_EVENT(CDlgCoordinateConvert, IDC_BTN_CONVERT_APPLY, DISPID_CLICK, CDlgCoordinateConvert::OnClickBtnConvertApply, VTS_NONE)
+	ON_EVENT(CDlgCoordinateConvert, IDC_BTN_CONVERT_CLOSE, DISPID_CLICK, CDlgCoordinateConvert::OnClickBtnConvertClose, VTS_NONE)
+END_EVENTSINK_MAP()
+
+// CDlgCoordinateConvert 娑堟伅澶勭悊绋嬪簭
+
+BOOL CDlgCoordinateConvert::OnInitDialog()
+{
+	CDialogEx::OnInitDialog();
+
+	// TODO:  鍦ㄦ娣诲姞棰濆鐨勫垵濮嬪寲
+	m_nCameraCount = g_pBase->m_nCameraCount;
+	m_nScanCount = g_pBase->m_nScanCount;
+
+	InitCameraGrid();
+	FillCameraGrid();
+
+	UpdateData(FALSE);
+
+	return TRUE;  // return TRUE unless you set the focus to a control
+	// 寮傚父: OCX 灞炴�ч〉搴旇繑鍥� FALSE
+}
+
+void CDlgCoordinateConvert::OnClickBtnConvertApply()
+{
+	if (m_pDlgRecipe != nullptr) {
+		for (int i = 0; i < MAX_DIMENSION_COUNT; ++i) {
+			int iRow = i + 1;
+
+			CString strVal;
+			strVal = m_gridCameraList.GetItemText(iRow, 1);
+			m_pDlgRecipe->m_ProfilePrm.m_dConvResolution[i][0] = _tstof(strVal);
+
+			strVal = m_gridCameraList.GetItemText(iRow, 2);
+			m_pDlgRecipe->m_ProfilePrm.m_dConvResolution[i][1] = _tstof(strVal);
+
+			strVal = m_gridCameraList.GetItemText(iRow, 3);
+			m_pDlgRecipe->m_ProfilePrm.m_dScanResolution[i][0] = _tstof(strVal);
+
+			strVal = m_gridCameraList.GetItemText(iRow, 4);
+			m_pDlgRecipe->m_ProfilePrm.m_dScanResolution[i][1] = _tstof(strVal);
+		}
+	}
+
+	this->EndDialog(IDOK);
+}
+
+void CDlgCoordinateConvert::OnClickBtnConvertClose()
+{
+	this->EndDialog(IDCANCEL);
+}
\ No newline at end of file

--
Gitblit v1.9.3