Compartilhar via


Classe CWaitCursor

Fornece uma maneira da linha mostrar um cursor de espera, que geralmente é exibido como uma ampulheta, quando você faz uma operação longa.

class CWaitCursor

Membros

Construtores public

Nome

Descrição

CWaitCursor::CWaitCursor

Constrói um objeto de CWaitCursor e exibe o cursor de espera.

Métodos públicos

Nome

Descrição

CWaitCursor::Restore

Restaura o cursor de espera depois que foi alterado.

Comentários

CWaitCursor não tem uma classe base.

As boas práticas de programação windows requerem que você exibe um cursor de espera sempre que você está executando uma operação que leva uma quantidade considerável de tempo.

Para exibir um cursor de espera, define apenas uma variável de CWaitCursor antes do código que executa a operação longa. O construtor do objeto faz automaticamente o cursor de espera a ser exibido.

Quando o objeto sair do escopo (no final do bloco no qual o objeto de CWaitCursor está declarado), o destrutor define o cursor para o cursor anterior. Ou seja o objeto realiza a limpeza necessário automaticamente.

Dica

Devido a como os construtores e destructors funcionam, os objetos de CWaitCursor sempre são declarados como variáveis locais — nunca são declarados como variáveis globais não são atribuiu com new.

Se você executar uma operação que pode causar o cursor seja alterado, como exibir uma caixa de mensagem ou caixa de diálogo, chame a função de membro de Restaurar para restaurar o cursor de espera. É certo chamar Restaurar mesmo quando o cursor de espera é exibido no momento.

Outra maneira de exibir um cursor de espera é usar a combinação de CCmdTarget::BeginWaitCursor, de CCmdTarget::EndWaitCursor, e talvez de CCmdTarget::RestoreWaitCursor. Em o entanto, CWaitCursor é mais fácil de usar porque você não precisa definir o cursor para o cursor anterior quando você concluiu a operação longa.

Dica

O MFC define e restaura o cursor usando a função virtual de CWinApp::DoWaitCursor .Você pode substituir essa função para fornecer um comportamento personalizado.

Hierarquia de herança

CWaitCursor

Requisitos

Cabeçalho: afxwin.h

Exemplo

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;         

}

Consulte também

Referência

Gráfico da hierarquia

CCmdTarget::BeginWaitCursor

CCmdTarget::EndWaitCursor

CCmdTarget::RestoreWaitCursor

CWinApp::DoWaitCursor

Outros recursos

Como: eu faço Altere o cursor do mouse em um aplicativo da classe da Microsoft foundation?