我有一个树型控件(CTreeCtrl)上面有两层。
..第一章
....第一节当增加“第二章\n 第一节”的时候,便新建一个新的窗口,用来显示第二章第一节的内容。现在的问题是,当章节增多的时候,我怎么通过树型控件,来控制窗口呢?
比如双击树型控件某个Item,能跳到相应的窗口。
..第一章
....第一节当增加“第二章\n 第一节”的时候,便新建一个新的窗口,用来显示第二章第一节的内容。现在的问题是,当章节增多的时候,我怎么通过树型控件,来控制窗口呢?
比如双击树型控件某个Item,能跳到相应的窗口。
CxDialog * pDlg = new CxDialog;
//................
tree.SetItemData(hItem, (DWORD)pDlg);为了方便清除. 最好把这些pDlg放在链表里, 这样删的时候就可以保证删干净了.
CxDialog pDlg = (CxDialog *)tree.GetItemData(hItem);
if(pDlg != NULL && pDlg->IsKindOf(RUNTIME_CLASS(CxDialog)))
{
//处理
}
{
//不处理
}
======================================================
你在对话框中用一个成员变量记录树元素的HTREEITEM. 关闭时就可以删除了.
但同时, 你还要delete掉对话框对象. 有点麻烦.
void CMyDlg::OnClose()
{
CDialog::OnClose();
}你直接从链表中删除就行了,使用链表就是为了方便管理那些对话框。