mrDarker
2025-10-22 e8a27bb203fe2aff70390a5eca002d7438da9b0f
SourceCode/Bond/Servo/CControlJobManagerDlg.h
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,69 @@
#pragma once
#include "CCjPage1.h"
#include "CCjPage2.h"
#include "CCjPage3.h"
#include "ApredTreeCtrl2.h"
#define WM_AFTER_TVCHECK (WM_USER + 1000)
// CControlJobManagerDlg å¯¹è¯æ¡†
class CControlJobManagerDlg : public CDialogEx
{
   DECLARE_DYNAMIC(CControlJobManagerDlg)
public:
   CControlJobManagerDlg(CWnd* pParent = nullptr);   // æ ‡å‡†æž„造函数
   virtual ~CControlJobManagerDlg();
   static void FreeState();
private:
   void Resize();
   void UpdateCtrlState();
   void UpdateControlJob();
   bool AddPorcessJob(SERVO::CProcessJob* pj);
   bool RemovePorcessJob(SERVO::CProcessJob* pj);
   void UpProcessJobId(PJWarp* pjWarp);
   void UpControlJobId(SERVO::CControlJob* pControlJob);
   void InitData();
   void LoadState();
   void SaveState();
   int ShowPage(int index);
private:
   std::vector<CCjPageBase*> m_pages;
   SERVO::CControlJob* m_pControlJob;
   std::vector<PJWarp> m_pjWarps;
   CApredTreeCtrl2 m_tree;
public:
   struct State {
      SERVO::CControlJob* pControlJob = nullptr;
      std::vector<PJWarp> pjWarps;
   };
   static bool m_bHasState;
   static State m_state;
// å¯¹è¯æ¡†æ•°æ®
#ifdef AFX_DESIGN_TIME
   enum { IDD = IDD_DIALOG_CONTROL_JOB_MANAGER };
#endif
protected:
   virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV æ”¯æŒ
   DECLARE_MESSAGE_MAP()
public:
   virtual BOOL OnInitDialog();
   afx_msg void OnSize(UINT nType, int cx, int cy);
   afx_msg void OnGetMinMaxInfo(MINMAXINFO* lpMMI);
   afx_msg void OnTvnItemChangedTree(NMHDR* pNMHDR, LRESULT* pResult);
   afx_msg void OnDestroy();
   afx_msg void OnBnClickedButtonApply();
   afx_msg void OnTvnSelchangingTree1(NMHDR* pNMHDR, LRESULT* pResult);
   afx_msg void OnBnClickedButtonBathCompletion();
   afx_msg void OnTreeClick(NMHDR* pNMHDR, LRESULT* pResult);
   afx_msg void OnTreeKeyDown(NMHDR* pNMHDR, LRESULT* pResult);
   afx_msg LRESULT OnAfterTvCheck(WPARAM wParam, LPARAM lParam);
};