chenluhua1980
2026-01-08 e878ac7788fef44639145ffd971ab0eb06d692ad
SourceCode/Bond/EAPSimulator/EAPSimulatorDlg.cpp
@@ -98,6 +98,9 @@
   ON_BN_CLICKED(IDC_BUTTON_QUERY_PJ_SPACE, &CEAPSimulatorDlg::OnBnClickedButtonQueryPjSpace)
   ON_BN_CLICKED(IDC_BUTTON_CREATE_PJ, &CEAPSimulatorDlg::OnBnClickedButtonCreatePj)
   ON_BN_CLICKED(IDC_BUTTON_CREATE_CJ, &CEAPSimulatorDlg::OnBnClickedButtonCreateCj)
   ON_BN_CLICKED(IDC_BUTTON_CTRL_OFFLINE, &CEAPSimulatorDlg::OnBnClickedButtonCtrlOffline)
   ON_BN_CLICKED(IDC_BUTTON_CTRL_ONLINE_LOCAL, &CEAPSimulatorDlg::OnBnClickedButtonCtrlOnlineLocal)
   ON_BN_CLICKED(IDC_BUTTON_CTRL_ONLINE_REMOTE, &CEAPSimulatorDlg::OnBnClickedButtonCtrlOnlineRemote)
END_MESSAGE_MAP()
@@ -191,6 +194,32 @@
         m_hWnd, (HMENU)IDC_BUTTON_PROCEED_WITH_SLOTMAP, AfxGetInstanceHandle(), nullptr);
      if (hBtn != nullptr) {
         ::SendMessage(hBtn, WM_SETFONT, (WPARAM)GetFont()->GetSafeHandle(), TRUE);
      }
   }
   // ControlState test buttons at runtime (resource file is UTF-16, keep it unchanged)
   {
      const int y = 120;
      const int w = 70;
      const int h = 14;
      const int gap = 3;
      struct BtnDef { int x; int id; const TCHAR* text; };
      BtnDef defs[] = {
         { 238, IDC_BUTTON_CTRL_OFFLINE, _T("Ctrl Offline") },
         { 238 + (w + gap), IDC_BUTTON_CTRL_ONLINE_LOCAL, _T("Ctrl Local") },
         { 238 + 2 * (w + gap), IDC_BUTTON_CTRL_ONLINE_REMOTE, _T("Ctrl Remote") },
      };
      for (const auto& d : defs) {
         CRect rc(d.x, y, d.x + w, y + h); // dialog units
         MapDialogRect(&rc);
         HWND hBtn = ::CreateWindow(_T("BUTTON"), d.text,
            WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
            rc.left, rc.top, rc.Width(), rc.Height(),
            m_hWnd, (HMENU)d.id, AfxGetInstanceHandle(), nullptr);
         if (hBtn != nullptr) {
            ::SendMessage(hBtn, WM_SETFONT, (WPARAM)GetFont()->GetSafeHandle(), TRUE);
         }
      }
   }
@@ -307,6 +336,15 @@
   GetDlgItem(IDC_BUTTON_QUERY_PJ_SPACE)->EnableWindow(enabled);
   GetDlgItem(IDC_BUTTON_CREATE_PJ)->EnableWindow(enabled);   
   GetDlgItem(IDC_BUTTON_CREATE_CJ)->EnableWindow(enabled);   
   if (GetDlgItem(IDC_BUTTON_CTRL_OFFLINE) != nullptr) {
      GetDlgItem(IDC_BUTTON_CTRL_OFFLINE)->EnableWindow(enabled);
   }
   if (GetDlgItem(IDC_BUTTON_CTRL_ONLINE_LOCAL) != nullptr) {
      GetDlgItem(IDC_BUTTON_CTRL_ONLINE_LOCAL)->EnableWindow(enabled);
   }
   if (GetDlgItem(IDC_BUTTON_CTRL_ONLINE_REMOTE) != nullptr) {
      GetDlgItem(IDC_BUTTON_CTRL_ONLINE_REMOTE)->EnableWindow(enabled);
   }
}
void CEAPSimulatorDlg::OnBnClickedButtonConnect()
@@ -454,3 +492,20 @@
   std::vector<std::string> processJobIds = {"PJ0001"};
   theApp.m_model.m_pHsmsActive->hsmsCreateControlJob("CJ5007", processJobIds);
}
void CEAPSimulatorDlg::OnBnClickedButtonCtrlOffline()
{
   theApp.m_model.m_pHsmsActive->hsmsRequestOffline();
}
void CEAPSimulatorDlg::OnBnClickedButtonCtrlOnlineLocal()
{
   theApp.m_model.m_pHsmsActive->hsmsRequestOnline();
   theApp.m_model.m_pHsmsActive->hsmsGoLocal();
}
void CEAPSimulatorDlg::OnBnClickedButtonCtrlOnlineRemote()
{
   theApp.m_model.m_pHsmsActive->hsmsRequestOnline();
   theApp.m_model.m_pHsmsActive->hsmsGoRemote();
}