成员函数
函数名称 | 功能 |
---|---|
CTreeCtrlDlg(CWnd* pParent = NULL); | 构造函数 |
void InitTreeFile(); | 初始化树形控件,如果复制或用其他对象初始化时需要调用 |
BOOL SetTreeRoot(const CString strPath); | 设置根目录 |
void SetUnwantedString(const std::vector vecStr); | 设置不想显示的子目录 |
BOOL SetAcceptMsgWnd(const HWND hWnd); | 设置接收消息的窗口句柄 |
CString GetPath(); | 获取当前被选中的目录 |
BOOL SetTreeImageList(CImageList * ImgList, int nImgList); | 设置当前控件目录图标 |
InitTreeFile()
该函数是在通过一个对象来初始化另一个对象或把一个对象赋值给另一个对象后需要调用该函数,以初始化控件。
例如:
CSelfUpdateTreeCtrl * pTreeFile;
pTreeFile = new CSelfUpdateTreeCtrl(m_TreeFile); // m_TreeFile是另一个控件
pTreeFile->Create(TVS_EDITLABELS | TVS_HASBUTTONS | WS_CHILD | WS_VISIBLE,
rect,
this,
IDC_TREE_NODE);
pTreeFile->ShowWindow(SW_SHOWNORMAL);
pTreeFile->InitTreeFile(); // 这里调用初始化函数,初始化控件
SetTreeRoot(const CString strPath)
设置控件根目录,在想要改变控件的根目录或者在创建对象的时候没有提供根目录的时候调用。返回值为BOOL型,如果返回值是TRUE,则成功。如果返回值是FALSE,则失败。
例如:
CSelfUpdateTreeCtrl treeCtrl;
treeCtrl.SetTreeRoot(_T("E:\\"));
SetUnwantedString(const std::vector vecStr)
不想有些目录出现,则可通过该函数设置一些要屏蔽的目录。
例如:
std::vector<CString> vecTemp;
vecTemp.push_back(_T("二值图"));
vecTemp.push_back(_T("缺陷大图"));
vecTemp.push_back(_T("实时图"));
vecTemp.push_back(_T("差影图"));
m_TreeFile.SetTreeRoot(m_strGlobalPath);
m_TreeFile.SetUnwantedString(vecTemp); // 设置不想显示文件夹的字符串
SetAcceptMsgWnd(const HWND hWnd)
如果需要其他窗口响应控件的焦点变化的消息则需要调用该函数来设置接收消息的窗口。而响应的窗口需要响应相关的消息。其消息为:WM_SELFUPDATETREECTRL_SELCHANGED。返回值为BOOL型,如果返回值是TRUE,则成功。如果返回值是FALSE,则失败。
例如:
std::vector<CString> vecTemp;
vecTemp.push_back(_T("二值图"));
vecTemp.push_back(_T("缺陷大图"));
vecTemp.push_back(_T("实时图"));
vecTemp.push_back(_T("差影图"));
m_TreeFile.SetTreeRoot(m_strGlobalPath);
m_TreeFile.SetUnwantedString(vecTemp);
m_TreeFile.SetAcceptMsgWnd(m_hWnd); // 设置接收消息的窗口
GetPath()
该函数是获取当前选中的节点的绝对路径。返回一个CString的,就是路径地址。
例如:
afx_msg LRESULT CBrowseDlg::OnSelfUpdateTreeMsg(WPARAM wParam,LPARAM lParam)
{
LoadInformation(m_TreeFile.GetPath());
return 0;
}
SetTreeImageList(CImageList * ImgList, int nImgList)
设置控件中节点的图标。返回值为BOOL型,如果返回值是TRUE,则成功。如果返回值是FALSE,则失败。
HICON hIcon = theApp.LoadIcon(IDI_ICON_TREEFILE);
CImageList imgList;
imgList.Create(16, 16, ILC_COLOR32, 3, 3);
for (int i = 0; i < 8; i++)
{
imgList.Add(hIcon);
}
m_TreeFile.SetTreeImageList(&imgList, LVSIL_NORMAL);
使用案例
静态案例
声明为类成员变量
// 在头文件中声明为类
CSelfUpdateTreeCtrl m_TreeFile;
// 初始化控件
std::vector<CString> vecTemp;
vecTemp.push_back(_T("