关于settimer的一些新认识

原来在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/

你可能感兴趣的:(timer)