#pragma once #include "afxdialogex.h" #include "GridCtrl.h" #include "CBaseDlg.h" // CAxisDetailSettingsDlg 对话框 class CAxisDetailSettingsDlg : public CBaseDlg { DECLARE_DYNAMIC(CAxisDetailSettingsDlg) public: CAxisDetailSettingsDlg(const CString& strRecipeName, int nAxisNO, CWnd* pParent = nullptr); // 标准构造函数 virtual ~CAxisDetailSettingsDlg(); public: void SetPLC(CPLC* pPLC); // 对话框数据 #ifdef AFX_DESIGN_TIME enum { IDD = IDD_DIALOG_AXIS_DETAIL_SETTINGS }; #endif private: void InitAnchorPontManager(); void FillAnchorPontManager(); void UpdateAxisDetailSettings(); bool ParsePLCAddress(const CString& address, MC::SOFT_COMPONENT& component, int& addr); void writeAxisDataToPLC(int nAxisId); private: CPLC* m_pPLC; // 数据 int m_nAxisNO; CString m_strRecipeName; // 控件 CStatic m_staticAxisNO, m_staticAxisDescription, m_staticStartAddress; CGridCtrl m_grid; protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持 virtual BOOL OnInitDialog(); afx_msg void OnGridItemChanged(NMHDR* pNotifyStruct, LRESULT* pResult); afx_msg void OnBnClickedButtonAxisDetailSettingsSave(); afx_msg void OnBnClickedButtonSetAxisPositioningPoints(); DECLARE_MESSAGE_MAP() };