CWaitCursor クラス
時間がかかる処理を実行している最中に、通常は砂時計として表示される待機カーソルを表示する 1 つの方法を提供します。
class CWaitCursor
メンバー
パブリック コンストラクター
名前 |
説明 |
---|---|
CWaitCursor オブジェクトを構築し、待機カーソルを表示します。 |
パブリック メソッド
名前 |
説明 |
---|---|
変更された後に待機カーソルを復元します。 |
解説
CWaitCursor には、基本クラスはありません。
正確な Windows プログラミングでは、時間がかかる処理を実行するときに、常に待機カーソルを表示する必要があります。
待機カーソルを表示するには、時間がかかる処理のコードの前に CWaitCursor 変数を定義するだけです。オブジェクトのコンストラクターが、自動的に待機カーソルを表示するようにします。
オブジェクトがスコープ外 (CWaitCursor オブジェクトが宣言されたブロックの終わり) になると、デストラクターは、カーソルを以前のカーソルに戻します。つまり、オブジェクトは必要な後処理を自動的に行います。
[!メモ]
コンストラクターとデストラクターの動作方法のため、CWaitCursor オブジェクトは、常にローカル変数として宣言します。グローバル変数として宣言したり、new を使って割り当てないでください。
メッセージ ボックスやダイアログ ボックスを表示するなどのカーソルが変更される操作を実行するときは、待機カーソルを元に戻すために、Restore メンバー関数を呼び出します。待機カーャ汲ェ侮ヲされているときでも、Restore を呼び出すことができます。
待機カーソルを表示するもう 1 つの方法として、CCmdTarget::BeginWaitCursor、CCmdTarget::EndWaitCursor、CCmdTarget::RestoreWaitCursor を組み合わせて使う方法があります。しかし、時間がかかる処理が終わったときにカーソルを前のカーソルに戻す必要はないので、CWaitCursor の方がより使いやすくなっています。
[!メモ]
MFC は、CWinApp::DoWaitCursor を使用してカーソルを設定、および復元します。独自の動作を提供するために、この関数をオーバライドできます。
継承階層
CWaitCursor
必要条件
ヘッダー: 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;
}