次の方法で共有


CWaitCursor クラス

更新 : 2007 年 11 月

時間がかかる処理を実行している最中に、通常は砂時計として表示される待機カーソルを表示する 1 つの方法を提供します。

class CWaitCursor

解説

CWaitCursor には、基本クラスはありません。

正確な Windows プログラミングでは、時間がかかる処理を実行するときに、常に待機カーソルを表示する必要があります。

待機カーソルを表示するには、時間がかかる処理のコードの前に CWaitCursor 変数を定義するだけです。オブジェクトのコンストラクタが、自動的に待機カーソルを表示するようにします。

オブジェクトがスコープ外 (CWaitCursor オブジェクトが宣言されたブロックの終わり) になると、デストラクタは、カーソルを以前のカーソルに戻します。つまり、オブジェクトは必要な後処理を自動的に行います。

wc7bzytb.alert_note(ja-jp,VS.90).gifメモ :

コンストラクタとデストラクタの動作方法のため、CWaitCursor オブジェクトは、常にローカル変数として宣言します。グローバル変数として宣言したり、new を使って割り当てないでください。

メッセージ ボックスやダイアログ ボックスを表示するなどのカーソルが変更される操作を実行するときは、待機カーソルを元に戻すために、Restore メンバ関数を呼び出します。待機カーャ汲ェ侮ヲされているときでも、Restore を呼び出すことができます。

待機カーソルを表示するもう 1 つの方法として、CCmdTarget::BeginWaitCursorCCmdTarget::EndWaitCursorCCmdTarget::RestoreWaitCursor を組み合わせて使う方法があります。しかし、時間がかかる処理が終わったときにカーャ汲ネ前のカーャ汲ノ戻す必要はないので、CWaitCursor の方がより使いやすくなっています。

wc7bzytb.alert_note(ja-jp,VS.90).gifメモ :

MFC は、CWinApp::DoWaitCursor を使用してカーソルを設定、および復元します。独自の動作を提供するために、この関数をオーバライドできます。

必要条件

ヘッダー : afxwin.h

使用例

BOOL SomeLengthyProcess()
{
   CWaitCursor wait;
   //Do the lengthy processing.
   Sleep(1000);

   AfxMessageBox(_T("Some result")); //This changes the cursor.
   wait.Restore(); //Restore the Wait cursor.
   //Continue Processing.
   Sleep(1000);

   //The destructor changes the cursor back to Regular cursor.
   return TRUE;         

}

参照

参照

階層図

CCmdTarget::BeginWaitCursor

CCmdTarget::EndWaitCursor

CCmdTarget::RestoreWaitCursor

CWinApp::DoWaitCursor

その他の技術情報

CWaitCursor のメンバ