关于SetTimer,调用函数不执行

interTime=10;我定义了一个时钟:SetTimer(NULL,NULL,interTime,MyTimerProc)MyTimerProc函数如下:VOIDCA... interTime = 10;
我定义了一个时钟 :SetTimer(NULL,NULL, interTime, MyTimerProc)
MyTimerProc函数如下:VOID CALLBACK MyTimerProc(
HWND hwnd, // handle of window for timer messages
UINT uMsg, // WM_TIMER message
UINT idEvent, // timer identifier
DWORD dwTime // current system time
)
{
cerr <<"rabbit , I love you!\n"<<endl;
AfxMessageBox("rabbit");
}

时钟设置正确,但有时候会定时执行函数,有时候不会?
为什么?
完全代码如下:

#include <stdio.h>
#include <iostream.h>
#include <fstream.h>
#include <stdlib.h>
#include <string.h>
//#include <Afxcoll.h>
#include <windows.h>
#include <winuser.h>
//#include <StdAfx.h>

VOID CALLBACK myFunc(
HWND hwnd, // handle of window for timer messages
UINT uMsg, // WM_TIMER message
UINT idEvent, // timer identifier
DWORD dwTime // current system time
)
{
cerr <<"rabbit , I love you!\n"<<endl;
// printf("rabbit , I love you!\n");
// AfxMessageBox("rabbit , I love you!");
}

int main()
{
UINT interTime = 100;
cerr<<SetTimer(NULL,NULL, interTime,(TIMERPROC)myFunc)<<endl;
Sleep(100000);
return 0;
}
展开
 我来答
epmhm
2010-07-15 · TA获得超过112个赞
知道小有建树答主
回答量:109
采纳率:0%
帮助的人:157万
展开全部
你好,关于你的问题,我也不太清楚原因,所以我也尝试着去写了一个程序验证一下,结果并没有出现你所说的情况。代码几乎跟你一样。而对于gww1bd 的回答,我则不同意,MSDN里有讲到如果第一个参数是空的,则第二个参数会被忽略。
而我又看到这么一段话:When you specify a TimerProc callback function, the default window procedure calls the callback function when it processes WM_TIMER. Therefore, you need to dispatch messages in the calling thread, even when you use TimerProc instead of processing WM_TIMER.
你可以尝试着去调用LRESULT DispatchMessage(
CONST MSG *lpmsg // message information
);
If the lpmsg parameter points to a WM_TIMER message and the lParam parameter of the WM_TIMER message is not NULL, lParam points to a function that is called instead of the window procedure.
你先试试 ,不行的话再联系我。
gww1bd
2010-07-15 · TA获得超过303个赞
知道小有建树答主
回答量:154
采纳率:0%
帮助的人:0
展开全部
msdn文档说SetTimer第2个参数必须是个非0值。
你试试SetTimer(NULL,1, interTime, MyTimerProc);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
艰难用心书b
2010-07-15
知道答主
回答量:25
采纳率:0%
帮助的人:9.6万
展开全部
回调函数的事吧 这么看 不好说 帖全点吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式