发信人: skyice()
整理人: wenbobo(2002-12-27 15:57:09), 站内信件
|
可以实现 1 毫秒级的定时
//-----------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "mmsystem.h"
#define MilliSecond 1
#define Accuracy 1
#define Min(x,y) ((x<y)?x:y)
#define Max(x,y) ((x>y)?x:y)
#include "HighTimer.h"
//-----------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
UINT TimerID;
int count;
int TimerAccuracy;
TForm1 *Form1;
//-----------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//-----------------------------------------------------
void PASCAL TimerCallProc(UINT TimerID,UINT msg,
DWORD dwUser,DWORD dwa,DWORD dwb)
{
count++;
Form1->Edit1->Text=count;
}
//-----------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TIMECAPS timecaps;
int TimerResolution;
if(timeGetDevCaps(&timecaps,sizeof(TIMECAPS))
==TIMERR_NOERROR)
TimerAccuracy=Min(Max(timecaps.wPeriodMin,
Accuracy),timecaps.wPeriodMax);
timeBeginPeriod(TimerAccuracy);
TimerResolution=1;
TimerID=timeSetEvent(TimerResolution,TimerAccuracy,
&TimerCallProc,1,TIME_PERIODIC);
}
//-----------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
timeKillEvent(TimerID);
timeEndPeriod(TimerAccuracy);
}
//-----------------------------------------------------
-- 欢迎您到C语言版来!
※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.99.80.146]
|
|