VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 787|回复: 8

谁能帮我看看这个问题 想了半天也不知道为什么 急!

[复制链接]

1

主题

6

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-1-17 14:00:01 | 显示全部楼层 |阅读模式
有这样的派生关系 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();函数了。
回复

使用道具 举报

2

主题

20

帖子

12.00

积分

新手上路

Rank: 1

积分
12.00
发表于 2020-1-22 18:18:01 | 显示全部楼层
你的CMyTreeView::OnInitialUpdate()里第一句是否是CTreeView::OnInitialUpdate()呢
回复

使用道具 举报

1

主题

6

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
 楼主| 发表于 2020-1-22 18:45:02 | 显示全部楼层
是 第一句是CTreeView::OnInitialUpdate()
回复

使用道具 举报

1

主题

6

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
 楼主| 发表于 2020-1-22 19:00:02 | 显示全部楼层
跟踪程序 它根本就执行不到CMyTreeView::OnInitialUpdate()里去 直接到了CViewOnInitialUpdate()里了
回复

使用道具 举报

1

主题

6

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
 楼主| 发表于 2020-1-22 20:45:01 | 显示全部楼层
我在stdafx.h 多加了#include <afxcview.h> 我看了别人的程序没有这行 和这个有没有关系呢。 现在把这行去掉便宜反而同不过。显示error C2653: 'CTreeView' : is not a class or namespace name类似的错误
回复

使用道具 举报

2

主题

20

帖子

12.00

积分

新手上路

Rank: 1

积分
12.00
发表于 2020-1-23 06:00:01 | 显示全部楼层
肯定跟那个是没关系的,CView就是在那些头文件里定义的,去掉那些头文件怎么行呢.那你的那个指针是指的CMyTreeView对象吗?还是CTreeView?如果是前者的话我也不知道为什么.我想可能是执行CMyTreeView::OnUpdate肯定要先执行CTreeView::OnUpdate.反正肯定是哪个地方有问题,可以再仔细找找看,按理说肯定是执行CMyTreeView::ONUpdate的
回复

使用道具 举报

1

主题

6

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
 楼主| 发表于 2020-1-23 09:09:01 | 显示全部楼层

上面那个说错了 和#include <afxcview.h>没有关系

就等高手来帮我解决了
回复

使用道具 举报

1

主题

6

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
 楼主| 发表于 2020-1-23 09:45:01 | 显示全部楼层
定义了CDicTreeView *pTreeView 调用CDicTreeView类的其他函数可以,pTreeView指针应该是指向CDicTreeView类的
回复

使用道具 举报

0

主题

25

帖子

14.00

积分

新手上路

Rank: 1

积分
14.00
发表于 2020-1-23 10:00:01 | 显示全部楼层
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();   //更新视图
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表