在win32控制台应用程序中用SetTimer实现定时器的问题。

bazzi2011 bazzi2011 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

class A
{
public:
void static CALLBACK TimeProc(
HWND hwnd,
UINT message,
UINT idTimer,
DWORD dwTime);
};

int main()
{
SetTimer(NULL,1,1000,A::TimeProc);
MSG msg;
while(GetMessage(&msg,NULL,0,0))
{
if(msg.message==WM_TIMER)
{
DispatchMessage(&msg);
}

}
return 0;
}

void CALLBACK A::TimeProc(
HWND hwnd,
UINT message,
UINT idTimer,
DWORD dwTime)
{
cout<<"触发定时器!"<<endl;
}


这是在网上找到的一段win32控制台应用程序实现计时器的代码,代码可以实现。隔一秒输出一次"触发定时器!"

但现在的问题是我想在该函数中实现判断条件,就像mfc中用OnTimer一样,可以

switch (条件)
{
case 1:
cout << "aaa" << endl;
break;
case 2:
cout << "bbb" << endl;
break;
}

但貌似定义的回调中无论UINT message还是 UINT idTimer都不能够当成条件,也就是说我 SetTimer(NULL,1,1000,A::TimeProc);中的第二个参数根本不起作用,根本当不了判断条件。请问应该怎么修改?!!
...全文

相关推荐

评论 4
收藏 已收藏
分享
返回顶部
bazzi2011
C++ 语言 65,214 成员 250,514 内容