Udostępnij za pośrednictwem


Klasa CWaitCursor

Zapewnia sposób jednego wiersza, aby pokazać kursora oczekiwania, który jest zwykle wyświetlany jako Klepsydra podczas czasochłonnych operacji wykonywanych.

class CWaitCursor

Członkowie

Publiczne konstruktory

Nazwa

Opis

CWaitCursor::CWaitCursor

Konstrukcje CWaitCursor obiektu i wyświetla kursor oczekiwania.

Metody publiczne

Nazwa

Opis

CWaitCursor::Restore

Przywraca kursor oczekiwania po jest zmieniana.

Uwagi

CWaitCursornie ma klasy podstawowej.

Windows dobrych praktyk programowania wymagają wyświetlania kursora oczekiwania, gdy wykonujesz operację, która zajmuje zauważalne ilość czasu.

Aby wyświetlić kursor oczekiwania, wystarczy zdefiniować CWaitCursor zmiennej zanim kod, który wykonuje długotrwałą operacją.Konstruktor obiektu automatycznie powoduje, że kursor oczekiwania mają być wyświetlane.

Kiedy obiekt wykracza poza zakres (na końcu bloku, w którym CWaitCursor obiektu jest zadeklarowany), jego destruktora ustawia kursor poprzedniego kursora.Innymi słowy obiekt wykonuje niezbędne oczyszczania automatycznie.

[!UWAGA]

Ze względu na sposób ich konstruktory i destruktory pracy CWaitCursor obiekty zawsze są deklarowane jako zmienne lokalne — nigdy nie zostały zadeklarowane jako zmienne globalne, ani nie są one przydzielane z Nowy.

Jeśli wykonać operację, która może spowodować, że kursor ma zostać zmieniony, takie jak wyświetlanie okna komunikatu lub okno dialogowe, wywołanie przywrócić Członkowskich funkcji przywracania kursora oczekiwania.Nic nie szkodzi call przywrócić nawet kiedy kursor oczekiwania jest aktualnie wyświetlany.

Innym sposobem wyświetlania kursora oczekiwania jest użycie kombinacji CCmdTarget::BeginWaitCursor, CCmdTarget::EndWaitCursori być może CCmdTarget::RestoreWaitCursor.Jednakże CWaitCursor jest łatwiejszy w użyciu, ponieważ nie trzeba ustawić kursor poprzedniego kursora po zakończeniu operacji długie.

[!UWAGA]

MFC ustawia i przywraca przy użyciu kursora CWinApp::DoWaitCursor funkcję wirtualną.Ta funkcja umożliwia zachowanie niestandardowych można zastąpić.

Hierarchii dziedziczenia

CWaitCursor

Wymagania

Nagłówek: afxwin.h

Przykład

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;         

}

Zobacz też

Informacje

Diagram hierarchii

CCmdTarget::BeginWaitCursor

CCmdTarget::EndWaitCursor

CCmdTarget::RestoreWaitCursor

CWinApp::DoWaitCursor

Inne zasoby

Jak I: Zmień kursor myszy w aplikacji klasy Microsoft Foundation?