SetTimer(タイマー)のいくつかの使い方
2022-02-16 15:54:37
UINT_PTR SetTimer(
HWND hWnd, // ウィンドウのハンドル
UINT_PTR nIDEvent, // タイマーID。複数のタイマーがある場合に、どのタイマーを使用するかを決定するために使用されることがあります。
UINT nElapse, // 時間間隔、ミリ秒単位
TIMERPROC lpTimerFunc // コールバック関数
);
戻り値
型:UINT_PTR
この関数が成功し、hWndパラメータが0であれば、新しく作成されたクロック番号が返され、それをKillTimerに渡してクロックを破壊することができます。
この関数が成功し、hWndパラメータが0以外の場合、0以外の整数が返され、これをKillTimerに渡すことでクロックを破壊することができます。
関数が失敗した場合、戻り値は0です。エラーの詳細情報を得るには、GetLastError 関数を呼び出します。
TIMERPROC lpTimerFunc // コールバック関数が呼び出せるようにしておく。試してみてください、私も試していません
方法1
これは、Windowsがアプリケーションの通常のウィンドウメッセージハンドラにWM_TIMERメッセージを送信する最も便利な方法の1つで、SetTimerの呼び出しは次のようになります。
SetTimer (hwnd, 1, uiMsecInterval, NULL) ;
最初のパラメータは、WM_TIMER メッセージを受信するウィンドウメッセージハンドラのウィンドウハンドルです。2番目のパラメータはタイマーIDで、0以外の値で、この例では1と仮定しています。3番目のパラメータは32ビットの整数で、プラスもマイナスもなく、ミリ秒単位で時間間隔を指定し、6万という値はWindowsに1分間に1回WM_TIMERメッセージを送信させます。
間隔を指定するには
KillTimer (hwnd, 1) ;
方法2
タイマーを設定する最初の方法は、WM_TIMERメッセージを通常のウィンドウメッセージハンドラーに送る方法です。一方、2番目の方法は、Windowsがタイマーメッセージをプログラムの別の関数に直接送る方法です。
SetTimer (hwnd, iTimerID, iMsecInterval, TimerProc) ;
方法3
3番目のタイマー設定方法は、2番目の方法と似ていますが、SetTimerに渡されるhwndパラメータをNULLに設定し、2番目のパラメータ(通常はタイマーID)を無視し、最後にこの関数が次のようにタイマーIDを返します。
iTimerID = SetTimer (NULL, 0, wMsecInterval, TimerProc) ;
利用可能なタイマーがない場合、SetTimerから戻されるiTimerIDの値はNULLになります。
KillTimerの最初のパラメータ(通常はウィンドウ・ハンドル)もNULLでなければならず、タイマーIDはSetTimer:から戻される値でなければなりません。
KillTimer (NULL, iTimerID) ;
注:タイマーはメッセージを受け取るスレッドキューに依存するため、SetTimer関数を呼び出すスレッドが存在する必要があります。
HWND hWnd, // ウィンドウのハンドル
UINT_PTR nIDEvent, // タイマーID。複数のタイマーがある場合に、どのタイマーを使用するかを決定するために使用されることがあります。
UINT nElapse, // 時間間隔、ミリ秒単位
TIMERPROC lpTimerFunc // コールバック関数
);
戻り値
型:UINT_PTR
この関数が成功し、hWndパラメータが0であれば、新しく作成されたクロック番号が返され、それをKillTimerに渡してクロックを破壊することができます。
この関数が成功し、hWndパラメータが0以外の場合、0以外の整数が返され、これをKillTimerに渡すことでクロックを破壊することができます。
関数が失敗した場合、戻り値は0です。エラーの詳細情報を得るには、GetLastError 関数を呼び出します。
TIMERPROC lpTimerFunc // コールバック関数が呼び出せるようにしておく。試してみてください、私も試していません
方法1
これは、Windowsがアプリケーションの通常のウィンドウメッセージハンドラにWM_TIMERメッセージを送信する最も便利な方法の1つで、SetTimerの呼び出しは次のようになります。
SetTimer (hwnd, 1, uiMsecInterval, NULL) ;
最初のパラメータは、WM_TIMER メッセージを受信するウィンドウメッセージハンドラのウィンドウハンドルです。2番目のパラメータはタイマーIDで、0以外の値で、この例では1と仮定しています。3番目のパラメータは32ビットの整数で、プラスもマイナスもなく、ミリ秒単位で時間間隔を指定し、6万という値はWindowsに1分間に1回WM_TIMERメッセージを送信させます。
間隔を指定するには
KillTimer (hwnd, 1) ;
方法2
タイマーを設定する最初の方法は、WM_TIMERメッセージを通常のウィンドウメッセージハンドラーに送る方法です。一方、2番目の方法は、Windowsがタイマーメッセージをプログラムの別の関数に直接送る方法です。
SetTimer (hwnd, iTimerID, iMsecInterval, TimerProc) ;
方法3
3番目のタイマー設定方法は、2番目の方法と似ていますが、SetTimerに渡されるhwndパラメータをNULLに設定し、2番目のパラメータ(通常はタイマーID)を無視し、最後にこの関数が次のようにタイマーIDを返します。
iTimerID = SetTimer (NULL, 0, wMsecInterval, TimerProc) ;
利用可能なタイマーがない場合、SetTimerから戻されるiTimerIDの値はNULLになります。
KillTimerの最初のパラメータ(通常はウィンドウ・ハンドル)もNULLでなければならず、タイマーIDはSetTimer:から戻される値でなければなりません。
KillTimer (NULL, iTimerID) ;
注:タイマーはメッセージを受け取るスレッドキューに依存するため、SetTimer関数を呼び出すスレッドが存在する必要があります。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ハートビート・エフェクトのためのHTML+CSS
-
HTML ホテル フォームによるフィルタリング
-
HTML+cssのボックスモデル例(円、半円など)「border-radius」使いやすい
-
HTMLテーブルのテーブル分割とマージ(colspan, rowspan)
-
ランダム・ネームドロッパーを実装するためのhtmlサンプルコード
-
Html階層型ボックスシャドウ効果サンプルコード
-
QQの一時的なダイアログボックスをポップアップし、友人を追加せずにオンラインで話す効果を達成する方法
-
sublime / vscodeショートカットHTMLコード生成の実装
-
HTMLページを縮小した後にスクロールバーを表示するサンプルコード
-
html のリストボックス、テキストフィールド、ファイルフィールドのコード例