Compartilhar via


Classe CWaitCursor

Fornece uma forma de uma linha para mostrar um cursor de espera, que geralmente é exibido sistema autônomo uma ampulheta enquanto você estiver fazendo uma operação demorada.

class CWaitCursor

Comentários

CWaitCursor não tem uma classe base.

mercadoria programação práticas recomendadas do Windows exigem que você exibir um cursor de espera sempre que você está executando uma operação que leva uma considerável quantidade de time.

Para exibir um cursor de espera, definir apenas um CWaitCursor variável antes do código que realiza a operação demorada. Construtor do objeto automaticamente faz com que o cursor de espera ser exibido.

Quando o objeto sai do escopo (no participante do bloco em que o CWaitCursor objeto for declarado), seu destruidor define o cursor para o cursor anterior. Em outras palavras, o objeto executa automaticamente a limpeza necessária.

Observação:

Por causa de como funcionam os construtores e destrutores, CWaitCursor objetos sempre são declarados sistema autônomo variáveis locais — nunca são declaradas sistema autônomo variáveis global nem são alocados com novo.

Se você executar uma operação que pode causar o cursor seja alterado, sistema autônomo exibir uma caixa de mensagem ou caixa de diálogo, telefonar o restauraçãofunção de membro restauração o cursor de espera.Já pode telefonar restauração mesmo quando um cursor de espera é exibido no momento.

Outra maneira de exibir um cursor de espera é utilizar a combinação de CCmdTarget::BeginWaitCursor, CCmdTarget::EndWaitCursore talvez CCmdTarget::RestoreWaitCursor.No entanto, CWaitCursor é mais fácil de usar porque você não precisará conjunto o cursor para o cursor anterior quando você concluiu a operação demorada.

Observação:

MFC define e restaura o cursor utilizando o CWinApp::DoWaitCursor função virtual.Você pode substituir esta função para fornecer um comportamento personalizado.

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 de hierarquia

CCmdTarget::BeginWaitCursor

CCmdTarget::EndWaitCursor

CCmdTarget::RestoreWaitCursor

CWinApp::DoWaitCursor

Outros recursos

CWaitCursor membros