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