hnettree.cpp
来自「枚举主机网络设备」· C++ 代码 · 共 86 行
CPP
86 行
// HNetTree.cpp : implementation file
//
#include "stdafx.h"
#include "HNetTree.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CHNetTree
CHNetTree::CHNetTree()
{
}
CHNetTree::~CHNetTree()
{
}
BEGIN_MESSAGE_MAP(CHNetTree, CTreeCtrl)
//{{AFX_MSG_MAP(CHNetTree)
ON_NOTIFY_REFLECT(TVN_SELCHANGED, OnSelchanged)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CHNetTree message handlers
void CHNetTree::DeleteChildrenItem(HTREEITEM hItem)
{
HTREEITEM hChildItem=GetChildItem(hItem);
while(hChildItem!=NULL){
HTREEITEM hTmp=hChildItem;
hChildItem=GetNextSiblingItem(hChildItem);
DeleteItem(hTmp);
}
Invalidate();
}
HTREEITEM CHNetTree::GetChildItemByText(HTREEITEM hParent,CString strText)
{
HTREEITEM hChild=GetChildItem(hParent);
while((hChild!=NULL)&&(GetItemText(hChild)!=strText)){
hChild=GetNextSiblingItem(hChild);
}
return hChild;
}
CString CHNetTree::GetPath(HTREEITEM hItem)
{
CString strItemText,strURL;
while(hItem!=NULL){
strItemText=GetItemText(hItem);
strURL=strItemText+"\\"+strURL;
hItem=GetParentItem(hItem);
}
return strURL;
}
void CHNetTree::WhenTreeItemSelected(HTREEITEM hItem)
{
DWORD dwData=GetItemData(hItem);
if(ITEM_DATA_DOMAIN==dwData)
DeleteChildrenItem(hItem);
CWnd *pWnd=GetParent();
if(NULL==pWnd)return;
pWnd->PostMessage(UM_CLK_TREE_ITEM,dwData,
LPARAM(new CTreeItemSelChangedParm(hItem,dwData,GetPath(hItem))));
}
void CHNetTree::OnSelchanged(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
HTREEITEM hSelItem=pNMTreeView->itemNew.hItem;
WhenTreeItemSelected(hSelItem);
*pResult = 0;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?