chenluhua1980
2025-12-11 77115b7f45e9fcc40c8831b857a77ee69751fcef
SourceCode/Bond/Servo/CPageVarialbles.cpp
@@ -32,6 +32,7 @@
   ON_WM_CTLCOLOR()
   ON_WM_DESTROY()
   ON_WM_SIZE()
   ON_NOTIFY(LVN_ITEMCHANGED, IDC_LIST1, &CPageVarialbles::OnLvnItemchangedList1)
END_MESSAGE_MAP()
@@ -139,3 +140,52 @@
   CreateBtn(_T("删除"), BTN_W, BTN_H, 1002)->EnableWindow(FALSE);
   CreateBtn(_T("编辑"), BTN_W, BTN_H, 1003)->EnableWindow(FALSE);
}
void CPageVarialbles::OnLvnItemchangedList1(NMHDR* pNMHDR, LRESULT* pResult)
{
   LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
   int nSelCount = m_listCtrl.GetSelectedCount();
   // 根据选中状态启用/禁用按钮
   if (CButton* pDel = GetBtnByName("删除")) {
      pDel->EnableWindow(nSelCount > 0);
   }
   if (CButton* pEdit = GetBtnByName("编辑")) {
      pEdit->EnableWindow(nSelCount > 0);
   }
   *pResult = 0;
}
void CPageVarialbles::OnClickedBtn(const char* btnName)
{
   ASSERT(btnName);
   if (_strcmpi(btnName, "新增") == 0) {
      // TODO: 新增逻辑
   }
   else if (_strcmpi(btnName, "删除") == 0) {
      POSITION pos = m_listCtrl.GetFirstSelectedItemPosition();
      if (pos == nullptr) return;
      int nItem = m_listCtrl.GetNextSelectedItem(pos);
      auto pVar = reinterpret_cast<SERVO::CVariable*>(m_listCtrl.GetItemData(nItem));
      if (pVar == nullptr) return;
      int rc = UX_CanExecute(L"delVarialbles");
      if (rc != 1) {
         AfxMessageBox("操作权限不足,请联系管理人员!");
         return;
      }
      int ret = theApp.m_model.m_hsmsPassive.deleteVariable(pVar->getVarialbleId());
      if (ret == 0) {
         UX_RecordAction(L"delVarialbles");
         m_listCtrl.DeleteAllItems();
         loadVariables();
         if (CButton* pDel = GetBtnByName("删除")) pDel->EnableWindow(FALSE);
         if (CButton* pEdit = GetBtnByName("编辑")) pEdit->EnableWindow(FALSE);
      }
   }
   else if (_strcmpi(btnName, "编辑") == 0) {
      // TODO: 编辑逻辑
   }
}