次の方法で共有


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::SetTimerCWnd::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

参照

参照

CWnd クラス

階層図

WM_TIMER

CWnd::KillTimer

SetTimer

その他の技術情報

CWnd のメンバ