您的位置:首页 > 其它

关于settimer的一些新认识

2012-04-02 11:11 239 查看
原来在MFC下用过一些settimer函数
公司让在控制台下应用,当时人文settimer跟硬件中断时一样的,所以写了如下函数:
#include
#include
#include
UINT_PTR htimer_controll;
VOID CALLBACK TimerProc_controll(HWND hwnd, UINT message, UINT iTimerID, DWORD dwTime) ;
int main(int argc, char **argv)
{
htimer_controll = ::SetTimer(NULL,1,1000,TimerProc_controll);
while(1);

return 0;
}

VOID CALLBACK TimerProc_controll(HWND hwnd, UINT message, UINT iTimerID, DWORD dwTime)
{
printf("a");

}
结果不好使,查阅资料+问论坛的人;
解答问settimer为消息函数,是给windows发消息的,然后windows用消息通知回调函数,进行处理;
所以加上
MSG msg;
while(GetMessage(&msg,NULL,0,0))
{
if(msg.message==WM_TIMER)
{
DispatchMessage(&msg);
}
}
就好了,不过问题又出现了,消息是基于界面存在的,在控制台下怎么能用呢?
CSDN大牛说:
“控制台也是界面,不过比较原始。
控制台和图形界面没啥区别,我也不知道把图形嵌入内核的windows为什么还要保留控制台。

对控制台也是界面--所以可以用的”
settimer在控制台下的另一种写法:非常实用http://blog.163.com/tangmin927@126/blog/static/31537494200961534820781/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: