在MDI中给树控件添加一个item时遇到的问题

yuyuyuxue 2018-04-13 08:17:41
是直接通过向导生成的vs风格的多文档代码。希望在打开一个文件的同时,左边视图增加一个数的节点
doc.cpp中的相关代码
void CMFCApplication1Doc::OnFileOpen()
{
HWND hwnd=FindWindowEx(NULL,NULL,NULL,_T("类视图"));
m_wndClassView1.m_hWnd=hwnd;
HTREEITEM hRoot = m_wndClassView1.InsertItem(_T("123"), 0, 0);
}

程序在这里触发了断点{ ASSERT(::IsWindow(m_hWnd)); return InsertItem(......),请问是哪里出现了问题呢?
...全文
711 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
red-fly 2018-04-16
  • 打赏
  • 举报
回复
引用 2 楼 yuyuyuxue 的回复:
[quote=引用 1 楼 jszj 的回复:] 不需要这样写,在打开文件的函数中 void CMFCApplication1Doc::OnFileOpen() { ... // 打开文件并读取,做你要做的事情,当然如果你本身不需要文件内容,那也可以不去读它 } 在完成文件的打开动作后,所有的视图都会收到一个消息,它会自动调用视图的OnInitUpdate()接口(函数名应该就是这个,如果不对,也差不到哪里去),在这个函数中去更新各自的显示即可
谢谢你的回复,但是我并没有找到你说的这个函数,也没有查阅到相似功能的函数。 就针对我的代码来说,我觉得应该是没有获取的类试图窗口的句柄,才导致inertitem失败,但是却没有找到解决方案[/quote] 函数名叫 OnInitialUpdate(),是一个虚函数,从类的“属性”->"重写"列表中可以找到
schlafenhamster 2018-04-15
  • 打赏
  • 举报
回复
"左边视图" 是分割 窗口 吗? //// CLeftView* CMainFrame::GetLeftPane() { CWnd* pWnd = m_wndSplitter.GetPane(0, 0); CLeftView* pView = DYNAMIC_DOWNCAST(CLeftView,pWnd); return pView; } CMainFrame *pMain=(CMainFrame*)AfxGetMainWnd(); if(!pMain) return;// init if(!IsWindow(pMain->m_hWnd)) return; // CLeftView* pLeftView=pMain->GetLeftPane(); // tree CTreeCtrl& LeftTree=pLeftView->GetTreeCtrl();
red-fly 2018-04-14
  • 打赏
  • 举报
回复
不需要这样写,在打开文件的函数中 void CMFCApplication1Doc::OnFileOpen() { ... // 打开文件并读取,做你要做的事情,当然如果你本身不需要文件内容,那也可以不去读它 } 在完成文件的打开动作后,所有的视图都会收到一个消息,它会自动调用视图的OnInitUpdate()接口(函数名应该就是这个,如果不对,也差不到哪里去),在这个函数中去更新各自的显示即可
zgl7903 2018-04-14
  • 打赏
  • 举报
回复
FindWindowEx 处设置断点, 查看是否搜到窗口?
yuyuyuxue 2018-04-14
  • 打赏
  • 举报
回复
引用 1 楼 jszj 的回复:
不需要这样写,在打开文件的函数中 void CMFCApplication1Doc::OnFileOpen() { ... // 打开文件并读取,做你要做的事情,当然如果你本身不需要文件内容,那也可以不去读它 } 在完成文件的打开动作后,所有的视图都会收到一个消息,它会自动调用视图的OnInitUpdate()接口(函数名应该就是这个,如果不对,也差不到哪里去),在这个函数中去更新各自的显示即可
谢谢你的回复,但是我并没有找到你说的这个函数,也没有查阅到相似功能的函数。 就针对我的代码来说,我觉得应该是没有获取的类试图窗口的句柄,才导致inertitem失败,但是却没有找到解决方案

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧