chenluhua1980
2025-12-10 f71f467b68ce6c8dc6c983a2963ec9b131515441
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()
@@ -130,3 +131,54 @@
      m_listCtrl.SetItemText(index, 4, item->getRemark().c_str());
   }
}
void CPageVarialbles::OnCreateBtns()
{
   const int BTN_W = 80;
   const int BTN_H = 28;
   CreateBtn(_T("新增"), BTN_W, BTN_H, 1001);
   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 ret = theApp.m_model.m_hsmsPassive.deleteVariable(pVar->getVarialbleId());
      if (ret == 0) {
         m_listCtrl.DeleteAllItems();
         loadVariables();
         if (CButton* pDel = GetBtnByName("删除")) pDel->EnableWindow(FALSE);
         if (CButton* pEdit = GetBtnByName("编辑")) pEdit->EnableWindow(FALSE);
      }
   }
   else if (_strcmpi(btnName, "编辑") == 0) {
      // TODO: 编辑逻辑
   }
}