CWinApp::DoWaitCursor
更新 : 2007 年 11 月
CWaitCursor、CCmdTarget::BeginWaitCursor、CCmdTarget::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