有这样的派生关系 CTreeView->CMyTreeView
现在我在类CMyTreeView里利用向导添加了virtual void OnInitialUpdate();函数
然后在某个按钮的响应函数中如下定义
void CMainFrame::OnPre() 
{
// TODO: Add your command handler code here
//改变查询模式
CDicTreeView *pTreeView = (CDicTreeView*)m_wndSplitter.GetPane(0, 0); // 返回第0行第0列的视图指针
pTreeView->OnInitialUpdate();   //更新视图
}
调试程序发现执行到最后一行时程序就转去执行CView里的OnInitialUpdate();函数了,这是为什么呢,我已经在CMyTreeView类
里重新定义OnInitialUpdate();函数了。

解决方案 »

  1.   

    你的CMyTreeView::OnInitialUpdate()里第一句是否是CTreeView::OnInitialUpdate()呢
      

  2.   

    是 第一句是CTreeView::OnInitialUpdate()
      

  3.   

    跟踪程序 它根本就执行不到CMyTreeView::OnInitialUpdate()里去 直接到了CViewOnInitialUpdate()里了
      

  4.   

    我在stdafx.h 多加了#include <afxcview.h> 我看了别人的程序没有这行 和这个有没有关系呢。 现在把这行去掉便宜反而同不过。显示error C2653: 'CTreeView' : is not a class or namespace name类似的错误
      

  5.   

    肯定跟那个是没关系的,CView就是在那些头文件里定义的,去掉那些头文件怎么行呢.那你的那个指针是指的CMyTreeView对象吗?还是CTreeView?如果是前者的话我也不知道为什么.我想可能是执行CMyTreeView::OnUpdate肯定要先执行CTreeView::OnUpdate.反正肯定是哪个地方有问题,可以再仔细找找看,按理说肯定是执行CMyTreeView::ONUpdate的
      

  6.   


    上面那个说错了 和#include <afxcview.h>没有关系就等高手来帮我解决了
      

  7.   

    定义了CDicTreeView *pTreeView 调用CDicTreeView类的其他函数可以,pTreeView指针应该是指向CDicTreeView类的
      

  8.   

    CDicTreeView *pTreeView = (CDicTreeView*)m_wndSplitter.GetPane(0, 0); // 返回第0行第0列的视图指针
    pTreeView->OnInitialUpdate();   //更新视图
    ============不明白你的CDicTreeView哪来的
    试试:
    CMyTreeView *pTreeView = (CMyTreeView*)m_wndSplitter.GetPane(0, 0); // 返回第0行第0列的视图指针
    pTreeView->OnInitialUpdate();   //更新视图