发信人: 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]
  | 
 
 
 |