网站首页
IC库存
IC展台
电子资讯
技术资料
PDF文档
我的博客
IC72论坛
ic72 logo
资料首页最新产品 技术参数 电路图 设计应用 解决方案 代理商查询 IC替换 IC厂商 电子辞典
关键字: 技术文章 PDF资料 IC价格 电路图 代理商查询 IC替换 IC厂商 电子辞典

Win32控制台程序的定时器实现

    在控制台中使用定时器不能简单的SetTimer了事,这在控制台里这种SetTimer的方式是有点麻烦的,需要自己写消息循环投递WM_TIMER消息。其实在控制台里可以使用多媒体时钟来计时:

    example:

    //启动计时器

    MMRESULT nIDTimerEvent = timeSetEvent(

    1000,//延时1秒

    0,

    TimeProc,

    0,

    (UINT)TIME_PERIODIC);

    if( nIDTimerEvent == 0 )

    cout《《“启动计时器失败”《《endl;

    //回调过程(时钟到来,回调函数被系统自动调用)

    void CALLBACK TimeProc(

    UINT uID,

    UINT uMsg,

    DWORD dwUser,

    DWORD dw1,

    DWORD dw2

    )

    {

    cout《《“时钟到来”《《endl;

    }

    当然了,你要是习惯于SetTimer,那就用SetTimer吧:

    下面是我在Console下用SetTimer写的一个例子:

    #include 《windows.h》

    #include 《iostream》

    using namespace std;

    void CALLBACK TimeProc(

    HWND hwnd,

    UINT message,

    UINT idTimer,

    DWORD dwTime);

    int main()

    {

    SetTimer(NULL,1,1000,TimeProc);

    MSG msg;

    while(GetMessage(&msg,NULL,0,0))

    {

    if(msg.message==WM_TIMER)

    {

    DispatchMessage(&msg);

    }

    }

    return 0;

    }

    void CALLBACK TimeProc(

    HWND hwnd,

    UINT message,

    UINT idTimer,

    DWORD dwTime)

    {

    cout《《“a timer comming”《《endl;

    }

热门搜索:BTS412B2E3062A 2839211 TLP712B PS361220 TLM615SA N060-004 SS480806 BT05-F250H-03 SS361220 TRAVELER3USB TLP1210SATG B30-8000-PCB RBC11A SBB830-QTY10 UL24CB-15 PDU12IEC 2839237 01C5001JF SBB2808-1 2838283 PS3612 LCR2400 TLP808TEL 2866352 2866666
COPYRIGHT:(1998-2010) IC72 达普IC芯片交易网
客户服务:service@IC72.com 库存上载:IC72@IC72.com
(北京)联系方式: 在线QQ咨询:点击这里给我发消息 联系电话:010-82614113 传真:010-82614123
京ICP备06008810号-21 京公网安备 11010802032910 号 企业资质