| | |
| | | #include "ToolUnits.h" |
| | | |
| | | |
| | | bool CControlJobManagerDlg::m_bHasState = false; |
| | | CControlJobManagerDlg::State CControlJobManagerDlg::m_state{}; |
| | | |
| | | // CControlJobManagerDlg 对话框 |
| | | |
| | | IMPLEMENT_DYNAMIC(CControlJobManagerDlg, CDialogEx) |
| | |
| | | |
| | | 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) |
| | |
| | | void CControlJobManagerDlg::OnDestroy() |
| | | { |
| | | CDialogEx::OnDestroy(); |
| | | SaveState(); |
| | | |
| | | for (auto page : m_pages) { |
| | | page->DestroyWindow(); |
| | |
| | | |
| | | void CControlJobManagerDlg::InitData() |
| | | { |
| | | ASSERT(m_pControlJob == nullptr); |
| | | LoadState(); |
| | | if (m_pControlJob != nullptr) return; |
| | | |
| | | m_pControlJob = new SERVO::CControlJob("CJ" + CToolUnits::NowStrSec()); |
| | | |
| | | char szBuffer[256]; |
| | |
| | | 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; |
| | | } |