共用方式為


CWaitCursor 類別

提供了一條線的方式顯示等待游標,通常會顯示為沙漏,反之,因為您正在執行耗時作業。

class CWaitCursor

成員

公用建構函式

名稱

描述

CWaitCursor::CWaitCursor

CWaitCursor 建構物件並顯示等待游標。

公用方法

名稱

描述

CWaitCursor::Restore

在變更之後,還原等待游標它。

備註

CWaitCursor 不具有基底類別。

程式設計實務的好視窗需要顯示等待游標,每當您執行花不少時間的作業。

若要顯示等待游標,請在執行耗時作業的程式碼之前定義 CWaitCursor 變數。 物件的建構函式會自動使等待游標隨即顯示。

當物件超出範圍 ( CWaitCursor 物件宣告) 的區塊結尾,其解構函式會將游標設定為先前游標。 換句話說,物件會自動執行必要的清除。

注意事項注意事項

由於其建構函式和解構函式 (Destructor) 如何運作, CWaitCursor 物件永遠宣告為區域變數 (但不是宣告為全域變數也不會配置使用 new

如果您執行可能會使游標會變更,例如顯示訊息方塊或 對話方塊中的作業,請呼叫成員函式 還原 還原等待游標。 即使等待游標目前顯示,可以呼叫 還原

可能是另一種顯示等待游標會使用 CCmdTarget::BeginWaitCursorCCmdTarget::EndWaitCursorCCmdTarget::RestoreWaitCursor的組合。 不過, CWaitCursor 更容易使用,因為您不必設定游標至先前游標,在完成長時間作業時。

注意事項注意事項

使用 CWinApp::DoWaitCursor 虛擬函式, MFC 會設定並還原游標。您可以覆寫此函式提供自訂行為。

繼承階層架構

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;         

}

請參閱

參考

階層架構圖表

CCmdTarget::BeginWaitCursor

CCmdTarget::EndWaitCursor

CCmdTarget::RestoreWaitCursor

CWinApp::DoWaitCursor

其他資源

如何?:變更 Microsoft Foundation Class 應用程式的滑鼠游標?