mrDarker
2025-10-22 e8a27bb203fe2aff70390a5eca002d7438da9b0f
SourceCode/Bond/BoounionPLC/PlcView.cpp
@@ -19,12 +19,18 @@
   for (int i = 0; i < BTN_MAX; i++) {
      m_pBlBtns[i] = new CBlButton();
   }
   m_crPlcNameBack = RGB(228, 228, 228);
}
CPlcView::~CPlcView()
{
   for (int i = 0; i < BTN_MAX; i++) {
      delete m_pBlBtns[i];
   }
   if (m_hbrPlcName != nullptr) {
      ::DeleteObject(m_hbrPlcName);
      m_hbrPlcName = nullptr;
   }
}
@@ -45,6 +51,7 @@
   ON_BN_CLICKED(IDC_BUTTON_SOUND_OFF, &CPlcView::OnBnClickedButtonSoundOff)
   ON_BN_CLICKED(IDC_BUTTON_RESETTING, &CPlcView::OnBnClickedButtonResetting)
   ON_BN_CLICKED(IDC_BUTTON_STOP, &CPlcView::OnBnClickedButtonStop)
   ON_WM_TIMER()
END_MESSAGE_MAP()
// CComponentData1Dlg 消息处理程序
@@ -275,6 +282,9 @@
   SetDlgItemText(IDC_EDIT_DAY_SHIFT_CAPACITY, _T("0"));
   SetDlgItemText(IDC_EDIT_NIGHT_SHIFT_CAPACITY, _T("0"));
   SetTimer(1, 1000, nullptr);
   return TRUE;  // return TRUE unless you set the focus to a control
              // 异常: OCX 属性页应返回 FALSE
}
@@ -282,9 +292,16 @@
HBRUSH CPlcView::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
   HBRUSH hbr = CBaseView::OnCtlColor(pDC, pWnd, nCtlColor);
   int nCtrlId = pWnd->GetDlgCtrlID();
   if (nCtlColor == CTLCOLOR_STATIC) {
      pDC->SetBkColor(m_crBkgnd);
   }
   if (IDC_LABEL_PLC_NAME == nCtrlId) {
      pDC->SetBkColor(m_crPlcNameBack);
      m_hbrPlcName = CreateSolidBrush(m_crPlcNameBack);
      return m_hbrPlcName;
   }
   if (m_hbrBkgnd == nullptr) {
@@ -360,4 +377,22 @@
{
   // TODO: 在此添加控件通知处理程序代码
   HandleOperation(OperationType::STOP);
}
}
void CPlcView::OnTimer(UINT_PTR nIDEvent)
{
   if (1 == nIDEvent) {
      ASSERT(m_pContext);
      CPLC* pPlc = ((CPLC*)m_pContext);
      CString strText;
      strText.Format(_T("%d %s"), pPlc->getVelocityRatio(), _T("%"));
      GetDlgItem(IDC_EDIT_VELOCITY_RATIO)->SetWindowText(strText);
      strText.Format(_T("%.2f"), pPlc->getTackTime() * 0.01);
      GetDlgItem(IDC_EDIT_TACT_TIME)->SetWindowText(strText);
      SetDlgItemInt(IDC_EDIT_DAY_SHIFT_CAPACITY, pPlc->getDayShiftCapacity());
      SetDlgItemInt(IDC_EDIT_NIGHT_SHIFT_CAPACITY, pPlc->getNightShiftCapacity());
   }
   CBaseView::OnTimer(nIDEvent);
}