Visual Studio 2008でMFCダイアログベースのアプリケーションを開発しています。アプリケーションの開始時に開始するタイマーを使用して実行を継続し、タスクを実行する関数を呼び出しますか?これどうやってするの?
ありがとう
SetTimer
メソッドを使用して、タイマーID(任意の数)とミリ秒単位のタイムアウトの2つの引数を渡します。次に、OnTimer
の実装と、ON_WM_TIMER
内のエントリBEGIN_MESSAGE_MAP...END_MESSAGE_MAP
を記述します。
CWnd :: SetTimer は3つのパラメーターを取りますが、必要なパラメーターは2つだけです。 3番目の引数をNULLとして渡します。
_AFXWIN_INLINE UINT_PTR CWnd::SetTimer(UINT_PTR nIDEvent, UINT nElapse,
void (CALLBACK* lpfnTimer)(HWND, UINT, UINT_PTR, DWORD))
あなたは次のようなことをしたいかもしれません
UINT_PTR myTimer = SetTimer (1, 1000, null); // one event every 1000 ms = 1 s
そして、ウィンドウのイベントハンドラーのON_TIMERイベントに反応します。
void CMyView::OnTimer (UINT_PTR nIdEvent)
{
if (nIdEvent == 1)
// handle timer event
}
または、タイマーイベントを処理する関数へのポインターを渡すこともできます。タイマーへのハンドルを保持すると、必要に応じて、KillTimer()を使用してタイマーをオフにすることができます。
タイマーを使用する基本的な考え方を知りたい場合は、このリンクをご覧になり、タイマーの操作に関する段階的な手順を実行してください。この後、いつでもアプリケーションでタイマーを簡単に使用できるようになります。
リンク: http://www.functionx.com/visualc/controls/timer.htm
お役に立てれば。
乾杯。