LAPTOP-SNT8I5JK\Boounion
2025-03-10 25bce5c9eaeddb5e2a28ed6b0d7c70c4903ab258
SourceCode/Bond/Servo/CPanelMaster.cpp
@@ -38,6 +38,7 @@
   ON_WM_SIZE()
   ON_NOTIFY(BYVERTICALLINE_MOVEX, IDC_LINE1, &CPanelMaster::OnVLineMoveX)
   ON_WM_TIMER()
   ON_NOTIFY(TVN_SELCHANGED, IDC_TREE1, &CPanelMaster::OnTvnSelchangedTree1)
END_MESSAGE_MAP()
@@ -174,3 +175,33 @@
   }
}
void CPanelMaster::OnTvnSelchangedTree1(NMHDR* pNMHDR, LRESULT* pResult)
{
   LPNMTREEVIEW pNMTreeView = reinterpret_cast<LPNMTREEVIEW>(pNMHDR);
   HTREEITEM hItem = pNMTreeView->itemNew.hItem;
   int nLevel = GetTreeItemLevel(hItem);
   if (nLevel == 2) {
      SERVO::CEquipment* pEquipment = (SERVO::CEquipment*)m_treeCtrl.GetItemData(hItem);
      theApp.m_model.notifyPtr(RX_CODE_SELECT_EQUIPMENT, pEquipment);
   }
   else if (nLevel == 3) {
      SERVO::CStep* pStep = (SERVO::CStep*)m_treeCtrl.GetItemData(hItem);
      theApp.m_model.notifyPtr(RX_CODE_SELECT_STEP, pStep);
   }
   *pResult = 0;
}
int CPanelMaster::GetTreeItemLevel(HTREEITEM hItem)
{
   int nLevel = 0;
   HTREEITEM hTemp = hItem;
   while (hTemp != nullptr) {
      hTemp = m_treeCtrl.GetParentItem(hTemp);
      nLevel++;
   }
   return nLevel;
}