Console下如何加时间器阿?

blake_lejp 2005-11-02 10:35:45
请教高手
...全文
171 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
raulfan 2005-11-03
  • 打赏
  • 举报
回复
出国还要装作不经意的炫耀一下
binbin 2005-11-03
  • 打赏
  • 举报
回复
呵呵,什么问题把牛人都拉出来了
lftiger9949 2005-11-03
  • 打赏
  • 举报
回复
blueice12 2005-11-03
  • 打赏
  • 举报
回复
楼上正确
shadowstar 2005-11-02
  • 打赏
  • 举报
回复
class TOnTimer {
public
void __fastcall OnTimer(TObject* Sender) {
static int i = 0;
printf("%d\n", ++i);
}
}

int main(int argc, char* argv[])
{
TOnTimer OnTimer;
TTimer* Timer = new TTimer(NULL);
Timer->OnTimer = OnTimer.OnTimer;
...
}
ccrun.com 2005-11-02
  • 打赏
  • 举报
回复
可以使用多媒体定时器

#include "mmsystem.hpp"
#include "stdio.h"

int g_nFlag = 0;
DWORD g_nTimerID;

void CALLBACK TimeProc(
UINT uID,
UINT uMsg,
DWORD dwUser,
DWORD dw1,
DWORD dw2)
{
g_nFlag++;

printf("%d", g_nFlag);
}


int main(int argc, char* argv[])
{
g_nTimerID = timeSetEvent(1000, 0, (LPTIMECALLBACK)TimeProc, 0,
TIME_PERIODIC | TIME_CALLBACK_FUNCTION); // 设定多媒体定时器,1000ms

while(1)
{
if(g_nFlag > 100)
break;
}

if(g_nTimerID != 0)
timeKillEvent(g_nTimerID); // 释放定时器
return 0;
}
Maconel 2005-11-02
  • 打赏
  • 举报
回复
比如下面一个程序,运行时可以看到输出:
1
2
3
...

代码如下:
#include <iostream.h>
#include <windows.h>

int g_nCount = 0;

//让进程处理消息,相当于Application->PrecessMessage();
void PrecessMessage()
{
MSG msg;
PeekMessage(&msg, NULL, 0, 0, PM_REMOVE);
DispatchMessage(&msg);
}

//定时函数
void CALLBACK OnTimer(HWND hwnd, UINT uMsg, UINT idEvent, DWORD dwTim)
{
g_nCount++;
cout << g_nCount << endl;

return;
}

//主函数
int main()
{
unsigned int uId = 1;

//开启定时器
uId = SetTimer(NULL, uId, 100, OnTimer);

//不停循环,以免退出程序,当g_nCount到100了就不在继续
//每次都sleep和PrecessMessage依次,以便OnTimer可以正常执行
while (g_nCount < 100)
{
Sleep(1);
PrecessMessage();
}

//删除定时器
KillTimer(NULL, uId);

return 0;
}
Maconel 2005-11-02
  • 打赏
  • 举报
回复
SetTimer就可以,不一定非要多媒体定时器。
调用SetTimer时,把OnTimer函数传进去就可以了。
kinglh 2005-11-02
  • 打赏
  • 举报
回复
牛人出国了,,
ccrun.com 2005-11-02
  • 打赏
  • 举报
回复
TR老大出国了?呵呵。
TR@SOE 2005-11-02
  • 打赏
  • 举报
回复
关注一下。回国后给代码。

13,873

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧