From df4d0e875ccfe40add25100a75dedee54e566aaa Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期四, 18 九月 2025 09:06:24 +0800
Subject: [PATCH] 1.CConrolJobManagerDlg临时数据存储。
---
SourceCode/Bond/Servo/CControlJobManagerDlg.cpp | 41 +++++++++++++++++++++++++++++++++++------
1 files changed, 35 insertions(+), 6 deletions(-)
diff --git a/SourceCode/Bond/Servo/CControlJobManagerDlg.cpp b/SourceCode/Bond/Servo/CControlJobManagerDlg.cpp
index 6676d30..e9b9479 100644
--- a/SourceCode/Bond/Servo/CControlJobManagerDlg.cpp
+++ b/SourceCode/Bond/Servo/CControlJobManagerDlg.cpp
@@ -8,6 +8,9 @@
#include "ToolUnits.h"
+bool CControlJobManagerDlg::m_bHasState = false;
+CControlJobManagerDlg::State CControlJobManagerDlg::m_state{};
+
// CControlJobManagerDlg 瀵硅瘽妗�
IMPLEMENT_DYNAMIC(CControlJobManagerDlg, CDialogEx)
@@ -20,15 +23,22 @@
CControlJobManagerDlg::~CControlJobManagerDlg()
{
- for (auto item : m_pjWarps) {
+
+}
+
+void CControlJobManagerDlg::FreeState()
+{
+ if (!m_bHasState) return;
+ for (auto item : m_state.pjWarps) {
delete (SERVO::CProcessJob*)item.pj;
}
- m_pjWarps.clear();
+ m_state.pjWarps.clear();
- if (m_pControlJob != nullptr) {
- delete m_pControlJob;
- m_pControlJob = nullptr;
+ if (m_state.pControlJob != nullptr) {
+ delete m_state.pControlJob;
+ m_state.pControlJob = nullptr;
}
+ m_bHasState = false;
}
void CControlJobManagerDlg::DoDataExchange(CDataExchange* pDX)
@@ -240,6 +250,7 @@
void CControlJobManagerDlg::OnDestroy()
{
CDialogEx::OnDestroy();
+ SaveState();
for (auto page : m_pages) {
page->DestroyWindow();
@@ -249,7 +260,9 @@
void CControlJobManagerDlg::InitData()
{
- ASSERT(m_pControlJob == nullptr);
+ LoadState();
+ if (m_pControlJob != nullptr) return;
+
m_pControlJob = new SERVO::CControlJob("CJ" + CToolUnits::NowStrSec());
char szBuffer[256];
@@ -292,3 +305,19 @@
hRoot = m_tree.GetNextSiblingItem(hRoot);
}
}
+
+void CControlJobManagerDlg::LoadState()
+{
+ if (!m_bHasState) return;
+
+ // 鎶� s_state -> 鎴愬憳鍙橀噺
+ m_pControlJob = m_state.pControlJob;
+ m_pjWarps = m_state.pjWarps;
+}
+
+void CControlJobManagerDlg::SaveState()
+{
+ m_state.pControlJob = m_pControlJob;
+ m_state.pjWarps = m_pjWarps;
+ m_bHasState = true;
+}
--
Gitblit v1.9.3