Visual Studio 2008でMFC Dialogベースのアプリケーションを開発しています。アプリケーションの起動時に起動するタイマを使用して、実行し続けてタスクを実行する関数を呼び出しますか?これどうやってするの?MFCダイアログベースのアプリケーションでTimerを使用する方法?
おかげ
Visual Studio 2008でMFC Dialogベースのアプリケーションを開発しています。アプリケーションの起動時に起動するタイマを使用して、実行し続けてタスクを実行する関数を呼び出しますか?これどうやってするの?MFCダイアログベースのアプリケーションでTimerを使用する方法?
おかげ
だけSetTimer
メソッドを使用し、2つの引数を渡す:タイマーID(任意の数)、およびタイムアウト(ミリ秒)。次に、OnTimer
の実装を書き出し、ON_WM_TIMER
の中にBEGIN_MESSAGE_MAP...END_MESSAGE_MAP
というエントリを書き込みます。
CWnd::SetTimerは3つのパラメータが必要ですが、2つだけ必要です。 3番目の引数をNULLとして渡します。
あなたはタイマーを使用しての基本的な考え方を取得したい場合は、親切にこのリンクを見ていると、タイマーの操作に関するステップの手順でステップを経ます。この後、必要に応じてアプリケーション内でタイマーを簡単に使用できるようになります。
リンク:このことができますhttp://www.functionx.com/visualc/controls/timer.htm
希望。
乾杯。
_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://msdn.microsoft.com/en-us/library/49313fdf(v=vs.80).aspx – YeenFei
このエラーが発生しました:エラーC3867: 'CHDVRLauncherDlg :: TimerFunction':関数呼び出しの引数がありませんリスト; '&CHDVRLauncherDlg :: TimerFunction'を使用して、メンバーへのポインターを作成します。私が静的なコールバック関数を宣言した場合、私はこのコールバックから他の関数を呼び出すことができません。私はMFCが初めてです。ありがとうございます –
他の方法としては、現在の時間を毎回取得し、十分な時間が経過したかどうかを確認するか、sleep(long millisecs);を呼び出す新しいスレッド(またはプロセス)を開始してからあなたが望む機能。 –