// CDaisyReaderDlg dialog
class CDaisyReaderDlg : public CDialog
{
// Dialog Data
//{{AFX_DATA(CDaisyReaderDlg)
enum { IDD = IDD_DAISYREADER_DIALOG };
CTreeCtrl m_dockView;
//}}AFX_DATA
}
//在.cpp文件中设置树结点的数据
BOOL CDaisyReaderDlg::OpenDaisyBooks(CString strPath)
{
//***********省略了
//树向量
vector<HTREEITEM> treeVector;
int i = 0;
//初始化10个标题
for (i=0; i < 10; i++)
{
treeVector.push_back(NULL);
}
//获取当前标题的标题级别
iTitle=Fun_GetTitleType(1);
//将标题按照级别显示在tree中
Fun_GetTitleContent(iTitle,strContent);
treeVector[0] = m_dockView.InsertItem(strContent, TVI_ROOT);//根节点
m_dockView.SetItemData(treeVector[0], (DWORD)1);//将树结点的data设置为标题的index(从1开始)
//往树控件中插入数据
for(i = 2; i<= iTitleNum ; i++)
{
//获取当前标题的标题级别
iTitle=Fun_GetTitleType(i);
//将标题按照级别显示在tree中
Fun_GetTitleContent(i,strContent);
//插入树节点
treeVector[iTitle-1] = m_dockView.InsertItem(strContent, treeVector[iTitle-1-1]);
m_dockView.SetItemData(treeVector[iTitle-1],(DWORD)i);
}
//*****************省略了
return TRUE ;
}
//树控件的点击函数中获取结点数据
void CDaisyReaderDlg::OnTvnSelchangedTree1(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMTREEVIEW pNMTreeView = reinterpret_cast<LPNMTREEVIEW>(pNMHDR);
// TODO: 在此添加控件通知处理程序代码
HTREEITEM ht = m_dockView.GetSelectedItem();
CString strSelect = m_dockView.GetItemText(ht);
int getIndex = (int)m_dockView.GetItemData(ht);//获取了标题的index(从1开始)
UpdateData(FALSE);
*pResult = 0;
}