CWnd::SetTimer
更新 : 2007 年 11 月
システム タイマをインストールします。
UINT_PTR SetTimer(
UINT_PTR nIDEvent,
UINT nElapse,
void (CALLBACK* lpfnTimer
)(HWND,
UINT,
UINT_PTR,
DWORD
)
);
パラメータ
nIDEvent
0 以外のタイマ識別子を指定します。nElapse
タイムアウト値をミリ秒単位で指定します。lpfnTimer
WM_TIMER メッセージを処理するためのアプリケーションが用意した、TimerProc コールバック関数のアドレスを指定します。このパラメータが NULL の場合は、WM_TIMER メッセージはアプリケーションのメッセージ キューに置かれ、CWnd オブジェクトによって処理されます。
戻り値
正常終了した場合は、新しいタイマのタイマ識別子を返します。アプリケーションは、この値を KillTimer メンバ関数に渡し、タイマを止めることができます。正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。
解説
タイムアウト値が指定されている場合、タイムアウトが発生するたびに、システムは、WM_TIMER メッセージをインストール中のアプリケーションのメッセージ キューにポストするか、またはアプリケーション定義の TimerProc コールバック関数に渡します。
lpfnTimer のコールバック関数の名前は TimerProc である必要はありませんが、次のように定義される必要があります。
void CALLBACK EXPORT TimerProc(
HWND hWnd, // handle of CWnd that called SetTimer
UINT nMsg, // WM_TIMER
UINT nIDEvent // timer identification
DWORD dwTime // system time
);
使用例
この例では、WM_TIMER メッセージを処理するために、CWnd::SetTimer、CWnd::OnTimer、および CWnd::KillTimer が使用されています。OnStartTimer で 2 秒ごとにメイン フレーム ウィンドウに WM_TIMER メッセージを送信するように、タイマが設定されます。OnStopTimer は、CWnd::KillTimer を呼び出してタイマを停止します。OnTimer は、メイン フレーム ウィンドウの WM_TIMER メッセージを処理するために設定されています。この例では、PC スピーカーが 2 秒ごとにビープ音を出します。
void CMainFrame::OnStartTimer()
{
m_nTimer = SetTimer(1, 2000, 0);
}
void CMainFrame::OnStopTimer()
{
KillTimer(m_nTimer);
}
void CMainFrame::OnTimer(UINT nIDEvent)
{
MessageBeep(0xFFFFFFFF); // Beep
// Call base class handler.
CMDIFrameWnd::OnTimer(nIDEvent);
}
必要条件
ヘッダー : afxwin.h