From 2070871df480a664c9c4e38bc4e4e324682a64c6 Mon Sep 17 00:00:00 2001
From: mrDarker <mr.darker@163.com>
Date: 星期四, 03 四月 2025 16:12:28 +0800
Subject: [PATCH] 1. 解决 WebView2 控制器创建失败时闪退的问题 2. 解决连接图销毁时保存设备图形数据闪退的问题

---
 SourceCode/Bond/Servo/CPageGraph2.cpp |   33 +++++++++++++++++++++++++++++++++
 1 files changed, 33 insertions(+), 0 deletions(-)

diff --git a/SourceCode/Bond/Servo/CPageGraph2.cpp b/SourceCode/Bond/Servo/CPageGraph2.cpp
index f29a3bb..2a5a00e 100644
--- a/SourceCode/Bond/Servo/CPageGraph2.cpp
+++ b/SourceCode/Bond/Servo/CPageGraph2.cpp
@@ -5,6 +5,9 @@
 #include "Servo.h"
 #include "CPageGraph2.h"
 #include "afxdialogex.h"
+#include "CHMPropertyDlg.h"
+#include "CEquipmentPage1.h"
+#include "CEquipmentPage2.h"
 
 
 // CPageGraph2 瀵硅瘽妗�
@@ -80,6 +83,20 @@
 	};
 	listener.onDblckEqItem = [&](EQITEM* pItem) -> bool {
 		ASSERT(pItem);
+		SERVO::CEquipment* pEquipment = (SERVO::CEquipment*)pItem->pData;
+
+		CHMPropertyDlg dlg(pEquipment->getName().c_str(), 600, 680);
+		CEquipmentPage1* pPage1 = new CEquipmentPage1();
+		pPage1->setEquipment(pEquipment);
+		pPage1->Create(IDD_PAGE_EQUIPMENT1);
+		dlg.addPage(pPage1, "test1");
+
+		CEquipmentPage2* pPage2 = new CEquipmentPage2();
+		pPage2->setEquipment(pEquipment);
+		pPage2->Create(IDD_PAGE_EQUIPMENT2);
+		dlg.addPage(pPage2, "Glass");
+
+		dlg.DoModal();
 		return true;
 	};
 	listener.onRclickEqItem = [&](EQITEM* pItem) -> bool {
@@ -129,6 +146,19 @@
 		else if (nCmd == ID_EQSGRAPHITEM_TEST2) {
 			SERVO::CEquipment* pEquipment = (SERVO::CEquipment*)pItem->pData;
 			pEquipment->outputGlass(1);
+		}
+		else if (nCmd == ID_EQSGRAPHITEM_TEST3) {
+			SERVO::CEquipment* pEquipment = (SERVO::CEquipment*)pItem->pData;
+			SERVO::CGlass* pGlass = pEquipment->getFrontGlass();
+			if (pGlass != nullptr) {
+				std::string strDescription;
+				SERVO::CPath* pPath = pGlass->getPath();
+				while (pPath != nullptr) {
+					pPath->getDescription(strDescription);
+					AfxMessageBox(strDescription.c_str());
+					pPath = pPath->getNext();
+				}
+			}
 		}
 
 
@@ -245,6 +275,9 @@
 	std::list<SERVO::CEquipment*>& eqs = theApp.m_model.m_master.getEquipmentList();
 	for (auto item : eqs) {
 		EQITEM* pEqItem = m_pEqsGraphWnd->GetItem((DWORD_PTR)item);
+		if (nullptr == pEqItem) {
+			continue;
+		}
 
 		strValue.Format(_T("%d"), pEqItem->rect.left);
 		WritePrivateProfileString(item->getName().c_str(), _T("Left"),

--
Gitblit v1.9.3