mfc 时钟 OnTimer 非静态成员函数的非法调用

我想制作一个自动走的时钟,在OnTimer里却出现如下问题,给怎么改?我使用的是vs2013,同学的vc可以正常执行,我的却不可以,不知道为什么... 我想制作一个自动走的时钟,在OnTimer里却出现如下问题,给怎么改?我使用的是vs2013,同学的vc可以正常执行,我的却不可以,不知道为什么 展开
 我来答
bhtzu
2014-03-07 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8088
采纳率:85%
帮助的人:4256万
展开全部
CView一行去掉,不能这样调用。
对话框定时器只需要CDialogEx的基类调用就可以了,不能调用CView的。

你需要的功能是什么?如果是更新对话框界面,那么不需要CView这一行;
如果需要更新View视图界面,更不能这样调用,这样是无效的,你看到这条语句的地方必须是在某个View视图的定时器函数中,因为它的功能只是调用基类的虚函数处理。
更多追问追答
追问
调用CDialogEX为同样的错误
追答

这个OnTimer函数,应该是通过对话框类事件自动添加的,如果你只剩下最后一行,是不会有错误的(除非你其它方法上有问题)。

void CAboutDlg::OnTimer(UINT_PTR nIDEvent)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值

CDialog::OnTimer(nIDEvent);
}

这就是自动添加的代码,运行不会有问题。

归悦欣cf
2014-03-07 · TA获得超过1444个赞
知道大有可为答主
回答量:4250
采纳率:59%
帮助的人:1336万
展开全部
在另一个类里调用了另外一个类的保护成员变量是不可的。除非另外一个类把这个类声明为友元类
追问
能告诉我该如何操作吗?新手不知道如何操作
追答
我看来你的代码,为什么在这里调用
CView::OnTimer(nIDEvent);
调用他没有任何意义,CView::OnTimer(nIDEvent);函数什么都不干,在这里调用他没有任何意义
代码的错误就在这一句
CView::OnTimer(nIDEvent);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我回来了调用
2014-03-07 · TA获得超过388个赞
知道小有建树答主
回答量:772
采纳率:0%
帮助的人:472万
展开全部
CView::OnTimer 改为
::OnTimer试试看
追问
改后还是报错:全局范围没有OnTimer
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式