指定されたタイムアウト値を持つタイマーを作成します。
UINT_PTR SetTimer( HWND hWnd, // window handle UINT_PTR nIDEvent, // timer ID UINT uElapse, // time-out value TIMERPROC pTimerFunc // callback function );
USER32.DLL
タイマーを関連付けるウィンドウのハンドルを指定します。このウィンドウは呼び出しスレッドが所有するウィンドウでなければいけません。
このパラメータに0 (NULL) を指定すると、ウィンドウがタイマーに関連付けられません。このとき、nIDEventパラメータは無視されます。
0以外のタイマーIDを指定します。
hWndパラメータに0 (NULL) を指定すると、このパラメータは無視されます。hWndパラメータが0 (NULL) 以外で、hWndが指すウィンドウにタイマーIDがnIDEventであるタイマーが既に存在する場合には、既存のタイマーが新しいタイマーに置き換えられます。タイマーが置き換えられると、そのタイマーはリセットされます。そのため、メッセージは新しいタイムアウト値が経過した後に送信されます。以前に設定されていたタイムアウト値は無視されます。
タイムアウト値をミリ秒単位で指定します。
Windows NT/2000/XP: このパラメータが0x7fffffffより大きい場合、タイムアウト値は1に設定されます。
Windows 2000/XP: このパラメータが10未満の場合、タイムアウト値は10に設定されます。
Windows Server 2003: このパラメータが0x7fffffffより大きい場合、タイムアウト値は0x7fffffffに設定されます。
タイムアウト値が経過した際に通知されるTimerProcコールバック関数へのポインタを指定します。
このパラメータに0 (NULL) を指定すると、システムはアプリケーションキューに メッセージをポストします。このメッセージのMSG構造体のhwndメンバにはhWndパラメータの値が格納されます。
hWndに0 (NULL) を指定し、関数が成功すると、戻り値として新しいタイマーを識別する整数値が返ります。アプリケーションはKillTimer関数にこの値を渡してタイマーを破棄することができます。
hWndに0 (NULL) 以外の値を指定し、関数が成功すると、戻り値として0以外の整数値が返ります。アプリケーションはKillTimer関数にnIDEventパラメータの値を渡してタイマーを破棄することができます。
タイマーの作成に失敗すると、戻り値として0が返ります。拡張エラー情報を取得するには、GetLastError関数を使います。
アプリケーションはウィンドウプロシージャでTimerProcコールバック関数を指定することにより、タイマーメッセージを処理することができます。TimerProcコールバック関数を指定すると、デフォルトウィンドウプロシージャが メッセージを処理する際にコールバック関数が呼び出されます。そのため、 メッセージを処理せずにTimerProcコールバック関数を使用する場合でも、呼び出しスレッドでメッセージをディスパッチする必要があります。
メッセージに対する処理を記述することにより、もしくはタイマー作成時にメッセージのwParamパラメータには、この関数のnIDEventパラメータの値が指定されます。
nIDEventパラメータのタイマーIDは、関連付けられるウィンドウごとに固有の値です。ウィンドウは、他のウィンドウが所有するタイマーのIDと同じタイマーIDを持つタイマーを所有することができます。
hWndパラメータが0 (NULL) の場合、システムがタイマーIDを再利用する可能性があります。
Windows 95 以降 / Windows NT 3.1 以降