#pragma once #include "afxdialogex.h" #include "BlButton.h" #include "BLLabel.h" #include "CPLC.h" // CAxisSettingsDlg 对话框 class CAxisSettingsDlg : public CDialogEx { DECLARE_DYNAMIC(CAxisSettingsDlg) public: CAxisSettingsDlg(CWnd* pParent = nullptr); // 标准构造函数 virtual ~CAxisSettingsDlg(); public: void SetPLC(CPLC* pPLC); void SetRecipeName(const CString& strRecipeName); // 对话框数据 #ifdef AFX_DESIGN_TIME enum { IDD = IDD_DIALOG_AXIS_SETTINGS }; #endif private: UINT FindIDByName(const CString& strControlID); CFont* GetOrCreateFont(int nFontSize); void SetDefaultFont(); void AdjustControls(float dScaleX, float dScaleY); void AdjustControlFont(CWnd* pWnd, int nWidth, int nHeight); void AdjustLabelFont(CBLLabel& label); void SetStatusColor(CBLLabel& label, BOOL bStatus); void updatePageButtonStates(); int getCurrentSelectedAxisID(); void initializeAxisIDCombo(); void refreshAxisDetails(); void refreshPositionDetails(int pageNumber); void updateAxisSelection(int offset); void updateDataFromUI(); private: CPLC* m_pPLC; int m_nInitialWidth; int m_nInitialHeight; // 当前选中的定位页面索引 int m_currentPage; // 配方名称 CString m_strRecipeName; // 控件 CBLLabel m_staticFLS, m_staticDOG, m_staticRLS, m_staticReady, m_staticBusy, m_staticErr; CComboBox m_comboAxisNO; CStatic m_staticAxisNO, m_staticAxisDescription, m_staticStartAddress; CEdit m_editManualSpeed, m_editAutoSpeed, m_editAccelerationTime, m_editDecelerationTime, m_editJogDistance; CBlButton m_pageButtons[5]; std::map m_mapCtrlLayouts; std::map m_mapFonts; protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持 virtual BOOL OnInitDialog(); afx_msg void OnSize(UINT nType, int cx, int cy); afx_msg void OnSizing(UINT fwSide, LPRECT pRect); afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor); afx_msg void OnBnClickedButtonAxisLast(); afx_msg void OnBnClickedButtonAxisNext(); afx_msg void OnBnClickedButtonAxisAnchorPointGroup1(); afx_msg void OnBnClickedButtonAxisAnchorPointGroup2(); afx_msg void OnBnClickedButtonAxisAnchorPointGroup3(); afx_msg void OnBnClickedButtonAxisAnchorPointGroup4(); afx_msg void OnBnClickedButtonAxisAnchorPointGroup5(); afx_msg void OnBnClickedButtonAxisAnchorPoint1(); afx_msg void OnBnClickedButtonAxisAnchorPoint2(); afx_msg void OnBnClickedButtonAxisAnchorPoint3(); afx_msg void OnBnClickedButtonAxisAnchorPoint4(); afx_msg void OnBnClickedButtonAxisAnchorPoint5(); afx_msg void OnBnClickedButtonAxisTestOpr(); afx_msg void OnBnClickedButtonAxisTestJogAdd(); afx_msg void OnBnClickedButtonAxisTestJogSub(); afx_msg void OnBnClickedButtonAxisTestStop(); afx_msg void OnSelchangeComboAxisName(); afx_msg void OnBnClickedButtonAxisSave(); afx_msg void OnTimer(UINT_PTR nIDEvent); DECLARE_MESSAGE_MAP() };