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 | 58 +++++++++++++++++++++++++++++++++++++++++-----------------
1 files changed, 41 insertions(+), 17 deletions(-)
diff --git a/SourceCode/Bond/Servo/CPageGraph2.cpp b/SourceCode/Bond/Servo/CPageGraph2.cpp
index 00e7b4c..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 瀵硅瘽妗�
@@ -54,11 +57,6 @@
ASSERT(pPin1->pData);
ASSERT(pPin2->pData);
- //int nRet = ((IPin*)pPin1->pData)->checkConnectPin((IPin*)pPin2->pData);
- //if (nRet >= 0) {
- // return true;
- //}
-
return false;
};
listener.onConnectPin = [](PIN* pPin1, PIN* pPin2) -> bool {
@@ -67,35 +65,38 @@
ASSERT(pPin1->pData);
ASSERT(pPin2->pData);
- //int nRet = ((IPin*)pPin1->pData)->connectPin((IPin*)pPin2->pData);
- //if (nRet >= 0) {
- // return true;
- //}
-
return false;
};
listener.onDisconnectPin = [](PIN* pPin) -> bool {
ASSERT(pPin);
ASSERT(pPin->pData);
- //int nRet = ((IPin*)pPin->pData)->disconnect();
- //if (nRet >= 0) {
- // return true;
- //}
-
return false;
};
listener.onDeleteEqItem = [&](EQITEM* pItem) -> bool {
ASSERT(pItem);
ASSERT(pItem->pData);
- return true;
- // return _filterManager.unload((CFilter*)pFilter->pData) >= 0;
+ return false;
};
listener.onEqItemPosChanged = [&](EQITEM* pItem, int x, int y) -> void {
ASSERT(pItem);
};
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 {
@@ -146,7 +147,27 @@
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();
+ }
+ }
+ }
+
+ return true;
+ };
+ listener.onSelectEqItem = [&](EQITEM* pItem) -> bool {
+ ASSERT(pItem);
+ SERVO::CEquipment* pEquipment = (SERVO::CEquipment*)pItem->pData;
+ theApp.m_model.notifyPtr(RX_CODE_SELECT_EQUIPMENT, pEquipment);
return true;
};
@@ -254,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