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