Google

東海大学理学部物理学科素粒子理論・安江研究室  

ホーム 最新情報 サイトマップ

時間

上へ ウィンドウズ カーソル メッセージの種類 描画・色 長方形領域 文字情報 時間 仮想キーコード

WM_TIMER

定期的にここに着きます。間隔はSetTimer関数で指定されます。また処理専用関数が指定されているときにはその関数のアドレスも送られてきます。

  • wParam: 画幾つかのタイマーを起動してあるときのタイマー識別子(1から始めます)。
  • lParam: 処理専用関数のアドレス
    • TimerFunc = (TIMERPROC *)lParam;
8節へ戻る

UINT SetTimer(HWND hWnd, UINT nIDEvent, UINT uElapse, TIMERPROC lpTimerFunc)

タイマーを起動します。成功するとタイマー識別番号を返します。hWndがNULLのときはこの返された識別番号を指定します。

  • hWnd:タイマーを設定するウィンドウズの名札
  • nIDEvent: タイマー識別番号を指定します(1から始めます)
  • uElapse: タイマーの刻み間隔をミリ秒単位で指定します(1000ミリ秒=1秒)
  • lpTimerFunc: 一定時間に処理を実行する関数のアドレスを指定します。決まった引数を持ちますが関数名は自分で付けます。ここではTimerProc関数とします。

使用しなくなったらKillTimer関数でタイマーを破棄します。

VOID CALLBACK TimerProc(HWND hwnd, UINT uMsg, UINT idEvent, DWORD dwTime)

  • hwnd: タイマーを設定するウィンドウズの名札
  • uMsg: WM_TIMERを指定
  • idEvent: タイマー識別番号
  • dwTime: システムの起動時よりの経過時間。内部でGetTickCount関数が使用されています。
5節へ戻る

UINT KillTimer(HWND hWnd, UINT idEvent)

指定されたタイマーを破棄します。

  • hwnd: タイマーを設定するウィンドウズの名札
  • idEvent: タイマー識別番号。SetTimer 関数で有効なウィンドウハンドルを渡したときは、SetTimer 関数の uIDEvent パラメータで渡したタイマー ID を指定しなければなりません。SetTimer 関数で hWndパラメータに NULL を指定したときは、SetTimer 関数が返したタイマー ID を指定しなければなりません。

使用例

//タイマー開始(idTimer値が異なれば、システムの許す限りいくつでもタイマーが起動できます)
SetTimer(hWnd, idTimer, 100, &TimerProc); //タイマー処理関数:TimerProcの番地
//タイマー破棄(終了時にはdTimerのすべての値を用いて破棄します)
KillTimer(hWnd, idTimer);
5節へ戻る
8節へ戻る
10節へ戻る

DWORD GetTickCount(VOID)

システム(OS)起動時よりの経過時間をミリ秒単位でおしえてくれます。経過時間はDWORD(=unsigned long)なので最大の正の数のミリ秒の約49.7日でゼロに戻ります。

  • Windows NT 3.5以降:約10ミリ秒ごとにカウント
  • Windows NT 3.1:約16ミリ秒ごとにカウント
  • Windows 95 以降:約55ミリ秒ごとにカウント

また、Windows NTでは、コンピュータの起動時よりの経過時間はレジストリ内のHKEY_PERFORMANCE_DATAキーに8バイトの値として書かれています。

SYSTEMTIME

SYSTEMTIME 構造体は、月、日、年、曜日、時、分、秒、ミリ秒の各メンバを使用し日付と時間を表します:

  • LPSYSTEMTIMESYSTEMTIME * (Win32)
  • SYSTEMTIME st; ⇒ LPSYSTEMTIME lpst = &st;
typedef struct _SYSTEMTIME{
WORD wYear;
LONG wMonth;
LONG wDayOfWeek;
LONG wDay;
LONG wHour;
LONG wMinute;
LONG wSecond;
LONG wMilliseconds;
} SYSTEMTIME
  • wYear:現在年
  • wMonth:現在月。1 月は 1 です
  • wDayOfWeek:現在の曜日。日曜が 0、月曜が 1、というように表します
  • wDay:現在日
  • wHour:現在時
  • wMinute:現在分
  • wSecond:現在秒
  • wMilliseconds:現在のミリ秒

この構造体を利用するとGetLocalTime関数を使って現在の時間を知ることができる

VOID GetLocalTime(LPSYSTEMTIME lpst)

現在のローカル日時を取得します。

  • lpst:日時を格納するためのSYSTEMTIME構造体のアドレス

使用例

SYSTEMTIME st;
GetLocalTime(&st);
 

前へ ホーム 上へ 次へ

このWeb サイトではインターネットエクスプローラVer.3.0あるいはそれ以上が推奨です Internet Explorer
この Web サイト(since 1997年12月1日)に関する質問やコメントについては、Mail.gif (4196 バイト)安江 まで電子メールをお送りください。
Copyright © 1997-2022/10 東海大学理学部物理学科安江研究室 All rights reserved
最終更新日: 2022年10月14日
マイクロソフト Front Page98