| | |
| | | |
| | | #define TIMER_INIT 1 |
| | | #define TIMER_READ_PLC_DATA 2 |
| | | #define TIMER_HIDE_TIP 3 |
| | | |
| | | #define ID_MSG_UPDATA_DATA_TO_UI WM_USER + 101 |
| | | |
| | |
| | | |
| | | m_nBtnsFlashState6 = 0; |
| | | m_nBtnsFlashState8 = 0; |
| | | m_crTipBack = RGB(255, 127, 39); |
| | | m_crTipText = RGB(228, 228, 228); |
| | | m_hbrTip = CreateSolidBrush(m_crTipBack); |
| | | m_hTipFont = nullptr; |
| | | } |
| | | |
| | | CAxisSettingsDlg::~CAxisSettingsDlg() |
| | |
| | | delete m_pAxisManager; |
| | | m_pAxisManager = nullptr; |
| | | } |
| | | ::DeleteObject(m_hbrTip); |
| | | if (m_hTipFont != nullptr) { |
| | | ::DeleteObject(m_hTipFont); |
| | | } |
| | | } |
| | | |
| | | BOOL CAxisSettingsDlg::PreAdjustControl(CWnd* pWnd) |
| | | { |
| | | int nCtrlID = pWnd->GetDlgCtrlID(); |
| | | if (nCtrlID == IDC_LABEL_TIP) return FALSE; |
| | | |
| | | return TRUE; |
| | | } |
| | | |
| | | void CAxisSettingsDlg::DoDataExchange(CDataExchange* pDX) |
| | |
| | | ON_WM_SIZE() |
| | | ON_WM_TIMER() |
| | | ON_WM_CLOSE() |
| | | ON_WM_CTLCOLOR() |
| | | ON_EN_KILLFOCUS(IDC_EDIT_AXIS_MODITFY_MICROMENTUM, &CAxisSettingsDlg::OnEnKillfocusEditAxisModitfyMicromentum) |
| | | END_MESSAGE_MAP() |
| | | |
| | | |
| | |
| | | void CAxisSettingsDlg::OnSize(UINT nType, int cx, int cy) |
| | | { |
| | | CBaseDlg::OnSize(nType, cx, cy); |
| | | |
| | | if (GetDlgItem(IDC_LABEL_TIP) == nullptr) return; |
| | | // TODO: 在此处添加消息处理程序代码 |
| | | |
| | | CWnd* pItem; |
| | | CRect rcClient; |
| | | GetClientRect(&rcClient); |
| | | |
| | | pItem = GetDlgItem(IDC_LABEL_TIP); |
| | | pItem->MoveWindow(0, 0, rcClient.Width(), 36); |
| | | |
| | | |
| | | // 动态调整各个 CBLLabel 的字体大小 |
| | | for (auto pLabel : m_pBlLabels) { |
| | | AdjustLabelFont(*pLabel); |
| | |
| | | |
| | | void CAxisSettingsDlg::OnBnClickedButtonAxisAnchorPointGroup2() |
| | | { |
| | | // TODO: 在此添加控件通知处理程序代码 |
| | | SwitchToPage(2); |
| | | } |
| | | |
| | | void CAxisSettingsDlg::OnBnClickedButtonAxisAnchorPointGroup3() |
| | | { |
| | | // TODO: 在此添加控件通知处理程序代码 |
| | | SwitchToPage(3); |
| | | } |
| | | |
| | |
| | | |
| | | ReadPLCDataToUI(nAxisId); |
| | | } |
| | | else if (TIMER_HIDE_TIP == nIDEvent) { |
| | | KillTimer(TIMER_HIDE_TIP); |
| | | HideTip(); |
| | | } |
| | | |
| | | CBaseDlg::OnTimer(nIDEvent); |
| | | } |
| | |
| | | |
| | | CBaseDlg::OnClose(); |
| | | } |
| | | |
| | | |
| | | HBRUSH CAxisSettingsDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) |
| | | { |
| | | HBRUSH hbr = CBaseDlg::OnCtlColor(pDC, pWnd, nCtlColor); |
| | | |
| | | int nCtrlID = pWnd->GetDlgCtrlID(); |
| | | if (nCtrlID == IDC_LABEL_TIP) { |
| | | pDC->SetTextColor(m_crTipText); |
| | | pDC->SetBkColor(m_crTipBack); |
| | | if (m_hTipFont == nullptr) { |
| | | HFONT hFontDefault = (HFONT)GetStockObject(DEFAULT_GUI_FONT); |
| | | CFont* pFont = CFont::FromHandle(hFontDefault); |
| | | LOGFONT lf; |
| | | pFont->GetLogFont(&lf); |
| | | lf.lfHeight -= 8; |
| | | m_hTipFont = ::CreateFontIndirect(&lf); |
| | | ::SelectObject(pDC->m_hDC, m_hTipFont); |
| | | } |
| | | |
| | | |
| | | return m_hbrTip; |
| | | } |
| | | |
| | | |
| | | return hbr; |
| | | } |
| | | |
| | | void CAxisSettingsDlg::ShowTipText(const char* pszText, float sec) |
| | | { |
| | | CString strText; |
| | | strText.Format(_T(" * %s"), pszText); |
| | | SetDlgItemText(IDC_LABEL_TIP, strText); |
| | | GetDlgItem(IDC_LABEL_TIP)->ShowWindow(SW_SHOW); |
| | | |
| | | SetTimer(TIMER_HIDE_TIP, (int)(sec * 1000.0), nullptr); |
| | | } |
| | | |
| | | void CAxisSettingsDlg::HideTip() |
| | | { |
| | | GetDlgItem(IDC_LABEL_TIP)->ShowWindow(SW_HIDE); |
| | | } |
| | | |
| | | void CAxisSettingsDlg::OnEnKillfocusEditAxisModitfyMicromentum() |
| | | { |
| | | CString strText; |
| | | GetDlgItemText(IDC_EDIT_AXIS_MODITFY_MICROMENTUM, strText); |
| | | double value = atof(strText); |
| | | if (value < 0.0 || value > 0.1) { |
| | | ShowTipText("微动量值必须在0.0 ~ 0.1之间", 5); |
| | | } |
| | | } |