环境:MFC 多文档 (SDI)
问题:在TreeView的派生类(此类是我新建的,不是自动创建的,因此没有OnDraw等函数)中,
用create动态创建TreeCtrl后,用insertitem可插入根节点(有显示),
但无法插入子节点(无显示)。求解。
源码:
int CFileView::OnCreate(LPCREATESTRUCT lpCreateStruct) // 此函数为我自己添加的消息响应
{
if (CTreeView::OnCreate(lpCreateStruct) == -1)
return -1; // TODO: 在此添加您专用的创建代码
CTreeCtrl* m_TreeCtrl = new CTreeCtrl; // 注意,我没在头文件中定义CTreeCtrl m_TreeCtrl !
m_TreeCtrl->Create(WS_VISIBLE | TVS_HASLINES,
CRect(10,10,80,100),this,IDC_TREECTRL); // 若不加WS_VISIBLE 则连根节点都无法显示!
// IDC_TREECTRL为在resource.h中自定义的值 // 在根节点上添加“文件”
HTREEITEM hItem, hSubItem;
hItem = m_TreeCtrl->InsertItem(_T("文件"),TVI_ROOT,TVI_FIRST);
// 添加根节点的第一级子节点
hSubItem = m_TreeCtrl->InsertItem(_T("项目文件"),hItem,TVI_LAST);
// 继续添加第一级子节点,排在上一子节点的后面
hSubItem = m_TreeCtrl->InsertItem(_T("工程文件"),hItem,hSubItem);
return 0;
}运行结果: 在视图中只有 “文件” 没有“+”没有子节点
问题:在TreeView的派生类(此类是我新建的,不是自动创建的,因此没有OnDraw等函数)中,
用create动态创建TreeCtrl后,用insertitem可插入根节点(有显示),
但无法插入子节点(无显示)。求解。
源码:
int CFileView::OnCreate(LPCREATESTRUCT lpCreateStruct) // 此函数为我自己添加的消息响应
{
if (CTreeView::OnCreate(lpCreateStruct) == -1)
return -1; // TODO: 在此添加您专用的创建代码
CTreeCtrl* m_TreeCtrl = new CTreeCtrl; // 注意,我没在头文件中定义CTreeCtrl m_TreeCtrl !
m_TreeCtrl->Create(WS_VISIBLE | TVS_HASLINES,
CRect(10,10,80,100),this,IDC_TREECTRL); // 若不加WS_VISIBLE 则连根节点都无法显示!
// IDC_TREECTRL为在resource.h中自定义的值 // 在根节点上添加“文件”
HTREEITEM hItem, hSubItem;
hItem = m_TreeCtrl->InsertItem(_T("文件"),TVI_ROOT,TVI_FIRST);
// 添加根节点的第一级子节点
hSubItem = m_TreeCtrl->InsertItem(_T("项目文件"),hItem,TVI_LAST);
// 继续添加第一级子节点,排在上一子节点的后面
hSubItem = m_TreeCtrl->InsertItem(_T("工程文件"),hItem,hSubItem);
return 0;
}运行结果: 在视图中只有 “文件” 没有“+”没有子节点
解决方案 »
- vc++ 加了加入GDIPlus.lib链接库有关问题
- VC圆角矩形
- 用WinIo读写CMOS出错问题
- cview类与CDC类
- 图片存储
- micr0soft(威远)请进。
- 控件、分割窗口的样式
- post提交用户名密码登录某网站,成功返回cookie数据包,但是出现如下的问题,不知怎么解决
- 为什么GetFocus()取得ClassName总是"CTempWnd",而不是不同焦点时,返回不同类名?拜托!
- ado操作数据库问题,多谢指教!
- HomeRes.exe 中的 0x7c80bef7 处有未经处理的异常: Microsoft C++ 异常: 内存位置 0x0012f218 处的 _com_e
- VC MFC Mscomm控件 串口通信 如何实现奇偶校验
m_TreeCtrl->Expand(hItem,TVE_EXPAND);//展开根结点
请问哪里出错了。。