首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

定时器回调函数传递参数的难题解决办法

2012-03-14 
定时器回调函数传递参数的难题现在在一个控制台程序中使用定时器,这个在网上也有实例,但是问题是,我希望在

定时器回调函数传递参数的难题
现在在一个控制台程序中使用定时器,这个在网上也有实例,但是问题是,我希望在自定义的定时器回调函数中访问一个对象,但是如何将这个对象指针传递给定时器回调函数?


 

[解决办法]
本身WM_TIMER的wparam与lparam都是有用的,你没必要传递,使用全局的变量、类、结构体即可。
[解决办法]
你在该类内定义一个定时器
[解决办法]

C/C++ code
UINT_PTR SetTimer(    HWND hWnd,    UINT_PTR nIDEvent,    UINT uElapse,    TIMERPROC lpTimerFunc);lpTimerFunc的原型为VOID CALLBACK TimerProc(    HWND hwnd,    UINT uMsg,    UINT_PTR idEvent,    DWORD dwTime);
[解决办法]
既然是多个线程,为什么要在定时器里处理,的确,我一般遇到的代码都是如LS所述,ID传指针,但是我个人认为还不如自己阻塞来得好。
[解决办法]
自己阻塞就是写死循环,不到时间不退出。

DWORD dw1 = GetTickCount();
while(GetTickCount()-dw1 < 100);
//100ms后

热点排行