次の方法で共有


CWinApp::DoWaitCursor

CWaitCursorCCmdTarget::BeginWaitCursorCCmdTarget::EndWaitCursor および CCmdTarget::RestoreWaitCursor を実装するために、フレームワークによって呼び出されます。

virtual void DoWaitCursor(
   int nCode 
);

パラメーター

  • nCode
    このパラメーターが 1 のときは、待機カーソルを表示します。 0 のときは、参照カウントを増分せずに、待機カーソルを元に戻します。 -1 のときは、待機カーソルを終了します。

解説

既定の実装は、砂時計カーソルです。 DoWaitCursor は、参照カウントを管理します。 参照カウントが正の値のとき、砂時計カーソルが表示されます。

直接DoWaitCursor を呼び出すことはほとんどありませんが、このメンバー関数をオーバーライドして待機カーソルを変更したり、待機カーソルが表示されているときに特別な処理を実行したりできます。

待機カーソルを実装する、より簡単でより自然な方法は、CWaitCursor を使用することです。

使用例

// The following example shows how to display the
// hourglass cursor during some lengthy processing
void CMdiView::OnLButtonDown(UINT nFlags, CPoint point)
{
   UNREFERENCED_PARAMETER(nFlags);
   UNREFERENCED_PARAMETER(point);

   AfxGetApp()->DoWaitCursor(1); // 1->>display the hourglass cursor

   // do some lengthy processing
   Sleep(1000);

   AfxGetApp()->DoWaitCursor(-1); // -1->>remove the hourglass cursor
}

// The next example shows DoWaitCursor with parameter 0. It restores
// the hourglass cursor.
void CMdiView::OnMButtonDown(UINT nFlags, CPoint point)
{
   UNREFERENCED_PARAMETER(nFlags);
   UNREFERENCED_PARAMETER(point);

   AfxGetApp()->DoWaitCursor(1); // display the hourglass cursor

   // do some lengthy processing

   // The message box will normally change the cursor to
   // the standard arrow cursor, and leave the cursor in
   // as the standard arrow cursor when the message box is
   // closed.
   AfxMessageBox (_T("DoWaitCursor Sample"));

   // Call DoWaitCursor with parameter 0 to restore
   // the cursor back to the hourglass cursor.
   AfxGetApp()->DoWaitCursor(0);

   // do some more lengthy processing
   Sleep(1000);

   AfxGetApp()->DoWaitCursor(-1); // remove the hourglass cursor
}

必要条件

**ヘッダー:**afxwin.h

参照

参照

CWinApp クラス

階層図

CCmdTarget::BeginWaitCursor

CCmdTarget::EndWaitCursor

CCmdTarget::RestoreWaitCursor

CWaitCursor クラス

その他の技術情報

CWinApp のメンバー