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 |
---|---|
Constrói um objeto de CWaitCursor e exibe o cursor de espera. |
Métodos públicos
Nome |
Descrição |
---|---|
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
Outros recursos
Como: eu faço Altere o cursor do mouse em um aplicativo da classe da Microsoft foundation?