Partilhar via


Classe CWinApp

A classe base da qual você deriva um objeto de aplicativo do Windows.

Sintaxe

class CWinApp : public CWinThread

Membros

Construtores Públicos

Designação Descrição
CWinApp::CWinApp Constrói um objeto CWinApp.

Métodos Públicos

Designação Descrição
CWinApp::AddDocTemplate Adiciona um modelo de documento à lista de modelos de documento disponíveis do aplicativo.
CWinApp::AddToRecentFileList Adiciona um nome de arquivo à lista de arquivos usados mais recentemente (MRU).
CWinApp::ApplicationRecoveryCallback Chamado pela estrutura quando o aplicativo é encerrado inesperadamente.
CWinApp::CloseAllDocuments Fecha todos os documentos abertos.
CWinApp::CreatePrinterDC Cria um contexto de dispositivo de impressora.
CWinApp::D elRegTree Exclui uma chave especificada e todas as suas subchaves.
CWinApp::D oMessageBox Implementa AfxMessageBox para o aplicativo.
CWinApp::D oWaitCursor Ativa e desliga o cursor de espera.
CWinApp::EnableD2DSupport Habilita o suporte a D2D de aplicativos. Chame esse método antes que a janela principal seja inicializada.
CWinApp::EnableHtmlHelp Implementa HTMLHelp para o aplicativo, em vez de WinHelp.
CWinApp::EnableTaskbarInteraction Permite a interação com a Barra de Tarefas.
CWinApp::ExitInstance Substitua para limpar quando o aplicativo for encerrado.
CWinApp::GetApplicationRecoveryParameter Recupera o parâmetro de entrada para o método de recuperação do aplicativo.
CWinApp::GetApplicationRecoveryPingInterval Retorna o período de tempo que o gerenciador de reinicialização aguarda o retorno da função de retorno de chamada de recuperação.
CWinApp::GetApplicationRestartFlags Retorna os sinalizadores para o gerenciador de reinicialização.
CWinApp::GetAppRegistryKey Retorna a chave para HKEY_CURRENT_USER\"Software"\RegistryKey\ProfileName.
CWinApp::GetDataRecoveryHandler Obtém o manipulador de recuperação de dados para esta instância do aplicativo.
CWinApp::GetFirstDocTemplatePosition Recupera a posição do primeiro modelo de documento.
CWinApp::GetHelpMode Recupera o tipo de ajuda usado pelo aplicativo.
CWinApp::GetNextDocTemplate Recupera a posição de um modelo de documento. Pode ser usado recursivamente.
CWinApp::GetPrinterDeviceDefaults Recupera os padrões do dispositivo da impressora.
CWinApp::GetProfileBinary Recupera dados binários de uma entrada no arquivo . Arquivo INI.
CWinApp::GetProfileInt Recupera um inteiro de uma entrada no arquivo . Arquivo INI.
CWinApp::GetProfileString Recupera uma cadeia de caracteres de uma entrada no arquivo . Arquivo INI.
CWinApp::GetSectionKey Retorna a chave para HKEY_CURRENT_USER\"Software"\RegistryKey\AppName\lpszSection.
CWinApp::HideApplication Oculta o aplicativo antes de fechar todos os documentos.
CWinApp::HtmlHelp Chama a função HTMLHelp Windows.
CWinApp::InitInstance Substitua para executar a inicialização da instância do Windows, como criar seus objetos de janela.
CWinApp::IsTaskbarInteractionEnabled Informa se a interação com a Barra de Tarefas do Windows 7 está ativada.
CWinApp::LoadCursor Carrega um recurso de cursor.
CWinApp::LoadIcon Carrega um recurso de ícone.
CWinApp::LoadOEMCursor Carrega um cursor predefinido OEM do Windows que as constantes de OCR_ especificam em WINDOWS.H.
CWinApp::LoadOEMIcon Carrega um ícone predefinido OEM do Windows que as constantes de OIC_ especificam em WINDOWS.H.
CWinApp::LoadStandardCursor Carrega um cursor predefinido do Windows que as constantes de IDC_ especificam em WINDOWS.H.
CWinApp::LoadStandardIcon Carrega um ícone predefinido do Windows que as constantes de IDI_ especificam em WINDOWS.H.
CWinApp::OnDDECommand Chamado pela estrutura em resposta a um comando de execução de intercâmbio dinâmico de dados (DDE).
CWinApp::OnIdle Substituir para executar o processamento de tempo ocioso específico do aplicativo.
CWinApp::OpenDocumentFile Chamado pela estrutura para abrir um documento a partir de um arquivo.
CWinApp::P arseCommandLine Analisa parâmetros individuais e sinalizadores na linha de comando.
CWinApp::P reTranslateMessage Filtra as mensagens antes de serem enviadas para as funções do Windows TranslateMessage e DispatchMessage.
CWinApp::P rocessMessageFilter Interceta determinadas mensagens antes que elas cheguem ao aplicativo.
CWinApp::P rocessShellCommand Manipula argumentos de linha de comando e sinalizadores.
CWinApp::P rocessWndProcException Interceta todas as exceções não tratadas lançadas pelos manipuladores de mensagens e comandos do aplicativo.
CWinApp::Registar Realiza o registo personalizado.
CWinApp::RegisterWithRestartManager Registra o aplicativo com o gerenciador de reinicialização.
CWinApp::ReopenPreviousFilesAtRestart Determina se o gerenciador de reinicialização reabre os arquivos que estavam abertos quando o aplicativo foi encerrado inesperadamente.
CWinApp::RestartInstance Manipula uma reinicialização de aplicativo iniciada pelo gerenciador de reinicialização.
CWinApp::RestoreAutosavedFilesAtRestart Determina se o gerenciador de reinicialização restaura os arquivos salvos automaticamente quando reinicia o aplicativo.
CWinApp::Executar Executa o loop de mensagem padrão. Substituir para personalizar o loop de mensagens.
CWinApp::RunAutomated Testa a linha de comando do aplicativo para a opção /Automation. Obsoleto. Em vez disso, use o valor em CCommandLineInfo::m_bRunAutomated depois de chamar ParseCommandLine.
CWinApp::RunEmbedded Testa a linha de comando do aplicativo para a opção /Embedding. Obsoleto. Em vez disso, use o valor em CCommandLineInfo::m_bRunEmbedded depois de chamar ParseCommandLine.
CWinApp::SaveAllModified Solicita que o usuário salve todos os documentos modificados.
CWinApp::SelectPrinter Seleciona uma impressora indicada anteriormente por um usuário através de uma caixa de diálogo de impressão.
CWinApp::SetHelpMode Define e inicializa o tipo de ajuda usado pelo aplicativo.
CWinApp::SupportsApplicationRecovery Determina se o gerenciador de reinicialização recupera um aplicativo que saiu inesperadamente.
CWinApp::SupportsAutosaveAtInterval Determina se o gerenciador de reinicialização salva automaticamente documentos abertos em um intervalo regular.
CWinApp::SupportsAutosaveAtRestart Determina se o gerenciador de reinicialização salva automaticamente quaisquer documentos abertos quando o aplicativo é reiniciado.
CWinApp::SupportsRestartManager Determina se o aplicativo suporta o gerenciador de reinicialização.
CWinApp::Cancelar o registro Cancela o registro de tudo o que se sabe ser registrado pelo objeto CWinApp.
CWinApp::WinHelp Chama a função WinHelp Windows.
CWinApp::WriteProfileBinary Grava dados binários em uma entrada no arquivo . Arquivo INI.
CWinApp::WriteProfileInt Grava um inteiro em uma entrada no arquivo . Arquivo INI.
CWinApp::WriteProfileString Grava uma cadeia de caracteres em uma entrada no arquivo . Arquivo INI.

Métodos Protegidos

Designação Descrição
CWinApp::EnableShellOpen Permite ao utilizador abrir ficheiros de dados a partir do Gestor de Ficheiros do Windows.
CWinApp::LoadStdProfileSettings Cargas padrão . Configurações do arquivo INI e habilita o recurso de lista de arquivos MRU.
CWinApp::OnContextHelp Lida com a Ajuda SHIFT+F1 dentro do aplicativo.
CWinApp::OnFileNovo Implementa o comando ID_FILE_NEW.
CWinApp::OnFileOpen Implementa o comando ID_FILE_OPEN.
CWinApp::OnFilePrintSetup Implementa o comando ID_FILE_PRINT_SETUP.
CWinApp::OnHelp Manipula a Ajuda F1 dentro do aplicativo (usando o contexto atual).
CWinApp::OnHelpFinder Manipula os comandos ID_HELP_FINDER e ID_DEFAULT_HELP.
CWinApp::OnHelpIndex Manipula o comando ID_HELP_INDEX e fornece um tópico da Ajuda padrão.
CWinApp::OnHelpUsando Manipula o comando ID_HELP_USING.
CWinApp::RegisterShellFileTypes Registra todos os tipos de documentos do aplicativo com o Gerenciador de arquivos do Windows.
CWinApp::SetAppID Define explicitamente a ID do Modelo de Usuário do Aplicativo para o aplicativo. Este método deve ser chamado antes de qualquer interface do usuário é apresentada ao usuário (o melhor lugar é o construtor do aplicativo).
CWinApp::SetRegistryKey Faz com que as configurações do aplicativo sejam armazenadas no Registro em vez de . Arquivos INI.
CWinApp::UnregisterShellFileTypes Cancela o registro de todos os tipos de documentos do aplicativo com o Gerenciador de arquivos do Windows.

Membros de Dados Públicos

Designação Descrição
CWinApp::m_bHelpMode Indica se o usuário está no modo de contexto da Ajuda (normalmente invocado com SHIFT+F1).
CWinApp::m_eHelpType Especifica o tipo de ajuda usada pelo aplicativo.
CWinApp::m_hInstance Identifica a instância atual do aplicativo.
CWinApp::m_lpCmdLine Aponta para uma cadeia de caracteres terminada em nulo que especifica a linha de comando para o aplicativo.
CWinApp::m_nCmdShow Especifica como a janela deve ser mostrada inicialmente.
CWinApp::m_pActiveWnd Ponteiro para a janela principal do aplicativo de contêiner quando um servidor OLE está ativo in-loco.
CWinApp::m_pszAppID ID do modelo de usuário do aplicativo.
CWinApp::m_pszAppName Especifica o nome do aplicativo.
CWinApp::m_pszExeName O nome do módulo do aplicativo.
CWinApp::m_pszHelpFilePath O caminho para o arquivo de Ajuda do aplicativo.
CWinApp::m_pszProfileName O aplicativo é . Nome do arquivo INI.
CWinApp::m_pszRegistryKey Usado para determinar a chave do Registro completa para armazenar as configurações do perfil do aplicativo.

Membros de Dados Protegidos

Designação Descrição
CWinApp::m_dwRestartManagerSupportFlags Sinalizadores que determinam como o gerenciador de reinicialização se comporta.
CWinApp::m_nAutosaveInterval O período de tempo em milissegundos entre os salvamentos automáticos.
CWinApp::m_pDataRecoveryHandler Ponteiro para o manipulador de recuperação de dados para o aplicativo.

Comentários

Um objeto de aplicativo fornece funções de membro para inicializar seu aplicativo (e cada instância dele) e para executar o aplicativo.

Cada aplicativo que usa as classes Microsoft Foundation só pode conter um objeto derivado de CWinApp. Este objeto é construído quando outros objetos globais C++ são construídos e já está disponível quando o Windows chama a função WinMain, que é fornecida pela Microsoft Foundation Class Library. Declare seu objeto CWinApp derivado em nível global.

Quando você deriva uma classe de aplicativo de CWinApp, substitua o InitInstance função de membro para criar o objeto de janela principal do seu aplicativo.

Além das funções de membro CWinApp, a Microsoft Foundation Class Library fornece as seguintes funções globais para acessar seu objeto CWinApp e outras informações globais:

  • AfxGetApp Obtém um ponteiro para o objeto CWinApp.

  • AfxGetInstanceHandle Obtém um identificador para a instância do aplicativo atual.

  • AfxGetResourceHandle Obtém um identificador para os recursos do aplicativo.

  • AfxGetAppName Obtém um ponteiro para uma cadeia de caracteres que contém o nome do aplicativo. Como alternativa, se você tiver um ponteiro para o objeto CWinApp, use m_pszExeName para obter o nome do aplicativo.

Consulte CWinApp: The Application Class para obter mais informações sobre a classe CWinApp, incluindo uma visão geral do seguinte:

  • CWinAppcódigo derivado escrito pelo Assistente de Aplicativo.

  • CWinAppfunção do na sequência de execução do seu aplicativo.

  • CWinAppimplementações de função de membro padrão do .

  • CWinAppa chave de substituição.

O membro de dados m_hPrevInstance não existe mais. Para determinar se outra instância do aplicativo está em execução, use um mutex nomeado. Se a abertura do mutex falhar, não haverá outras instâncias do aplicativo em execução.

Hierarquia de herança

CObject

CCmdTarget

CWinThread

CWinApp

Requerimentos

Cabeçalho: afxwin.h

CWinApp::AddDocTemplate

Chame essa função de membro para adicionar um modelo de documento à lista de modelos de documento disponíveis que o aplicativo mantém.

void AddDocTemplate(CDocTemplate* pTemplate);

Parâmetros

pTemplate
Um ponteiro para o CDocTemplate a ser adicionado.

Comentários

Você deve adicionar todos os modelos de documento a um aplicativo antes de chamar RegisterShellFileTypes.

Exemplo

// The following code is produced by the Application Wizard when you
// choose the MDI (multiple document interface) option.
CMultiDocTemplate *pDocTemplate;
pDocTemplate = new CMultiDocTemplate(IDR_MYTYPE,
                                     RUNTIME_CLASS(CMyDoc),
                                     RUNTIME_CLASS(CChildFrame), // custom MDI child frame
                                     RUNTIME_CLASS(CMyView));
if (!pDocTemplate)
   return FALSE;
AddDocTemplate(pDocTemplate);

CWinApp::AddToRecentFileList

Chame essa função de membro para adicionar lpszPathName à lista de arquivos MRU.

virtual void AddToRecentFileList(LPCTSTR lpszPathName);

Parâmetros

lpszPathName
O caminho do arquivo.

Comentários

Você deve chamar a função de membro LoadStdProfileSettings para carregar a lista de arquivos MRU atual antes de usar essa função de membro.

A estrutura chama essa função de membro quando abre um arquivo ou executa o comando Salvar como para salvar um arquivo com um novo nome.

Exemplo

// This adds the pathname c:\temp\test.doc to the top of
// the most recently used (MRU) list in the File menu.
AfxGetApp()->AddToRecentFileList(_T("c:\\temp\\test.doc"));

CWinApp::ApplicationRecoveryCallback

Chamado pela estrutura quando o aplicativo é encerrado inesperadamente.

virtual DWORD ApplicationRecoveryCallback(LPVOID lpvParam);

Parâmetros

lpvParam
[em] Reservado para uso futuro.

Valor de retorno

0 se este método for bem-sucedido; diferente de zero se ocorrer um erro.

Comentários

Se seu aplicativo suportar o gerenciador de reinicialização, a estrutura chamará essa função quando seu aplicativo for encerrado inesperadamente.

A implementação padrão do ApplicationRecoveryCallback usa o CDataRecoveryHandler para salvar a lista de documentos atualmente abertos no registro. Este método não salva automaticamente nenhum arquivo.

Para personalizar o comportamento, substitua essa função em uma de classe CWinApp derivada ou passe seu próprio método de recuperação de aplicativo como parâmetro para CWinApp::RegisterWithRestartManager.

CWinApp::CloseAllDocuments

Chame essa função de membro para fechar todos os documentos abertos antes de sair.

void CloseAllDocuments(BOOL bEndSession);

Parâmetros

bEndSession
Especifica se a sessão do Windows está sendo encerrada ou não. É VERDADE se a sessão está sendo encerrada; caso contrário, FALSE.

Comentários

Ligue HideApplication antes de chamar CloseAllDocuments.

CWinApp::CreatePrinterDC

Chame essa função de membro para criar um contexto de dispositivo de impressora (DC) a partir da impressora selecionada.

BOOL CreatePrinterDC(CDC& dc);

Parâmetros

DC
Uma referência ao contexto de um dispositivo de impressora.

Valor de retorno

Diferente de zero se o contexto do dispositivo da impressora for criado com êxito; caso contrário, 0.

Comentários

CreatePrinterDC inicializa o contexto do dispositivo que você passa por referência, para que você possa usá-lo para imprimir.

Se a função for bem-sucedida, quando terminar de imprimir, você deve destruir o contexto do dispositivo. Você pode deixar o destruidor do objeto CDC fazê-lo, ou você pode fazê-lo explicitamente chamando CDC::D eleteDC.

CWinApp::CWinApp

Constrói um objeto CWinApp e passa lpszAppName para ser armazenado como o nome do aplicativo.

CWinApp(LPCTSTR lpszAppName = NULL);

Parâmetros

lpszAppName
Uma cadeia de caracteres terminada em nulo que contém o nome do aplicativo que o Windows usa. Se esse argumento não for fornecido ou for NULL, CWinApp usará a cadeia de caracteres de recurso AFX_IDS_APP_TITLE ou o nome do arquivo executável.

Comentários

Você deve construir um objeto global de sua classe derivada do CWinApp. Você pode ter apenas um objeto CWinApp em seu aplicativo. O construtor armazena um ponteiro para o objeto CWinApp para que WinMain possa chamar as funções de membro do objeto para inicializar e executar o aplicativo.

CWinApp::D elRegTree

Exclui uma chave do Registro específica e todas as suas subchaves.

LONG DelRegTree(
    HKEY hParentKey,
    const CString& strKeyName);

LONG DelRegTree(
    HKEY hParentKey,
    const CString& strKeyName,
    CAtlTransactionManager* pTM = NULL);

Parâmetros

hParentKey
Manipule para uma chave do Registro.

strKeyName
O nome da chave do Registro a ser excluída.

pTM
Ponteiro para o objeto CAtlTransactionManager.

Valor de retorno

Se a função for bem-sucedida, o valor de retorno será ERROR_SUCCESS. Se a função falhar, o valor de retorno é um código de erro diferente de zero definido em Winerror.h.

Comentários

Chame essa função para excluir a chave especificada e suas subchaves.

CWinApp::D oMessageBox

A estrutura chama essa função de membro para implementar uma caixa de mensagem para a função global AfxMessageBox.

virtual int DoMessageBox(
    LPCTSTR lpszPrompt,
    UINT nType,
    UINT nIDPrompt);

Parâmetros

lpszPrompt
Endereço do texto na caixa de mensagem.

nType
A caixa de mensagem estilo.

nIDPrompt
Um índice para uma cadeia de caracteres de contexto da Ajuda.

Valor de retorno

Devolve os mesmos valores que AfxMessageBox.

Comentários

Não chame esta função de membro para abrir uma caixa de mensagem; em vez disso, use AfxMessageBox.

Substitua essa função de membro para personalizar o processamento de chamadas de AfxMessageBox em todo o aplicativo.

CWinApp::D oWaitCursor

Essa função de membro é chamada pela estrutura para implementar CWaitCursor, CCmdTarget::BeginWaitCursor, CCmdTarget::EndWaitCursore CCmdTarget::RestoreWaitCursor.

virtual void DoWaitCursor(int nCode);

Parâmetros

nCode
Se esse parâmetro for 1, um cursor de espera será exibido. Se 0, o cursor de espera é restaurado sem incrementar a contagem de referência. Se -1, o cursor de espera termina.

Comentários

O padrão implementa um cursor de ampulheta. DoWaitCursor mantém uma contagem de referência. Quando positivo, o cursor da ampulheta é exibido.

Embora normalmente não chame DoWaitCursor diretamente, você pode substituir essa função de membro para alterar o cursor de espera ou fazer processamento adicional enquanto o cursor de espera é exibido.

Para uma maneira mais fácil e simplificada de implementar um cursor de espera, use CWaitCursor.

Exemplo

// The following example shows how to display the
// hourglass cursor during some lengthy processing
void CMdiView::OnLButtonDown(UINT nFlags, CPoint point)
{
   UNREFERENCED_PARAMETER(nFlags);
   UNREFERENCED_PARAMETER(point);

   AfxGetApp()->DoWaitCursor(1); // 1->>display the hourglass cursor

   // do some lengthy processing
   Sleep(1000);

   AfxGetApp()->DoWaitCursor(-1); // -1->>remove the hourglass cursor
}

// The next example shows DoWaitCursor with parameter 0. It restores
// the hourglass cursor.
void CMdiView::OnMButtonDown(UINT nFlags, CPoint point)
{
   UNREFERENCED_PARAMETER(nFlags);
   UNREFERENCED_PARAMETER(point);

   AfxGetApp()->DoWaitCursor(1); // display the hourglass cursor

   // do some lengthy processing

   // The message box will normally change the cursor to
   // the standard arrow cursor, and leave the cursor in
   // as the standard arrow cursor when the message box is
   // closed.
   AfxMessageBox(_T("DoWaitCursor Sample"));

   // Call DoWaitCursor with parameter 0 to restore
   // the cursor back to the hourglass cursor.
   AfxGetApp()->DoWaitCursor(0);

   // do some more lengthy processing
   Sleep(1000);

   AfxGetApp()->DoWaitCursor(-1); // remove the hourglass cursor
}

CWinApp::EnableD2DSupport

Visual Studio 2010 SP1 é necessário.

Habilita o suporte a D2D de aplicativos. Chame esse método antes que a janela principal seja inicializada.

BOOL EnableD2DSupport(
    D2D1_FACTORY_TYPE d2dFactoryType = D2D1_FACTORY_TYPE_SINGLE_THREADED,
    DWRITE_FACTORY_TYPE writeFactoryType = DWRITE_FACTORY_TYPE_SHARED);

Parâmetros

d2dFactoryType
O modelo de threading da fábrica D2D e os recursos que ela cria.

writeFactoryType
Um valor que especifica se o objeto de fábrica de gravação será compartilhado ou isolado

Valor de retorno

Retorna TRUE se o suporte a D2D foi habilitado, FALSE - caso contrário

CWinApp::EnableHtmlHelp

Chame essa função de membro de dentro do construtor de sua classe derivada do CWinApppara usar HTMLHelp para a ajuda do seu aplicativo.

void EnableHtmlHelp();

Comentários

CWinApp::EnableShellOpen

Chame essa função, normalmente a partir da substituição de InitInstance, para permitir que os usuários do aplicativo abram arquivos de dados quando clicarem duas vezes nos arquivos de dentro do Gerenciador de Arquivos do Windows.

void EnableShellOpen();

Comentários

Chame a função de membro RegisterShellFileTypes em conjunto com essa função ou forneça um arquivo . REG com o seu pedido de registo manual de tipos de documentos.

Exemplo

// The following code fragment is from CMyApp::InitInstance.
// CMyApp is a CWinApp-derived class.

// enable file manager drag/drop and DDE Execute open
EnableShellOpen();
RegisterShellFileTypes();

CWinApp::EnableTaskbarInteraction

Permite a interação com a Barra de Tarefas.

BOOL EnableTaskbarInteraction(BOOL bEnable = TRUE);

Parâmetros

bAtivar
Especifica se a interação com a barra de tarefas do Windows 7 deve ser habilitada (TRUE) ou desabilitada (FALSE).

Valor de retorno

Retorna TRUE se a interação com a barra de tarefas puder ser habilitada ou desabilitada.

Comentários

Este método deve ser chamado antes da criação da janela principal, caso contrário, ele afirma e retorna FALSE.

CWinApp::ExitInstance

Chamado pela estrutura de dentro da função de membro Run para sair desta instância do aplicativo.

virtual int ExitInstance();

Valor de retorno

O código de saída da aplicação; 0 indica que não há erros e valores superiores a 0 indicam um erro. Esse valor é usado como o valor de retorno de WinMain.

Comentários

Não chame essa função de membro de qualquer lugar, mas dentro da função de membro Run.

A implementação padrão dessa função grava as opções da estrutura no arquivo . Arquivo INI. Substitua essa função para limpar quando o aplicativo for encerrado.

Exemplo

int CMyApp::ExitInstance()
{
   if (m_pMySampleMem)
      delete m_pMySampleMem;

   DoCleanup();

   return CWinApp::ExitInstance();
}

CWinApp::GetApplicationRecoveryParameter

Recupera o parâmetro de entrada para o método de recuperação do aplicativo.

virtual LPVOID GetApplicationRecoveryParameter();

Valor de retorno

O parâmetro de entrada padrão para o método de recuperação do aplicativo.

Comentários

O comportamento padrão dessa função retorna NULL.

Para obter mais informações, consulte CWinApp::ApplicationRecoveryCallback.

CWinApp::GetApplicationRecoveryPingInterval

Retorna o período de tempo que o gerenciador de reinicialização aguarda o retorno da função de retorno de chamada de recuperação.

virtual DWORD GetApplicationRecoveryPingInterval();

Valor de retorno

O período de tempo em milissegundos.

Comentários

Quando um aplicativo registrado no gerenciador de reinicialização é encerrado inesperadamente, o aplicativo tenta salvar documentos abertos e chama a função de retorno de chamada de recuperação. A função de retorno de chamada de recuperação padrão é CWinApp::ApplicationRecoveryCallback.

O período de tempo que a estrutura aguarda o retorno da função de retorno de chamada de recuperação é o intervalo de ping. Você pode personalizar o intervalo de ping substituindo CWinApp::GetApplicationRecoveryPingInterval ou fornecendo um valor personalizado para RegisterWithRestartManager.

CWinApp::GetApplicationRestartFlags

Retorna os sinalizadores para o gerenciador de reinicialização.

virtual DWORD GetApplicationRestartFlags();

Valor de retorno

Os sinalizadores para o gerenciador de reinicialização. A implementação padrão retorna 0.

Comentários

Os sinalizadores para o gerenciador de reinicialização não têm efeito com a implementação padrão. Eles são fornecidos para uso futuro.

Você define os sinalizadores quando registra o aplicativo com o gerenciador de reinicialização usando CWinApp::RegisterWithRestartManager.

Os valores possíveis para os sinalizadores do gerenciador de reinicialização são os seguintes:

  • RESTART_NO_CRASH

  • RESTART_NO_HANG

  • RESTART_NO_PATCH

  • RESTART_NO_REBOOT

CWinApp::GetAppRegistryKey

Retorna a chave para HKEY_CURRENT_USER\"Software"\RegistryKey\ProfileName.

HKEY GetAppRegistryKey(CAtlTransactionManager* pTM = NULL);

Parâmetros

pTM
Ponteiro para um objeto CAtlTransactionManager.

Valor de retorno

Chave de aplicação se a função for bem-sucedida; caso contrário, NULL.

Comentários

CWinApp::GetDataRecoveryHandler

Obtém o manipulador de recuperação de dados para esta instância do aplicativo.

virtual CDataRecoveryHandler *GetDataRecoveryHandler();

Valor de retorno

O manipulador de recuperação de dados para esta instância do aplicativo.

Comentários

Cada aplicativo que usa o gerenciador de reinicialização deve ter uma instância do CDataRecoveryHandler Class. Esta classe é responsável por monitorar documentos abertos e salvar automaticamente arquivos. O comportamento do CDataRecoveryHandler depende da configuração do gerenciador de reinicialização. Para obter mais informações, consulte CDataRecoveryHandler Class.

Esse método retorna NULL em sistemas operacionais anteriores ao Windows Vista. O gerenciador de reinicialização não é suportado em sistemas operacionais anteriores ao Windows Vista.

Se o aplicativo não tiver atualmente um manipulador de recuperação de dados, esse método criará um e retornará um ponteiro para ele.

CWinApp::GetFirstDocTemplatePosition

Obtém a posição do primeiro modelo de documento no aplicativo.

POSITION GetFirstDocTemplatePosition() const;

Valor de retorno

Um valor POSITION que pode ser usado para iteração ou recuperação de ponteiro de objeto; NULL se a lista estiver vazia.

Comentários

Use o valor POSITION retornado em uma chamada para GetNextDocTemplate para obter o primeiro objeto CDocTemplate.

CWinApp::GetHelpMode

Recupera o tipo de ajuda usado pelo aplicativo.

AFX_HELP_TYPE GetHelpMode();

Valor de retorno

O tipo de ajuda usado pelo aplicativo. Consulte CWinApp::m_eHelpType para obter mais informações.

CWinApp::GetNextDocTemplate

Obtém o modelo de documento identificado por pose, em seguida, define pos para o valor POSITION.

CDocTemplate* GetNextDocTemplate(POSITION& pos) const;

Parâmetros

pos
Uma referência a um valor POSITION retornado por uma chamada anterior para GetNextDocTemplate ou GetFirstDocTemplatePosition. O valor é atualizado para a próxima posição por esta chamada.

Valor de retorno

Um ponteiro para um objeto CDocTemplate.

Comentários

Você pode usar GetNextDocTemplate em um loop de iteração de encaminhamento se estabelecer a posição inicial com uma chamada para GetFirstDocTemplatePosition.

Você deve garantir que seu valor POSITION seja válido. Se for inválido, a versão de depuração da Microsoft Foundation Class Library afirma.

Se o modelo de documento recuperado for o último disponível, o novo valor de pos será definido como NULL.

CWinApp::GetPrinterDeviceDefaults

Chame essa função de membro para preparar um contexto de dispositivo de impressora para impressão.

BOOL GetPrinterDeviceDefaults(struct tagPDA* pPrintDlg);

Parâmetros

pPrintDlg
Um ponteiro para uma estrutura de PRINTDLG.

Valor de retorno

Diferente de zero se for bem-sucedido; caso contrário, 0.

Comentários

Recupera os padrões atuais da impressora do Windows . INI, conforme necessário, ou usa a última configuração de impressora definida pelo usuário na Configuração de impressão.

Exemplo

void CMyApp::SetLandscapeMode()
{
   PRINTDLG pd;
   pd.lStructSize = (DWORD)sizeof(PRINTDLG);
   BOOL bRet = GetPrinterDeviceDefaults(&pd);
   if (bRet)
   {
      // protect memory handle with ::GlobalLock and ::GlobalUnlock
      DEVMODE FAR *pDevMode = (DEVMODE FAR*)::GlobalLock(pd.hDevMode);
      // set orientation to landscape
      pDevMode->dmOrientation = DMORIENT_LANDSCAPE;
      ::GlobalUnlock(pd.hDevMode);
   }
}

CWinApp::GetProfileBinary

Chame essa função de membro para recuperar dados binários de uma entrada dentro de uma seção especificada do registro do aplicativo ou . Arquivo INI.

BOOL GetProfileBinary(
    LPCTSTR lpszSection,
    LPCTSTR lpszEntry,
    LPBYTE* ppData,
    UINT* pBytes);

Parâmetros

lpszSecção
Aponta para uma cadeia de caracteres terminada em nulo que especifica a seção que contém a entrada.

lpszEntry
Aponta para uma cadeia de caracteres terminada em nulo que contém a entrada cujo valor deve ser recuperado.

ppData
Aponta para um ponteiro que receberá o endereço dos dados.

pBytes
Aponta para uma UINT que receberá o tamanho dos dados (em bytes).

Valor de retorno

Diferente de zero se for bem-sucedido; caso contrário, 0.

Comentários

Essa função de membro não diferencia maiúsculas de minúsculas, portanto, as cadeias de caracteres nos parâmetros lpszSection e lpszEntry podem diferir em maiúsculas e minúsculas.

Observação

GetProfileBinary aloca um buffer e retorna seu endereço em * ppData. O chamador é responsável por liberar o buffer usando excluir [].

Importante

Os dados retornados por essa função não são necessariamente encerrados NULL e o chamador deve executar a validação. Para obter mais informações, consulte Evitando saturações de buffer.

Exemplo

CWinApp* pApp = AfxGetApp();

const TCHAR* pszKey = _T("My Section");
struct complex {
  double re, im;
} myData = { 1.4142, -0.5 };

// Write the information to the registry.

pApp->WriteProfileBinary(pszKey, _T("ComplexData"), (LPBYTE)&myData, 
   sizeof(myData));

// Read the information from the registry.

complex* pData;
UINT n;
BOOL ret = pApp->GetProfileBinary(pszKey, _T("ComplexData"), (LPBYTE*)&pData, 
   &n);

ASSERT(ret);
ASSERT(n == sizeof(complex));
ASSERT(myData.re == pData->re);
ASSERT(myData.im == pData->im);
delete [] pData; // free the buffer

Para obter um exemplo adicional, consulte CWinApp::WriteProfileBinary.

CWinApp::GetProfileInt

Chame essa função de membro para recuperar o valor de um inteiro de uma entrada dentro de uma seção especificada do registro do aplicativo ou . Arquivo INI.

UINT GetProfileInt(
    LPCTSTR lpszSection,
    LPCTSTR lpszEntry,
    int nDefault);

Parâmetros

lpszSecção
Aponta para uma cadeia de caracteres terminada em nulo que especifica a seção que contém a entrada.

lpszEntry
Aponta para uma cadeia de caracteres terminada em nulo que contém a entrada cujo valor deve ser recuperado.

nDefault
Especifica o valor padrão a ser retornado se a estrutura não puder encontrar a entrada.

Valor de retorno

O valor inteiro da cadeia de caracteres que segue a entrada especificada se a função for bem-sucedida. O valor de retorno é o valor do parâmetro nDefault se a função não encontrar a entrada. O valor de retorno é 0 se o valor que corresponde à entrada especificada não for um inteiro.

Esta função de membro suporta notação hexadecimal para o valor no . Arquivo INI. Ao recuperar um inteiro assinado, você deve converter o valor em um int.

Comentários

Essa função de membro não diferencia maiúsculas de minúsculas, portanto, as cadeias de caracteres nos parâmetros lpszSection e lpszEntry podem diferir em maiúsculas e minúsculas.

Importante

Os dados retornados por essa função não são necessariamente encerrados NULL e o chamador deve executar a validação. Para obter mais informações, consulte Evitando saturações de buffer.

Exemplo

CWinApp *pApp = AfxGetApp();

const TCHAR *pszKey = _T("My Section");
const TCHAR *pszName = _T("Julian");
int iAge = 26;

// Write the information to the registry.

pApp->WriteProfileString(pszKey, _T("Name"), pszName);
pApp->WriteProfileInt(pszKey, _T("Age"), iAge);

// Read the information from the registry.

CString strName = pApp->GetProfileString(pszKey, _T("Name"));
int iAge2 = pApp->GetProfileInt(pszKey, _T("Age"), 0);

ASSERT(strName == pszName);
ASSERT(iAge2 == iAge);

Para obter um exemplo adicional, consulte CWinApp::WriteProfileInt.

CWinApp::GetProfileString

Chame essa função de membro para recuperar a cadeia de caracteres associada a uma entrada dentro da seção especificada no registro do aplicativo ou . Arquivo INI.

CString GetProfileString(
    LPCTSTR lpszSection,
    LPCTSTR lpszEntry,
    LPCTSTR lpszDefault = NULL);

Parâmetros

lpszSecção
Aponta para uma cadeia de caracteres terminada em nulo que especifica a seção que contém a entrada.

lpszEntry
Aponta para uma cadeia de caracteres terminada em nulo que contém a entrada cuja cadeia de caracteres deve ser recuperada. Esse valor não deve ser NULL.

lpszDefault
Aponta para o valor da cadeia de caracteres padrão para a entrada fornecida se a entrada não puder ser encontrada no arquivo de inicialização.

Valor de retorno

O valor de retorno é a cadeia de caracteres do arquivo . INI ou lpszDefault se a cadeia de caracteres não puder ser encontrada. O comprimento máximo da cadeia de caracteres suportado pela estrutura é _MAX_PATH. Se lpszDefault for NULL, o valor de retorno será uma cadeia de caracteres vazia.

Comentários

Importante

Os dados retornados por essa função não são necessariamente encerrados NULL e o chamador deve executar a validação. Para obter mais informações, consulte Evitando saturações de buffer.

Exemplo

CWinApp *pApp = AfxGetApp();

CString strSection = _T("My Section");
CString strStringItem = _T("My String Item");
CString strIntItem = _T("My Int Item");

pApp->WriteProfileString(strSection, strStringItem, _T("test"));

CString strValue;
strValue = pApp->GetProfileString(strSection, strStringItem);
ASSERT(strValue == _T("test"));

pApp->WriteProfileInt(strSection, strIntItem, 1234);

int nValue;
nValue = pApp->GetProfileInt(strSection, strIntItem, 0);
ASSERT(nValue == 1234);

Para outro exemplo, consulte o exemplo de CWinApp::GetProfileInt.

CWinApp::GetSectionKey

Retorna a chave para HKEY_CURRENT_USER\"Software"\RegistryKey\AppName\lpszSection.

HKEY GetSectionKey(
    LPCTSTR lpszSection,
    CAtlTransactionManager* pTM = NULL);

Parâmetros

lpszSecção
O nome da chave a ser obtida.

pTM
Ponteiro para um objeto CAtlTransactionManager.

Valor de retorno

Tecla de secção se a função for bem-sucedida; caso contrário, NULL.

Comentários

CWinApp::HideApplication

Chame essa função de membro para ocultar um aplicativo antes de fechar os documentos abertos.

void HideApplication();

CWinApp::HtmlHelp

Chame essa função de membro para invocar o aplicativo HTMLHelp.

virtual void HtmlHelp(
    DWORD_PTR dwData,
    UINT nCmd = 0x000F);

Parâmetros

dwData
Especifica dados adicionais. O valor usado depende do valor do parâmetro nCmd. O padrão é 0x000F o que significa HH_HELP_CONTEXT.

nCmd
Especifica o tipo de ajuda solicitada. Para obter uma lista de valores possíveis e como eles afetam o parâmetro dwData, consulte o parâmetro uCommand descrito no HtmlHelpW ou funções da API de HtmlHelpA no SDK do Windows.

Comentários

A estrutura também chama essa função para invocar o aplicativo HTMLHelp.

A estrutura fechará automaticamente o aplicativo HTMLHelp quando seu aplicativo for encerrado.

CWinApp::InitInstance

O Windows permite que várias cópias do mesmo programa sejam executadas ao mesmo tempo.

virtual BOOL InitInstance();

Valor de retorno

Diferente de zero se a inicialização for bem-sucedida; caso contrário, 0.

Comentários

A inicialização do aplicativo é conceitualmente dividida em duas seções: inicialização única do aplicativo que é feita na primeira vez que o programa é executado e inicialização de instância que é executada cada vez que uma cópia do programa é executada, incluindo a primeira vez. A implementação do WinMain pelo quadro chama essa função.

Substitua InitInstance para inicializar cada nova instância do seu aplicativo em execução no Windows. Normalmente, você substitui InitInstance para construir seu objeto de janela principal e define o membro de dados CWinThread::m_pMainWnd para apontar para essa janela. Para obter mais informações sobre como substituir essa função de membro, consulte CWinApp: The Application Class.

Observação

Os aplicativos MFC devem ser inicializados como apartamento de thread único (STA). Se você chamar CoInitializeEx em sua substituição de InitInstance, especifique COINIT_APARTMENTTHREADED (em vez de COINIT_MULTITHREADED).

Exemplo

// AppWizard implements the InitInstance overridable function 
// according to options you select.  For example, the multiple document
// interface (MDI) option was chosen for the AppWizard code created
// below. You can add other per-instance initializations to the code
// created by AppWizard.

BOOL CMFCListViewApp::InitInstance()
{
   AfxSetAmbientActCtx(FALSE);
   // Remainder of function definition omitted.

   CWinApp::InitInstance();

   // Initialize OLE libraries
   if (!AfxOleInit())
   {
      AfxMessageBox(_T("OleInit failed."));
      return FALSE;
   }

   // Standard initialization
   // If you are not using these features and wish to reduce the size
   // of your final executable, you should remove from the following
   // the specific initialization routines you do not need
   // Change the registry key under which our settings are stored
   // TODO: You should modify this string to be something appropriate
   // such as the name of your company or organization
   SetRegistryKey(_T("Local AppWizard-Generated Applications"));
   LoadStdProfileSettings(4);  // Load standard INI file options (including MRU)
   // Register the application's document templates.  Document templates
   //  serve as the connection between documents, frame windows and views
   CMultiDocTemplate* pDocTemplate;
   pDocTemplate = new CMultiDocTemplate(IDR_MFCListViewTYPE,
      RUNTIME_CLASS(CMFCListViewDoc),
      RUNTIME_CLASS(CChildFrame), // custom MDI child frame
      RUNTIME_CLASS(CMyListView));
   if (!pDocTemplate)
      return FALSE;
   AddDocTemplate(pDocTemplate);

   // create main MDI Frame window
   CMainFrame* pMainFrame = new CMainFrame;
   if (!pMainFrame || !pMainFrame->LoadFrame(IDR_MAINFRAME))
   {
      delete pMainFrame;
      return FALSE;
   }
   m_pMainWnd = pMainFrame;
   // call DragAcceptFiles only if there's a suffix
   //  In an MDI app, this should occur immediately after setting m_pMainWnd


   // Parse command line for standard shell commands, DDE, file open
   CCommandLineInfo cmdInfo;
   ParseCommandLine(cmdInfo);


   // Dispatch commands specified on the command line.  Will return FALSE if
   // app was launched with /RegServer, /Register, /Unregserver or /Unregister.
   if (!ProcessShellCommand(cmdInfo))
      return FALSE;
   // The main window has been initialized, so show and update it
   pMainFrame->ShowWindow(m_nCmdShow);
   pMainFrame->UpdateWindow();

   return TRUE;
}

CWinApp::IsTaskbarInteractionEnabled

Informa se a interação com a Barra de Tarefas do Windows 7 está ativada.

virtual BOOL IsTaskbarInteractionEnabled();

Valor de retorno

Retorna TRUE se EnableTaskbarInteraction tiver sido chamado e o sistema operacional for Windows 7 ou superior.

Comentários

Interação com a barra de tarefas significa que o aplicativo MDI exibe o conteúdo de crianças MDI em miniaturas separadas com guias que aparecem quando o ponteiro do mouse está sobre o botão da barra de tarefas do aplicativo.

CWinApp::LoadCursor

Carrega o recurso de cursor nomeado por lpszResourceName ou especificado por nIDResource do arquivo executável atual.

HCURSOR LoadCursor(LPCTSTR lpszResourceName) const;  HCURSOR LoadCursor(UINT nIDResource) const;

Parâmetros

lpszResourceName
Aponta para uma cadeia de caracteres terminada em nulo que contém o nome do recurso do cursor. Você pode usar um CString para esse argumento.

nIDResource
ID do recurso do cursor. Para obter uma lista de recursos, consulte LoadCursor no SDK do Windows.

Valor de retorno

Uma alça para um cursor se for bem-sucedida; caso contrário, NULL.

Comentários

LoadCursor carrega o cursor na memória somente se ele não tiver sido carregado anteriormente; caso contrário, ele recupera um identificador do recurso existente.

Use o LoadStandardCursor ou função de membro do LoadOEMCursor para acessar os cursores predefinidos do Windows.

Exemplo

HCURSOR hCursor;

// Load a cursor resource that was originally created using
// the Graphics Editor and assigned the i.d. IDC_MYCURSOR.
hCursor = AfxGetApp()->LoadCursor(IDC_MYCURSOR);

CWinApp::LoadIcon

Carrega o recurso de ícone nomeado por lpszResourceName ou especificado por nIDResource do arquivo executável.

HICON LoadIcon(LPCTSTR lpszResourceName) const;  HICON LoadIcon(UINT nIDResource) const;

Parâmetros

lpszResourceName
Aponta para uma cadeia de caracteres terminada em nulo que contém o nome do recurso de ícone. Você também pode usar um CString para esse argumento.

nIDResource
Número de identificação do recurso de ícone.

Valor de retorno

Um identificador para um ícone, se bem-sucedido; caso contrário, NULL.

Comentários

LoadIcon carrega o ícone somente se ele não tiver sido carregado anteriormente; caso contrário, ele recupera um identificador do recurso existente.

Você pode usar o LoadStandardIcon ou função de membro LoadOEMIcon para acessar os ícones predefinidos do Windows.

Observação

Essa função de membro chama a função de API do Win32 LoadIcon, que só pode carregar um ícone cujo tamanho esteja em conformidade com os valores SM_CXICON e SM_CYICON métricas do sistema.

CWinApp::LoadOEMCursor

Carrega o recurso de cursor predefinido do Windows especificado por nIDCursor.

HCURSOR LoadOEMCursor(UINT nIDCursor) const;

Parâmetros

nIDCursor
Um identificador de constante de manifesto OCR_ que especifica um cursor predefinido do Windows. Você deve ter #define OEMRESOURCE antes de #include \<afxwin.h> para obter acesso às constantes de OCR_ em WINDOWS.H.

Valor de retorno

Uma alça para um cursor se for bem-sucedida; caso contrário, NULL.

Comentários

Use o LoadOEMCursor ou LoadStandardCursor função de membro para acessar os cursores predefinidos do Windows.

Exemplo

// In the stdafx.h file, add #define OEMRESOURCE to
// include the windows.h definitions of OCR_ values.
#define OEMRESOURCE
#include <afxwin.h> // MFC core and standard components
#include <afxext.h> // MFC extensions

 

HCURSOR hCursor;
// Load the predefined WIndows "size all" cursor.
hCursor = AfxGetApp()->LoadOEMCursor(OCR_SIZEALL);

CWinApp::LoadOEMIcon

Carrega o recurso de ícone predefinido do Windows especificado pelo nIDIcon.

HICON LoadOEMIcon(UINT nIDIcon) const;

Parâmetros

nIDIcon
Um identificador de constante de manifesto OIC_ que especifica um ícone predefinido do Windows. Você deve ter #define OEMRESOURCE antes de #include \<afxwin.h> para acessar as constantes de OIC_ em WINDOWS.H.

Valor de retorno

Um identificador para um ícone, se bem-sucedido; caso contrário, NULL.

Comentários

Use o LoadOEMIcon ou LoadStandardIcon função de membro para acessar os ícones predefinidos do Windows.

CWinApp::LoadStandardCursor

Carrega o recurso de cursor predefinido do Windows que lpszCursorName especifica.

HCURSOR LoadStandardCursor(LPCTSTR lpszCursorName) const;

Parâmetros

lpszCursorName
Um identificador de constante de manifesto IDC_ que especifica um cursor predefinido do Windows. Esses identificadores são definidos em WINDOWS.H. A lista a seguir mostra os possíveis valores predefinidos e significados para lpszCursorName:

  • IDC_ARROW Cursor de seta padrão

  • IDC_IBEAM Cursor de inserção de texto padrão

  • IDC_WAIT Cursor de ampulheta usado quando o Windows executa uma tarefa demorada

  • IDC_CROSS Cursor cruzado para seleção

  • IDC_UPARROW Seta que aponta para cima

  • IDC_SIZE Obsoletos e sem suporte; use IDC_SIZEALL

  • IDC_SIZEALL Uma seta de quatro pontas. O cursor a ser usado para redimensionar uma janela.

  • IDC_ICON Obsoletos e sem suporte. Use IDC_ARROW.

  • IDC_SIZENWSE Seta de duas pontas com extremidades no canto superior esquerdo e inferior direito

  • IDC_SIZENESW Seta de duas pontas com extremidades no canto superior direito e no canto inferior esquerdo

  • IDC_SIZEWE Seta horizontal de duas pontas

  • IDC_SIZENS Seta vertical de duas pontas

Valor de retorno

Uma alça para um cursor se for bem-sucedida; caso contrário, NULL.

Comentários

Use a função de membro LoadStandardCursor ou LoadOEMCursor para acessar os cursores predefinidos do Windows.

Exemplo

HCURSOR hCursor;

// Load the predefined Windows "up arrow" cursor.
hCursor = AfxGetApp()->LoadStandardCursor(IDC_UPARROW);

CWinApp::LoadStandardIcon

Carrega o recurso de ícone predefinido do Windows que lpszIconName especifica.

HICON LoadStandardIcon(LPCTSTR lpszIconName) const;

Parâmetros

lpszIconName
Um identificador de constante de manifesto que especifica um ícone predefinido do Windows. Esses identificadores são definidos em WINDOWS.H. Para obter uma lista dos possíveis valores predefinidos e suas descrições, consulte o parâmetro lpIconName em LoadIcon no SDK do Windows.

Valor de retorno

Um identificador para um ícone, se bem-sucedido; caso contrário, NULL.

Comentários

Use o LoadStandardIcon ou função de membro do LoadOEMIcon para acessar os ícones predefinidos do Windows.

CWinApp::LoadStdProfileSettings

Chame essa função de membro de dentro do InitInstance função de membro para habilitar e carregar a lista de arquivos usados mais recentemente (MRU) e o último estado de visualização.

void LoadStdProfileSettings(UINT nMaxMRU = _AFX_MRU_COUNT);

Parâmetros

nMaxMRU
O número de arquivos usados recentemente para rastrear.

Comentários

Se nMaxMRU for 0, nenhuma lista de MRU será mantida.

CWinApp::m_bHelpMode

TRUE se o aplicativo estiver no modo de contexto da Ajuda (convencionalmente invocado com SHIFT + F1); caso contrário, FALSE.

BOOL m_bHelpMode;

Comentários

No modo de contexto da Ajuda, o cursor torna-se um ponto de interrogação e o utilizador pode movê-lo pelo ecrã. Examine esse sinalizador se quiser implementar uma manipulação especial quando estiver no modo de Ajuda. m_bHelpMode é uma variável pública do tipo BOOL.

CWinApp::m_dwRestartManagerSupportFlags

Sinalizadores que determinam como o gerenciador de reinicialização se comporta.

DWORD m_dwRestartManagerSupportFlags;

Comentários

Para habilitar o gerenciador de reinicialização, defina m_dwRestartManagerSupportFlags para o comportamento desejado. A tabela a seguir mostra os sinalizadores disponíveis.

Bandeira Descrição
AFX_RESTART_MANAGER_SUPPORT_RESTART O aplicativo é registrado usando CWinApp::RegisterWithRestartManager. O gerenciador de reinicialização é responsável por reiniciar o aplicativo se ele sair inesperadamente.
- AFX_RESTART_MANAGER_SUPPORT_RECOVERY O aplicativo é registrado com o gerenciador de reinicialização e o gerenciador de reinicialização chama a função de retorno de chamada de recuperação quando reinicia o aplicativo. A função de retorno de chamada de recuperação padrão é CWinApp::ApplicationRecoveryCallback.
- AFX_RESTART_MANAGER_AUTOSAVE_AT_RESTART O salvamento automático é ativado e o gerenciador de reinicialização salva automaticamente todos os documentos abertos quando o aplicativo é reiniciado.
- AFX_RESTART_MANAGER_AUTOSAVE_AT_INTERVAL A gravação automática está ativada e o gestor de reinício guarda automaticamente todos os documentos abertos a intervalos regulares. O intervalo é definido por CWinApp::m_nAutosaveInterval.
- AFX_RESTART_MANAGER_REOPEN_PREVIOUS_FILES O gerenciador de reinicialização abre documentos abertos anteriormente depois de reiniciar o aplicativo a partir de uma saída inesperada. O CDataRecoveryHandler Class manipula o armazenamento da lista de documentos abertos e restaurá-los.
- AFX_RESTART_MANAGER_RESTORE_AUTOSAVED_FILES O gerenciador de reinicialização solicita que o usuário restaure os arquivos salvos automaticamente depois de reiniciar o aplicativo. A classe CDataRecoveryHandler consulta o usuário.
- AFX_RESTART_MANAGER_SUPPORT_NO_AUTOSAVE A união de AFX_RESTART_MANAGER_SUPPORT_RESTART, AFX_RESTART_MANAGER_SUPPORT_RECOVER e AFX_RESTART_MANAGER_REOPEN_PREVIOUS_FILES.
- AFX_RESTART_MANAGER_SUPPORT_ALL_ASPECTS A união de AFX_RESTART_MANAGER_SUPPORT_NO_AUTOSAVE, AFX_RESTART_MANAGER_AUTOSAVE_AT_RESTART, AFX_RESTART_MANAGER_AUTOSAVE_AT_INTERVAL e AFX_RESTART_MANAGER_RESTORE_AUTOSAVED_FILES.
- AFX_RESTART_MANAGER_SUPPORT_RESTART_ASPECTS A união de AFX_RESTART_MANAGER_SUPPORT_RESTART, AFX_RESTART_MANAGER_AUTOSAVE_AT_RESTART, AFX_RESTART_MANAGER_REOPEN_PREVIOUS_FILES e AFX_RESTART_MANAGER_RESTORE_AUTOSAVED_FILES.
- AFX_RESTART_MANAGER_SUPPORT_RECOVERY_ASPECTS O sindicato ofAFX_RESTART_MANAGER_SUPPORT_RECOVERY, AFX_RESTART_MANAGER_AUTOSAVE_AT_INTERVAL, AFX_RESTART_MANAGER_REOPEN_PREVIOUS_FILES e AFX_RESTART_MANAGER_RESTORE_AUTOSAVED_FILES.

CWinApp::m_eHelpType

O tipo desse membro de dados é o tipo enumerado AFX_HELP_TYPE, que é definido dentro da classe CWinApp.

AFX_HELP_TYPE m_eHelpType;

Comentários

A enumeração AFX_HELP_TYPE é definida da seguinte forma:

enum AFX_HELP_TYPE {
    afxWinHelp = 0,
    afxHTMLHelp = 1
    };
  • Para definir a ajuda do aplicativo como Ajuda HTML, chame SetHelpMode e especifique afxHTMLHelp.

  • Para definir a ajuda do aplicativo para WinHelp, chame SetHelpMode e especifique afxWinHelp.

CWinApp::m_hInstance

Corresponde ao parâmetro hInstance passado pelo Windows para WinMain.

HINSTANCE m_hInstance;

Comentários

O membro de dados m_hInstance é um identificador para a instância atual do aplicativo em execução no Windows. Isso é retornado pela função global AfxGetInstanceHandle. m_hInstance é uma variável pública do tipo HINSTANCE.

Exemplo

// Typically you do not need to pass the application's hInstance
// to Windows APIs directly because there are equivalent MFC
// member functions that pass the hInstance for you.  The following
// example is not typical:

HCURSOR hCursor;
hCursor = ::LoadCursor(AfxGetApp()->m_hInstance, 
   MAKEINTRESOURCE(IDC_MYCURSOR));

// A more direct way to get the application's hInstance is to
// call AfxGetInstanceHandle:
hCursor = ::LoadCursor(AfxGetInstanceHandle(), 
   MAKEINTRESOURCE(IDC_MYCURSOR));

// If you need the hInstance to load a resource, it is better
// to call AfxGetResourceHandle instead of AfxGetInstanceHandle:
hCursor = ::LoadCursor(AfxGetResourceHandle(), 
   MAKEINTRESOURCE(IDC_MYCURSOR));

// A better way to load the cursor resource is to call
// CWinApp::LoadCursor
hCursor = AfxGetApp()->LoadCursor(IDC_MYCURSOR);

CWinApp::m_lpCmdLine

Corresponde ao parâmetro lpCmdLine passado pelo Windows para WinMain.

LPTSTR m_lpCmdLine;

Comentários

Aponta para uma cadeia de caracteres terminada em nulo que especifica a linha de comando para o aplicativo. Use m_lpCmdLine para acessar quaisquer argumentos de linha de comando que o usuário inseriu quando o aplicativo foi iniciado. m_lpCmdLine é uma variável pública do tipo LPTSTR.

Exemplo

if (m_lpCmdLine[0] == _T('\0'))
{
   // Create a new (empty) document.
   OnFileNew();
}
else
{
   // Open a file passed as the first command line parameter.
   OpenDocumentFile(m_lpCmdLine);
}

CWinApp::m_nAutosaveInterval

O período de tempo em milissegundos entre os salvamentos automáticos.

int m_nAutosaveInterval;

Comentários

Você pode configurar o gerenciador de reinicialização para salvar automaticamente documentos abertos em intervalos definidos. Se seu aplicativo não salva arquivos automaticamente, esse parâmetro não tem efeito.

CWinApp::m_nCmdShow

Corresponde ao parâmetro nCmdShow passado pelo Windows para WinMain.

int m_nCmdShow;

Comentários

Você deve passar m_nCmdShow como um argumento ao chamar CWnd::ShowWindow para a janela principal do seu aplicativo. m_nCmdShow é uma variável pública do tipo int.

Exemplo

// The following code fragment is taken from CMyApp::InitInstance.
// CMyApp is derived from CWinApp.

// The main window has been initialized, so show and update it
// using the nCmdShow parameter passed to the application when it
// was first launched.
// pMainFrame is the main MDI frame window of our app and is derived
// from CMDIFrameWnd.
pMainFrame->ShowWindow(m_nCmdShow);
pMainFrame->UpdateWindow();

CWinApp::m_pActiveWnd

Use este membro de dados para armazenar um ponteiro para a janela principal do aplicativo de contêiner OLE que tem seu aplicativo de servidor OLE ativado.

Comentários

Se esse membro de dados for NULL, o aplicativo não estará ativo no local.

A estrutura define essa variável de membro quando a janela de quadro é ativada in-loco por um aplicativo de contêiner OLE.

CWinApp::m_pDataRecoveryHandler

Ponteiro para o manipulador de recuperação de dados para o aplicativo.

CDataRecoveryHandler* m_pDataRecoveryHandler;

Comentários

O manipulador de recuperação de dados de um aplicativo monitora documentos abertos e os salva automaticamente. A estrutura usa o manipulador de recuperação de dados para restaurar arquivos salvos automaticamente quando um aplicativo é reiniciado após ser encerrado inesperadamente. Para obter mais informações, consulte CDataRecoveryHandler Class.

CWinApp::m_pszAppName

Especifica o nome do aplicativo.

LPCTSTR m_pszAppName;

Comentários

O nome do aplicativo pode vir do parâmetro passado para o CWinApp construtor ou, se não for especificado, para a cadeia de caracteres de recurso com a ID de AFX_IDS_APP_TITLE. Se o nome do aplicativo não for encontrado no recurso, ele vem do nome do arquivo .EXE do programa.

Retornado pela função global AfxGetAppName. m_pszAppName é uma variável pública do tipo const char*.

Observação

Se você atribuir um valor a m_pszAppName, ele deverá ser alocado dinamicamente na pilha. O destruidor de CWinApp chama livre ( ) com este ponteiro. Muitos querem usar a função de biblioteca de tempo de execução _tcsdup( ) para fazer a alocação. Além disso, libere a memória associada ao ponteiro atual antes de atribuir um novo valor. Por exemplo:

//First free the string allocated by MFC at CWinApp startup.
//The string is allocated before InitInstance is called.
free((void*)m_pszAppName);
//Change the name of the application file.
//The CWinApp destructor will free the memory.
m_pszAppName = _tcsdup(_T("c:\\somedir\\myapp.exe"));

Exemplo

CWnd *pWnd = AfxGetMainWnd();
// Set pWnd to some CWnd object whose window has already
// been created.

// The following call to CWnd::MessageBox uses the application
// title as the message box caption.
pWnd->MessageBox(_T("Some message"), AfxGetApp()->m_pszAppName);

// A more direct way to get the application title is to
// call AfxGetAppName:
pWnd->MessageBox(_T("Some message"), AfxGetAppName());

// An easier way to display a message box using the application
// title as the message box caption is to call AfxMessageBox:
AfxMessageBox(_T("Some message"));

CWinApp::m_pszExeName

Contém o nome do arquivo executável do aplicativo sem uma extensão.

LPCTSTR m_pszExeName;

Comentários

Ao contrário m_pszAppName, este nome não pode conter espaços em branco. m_pszExeName é uma variável pública do tipo const char*.

Observação

Se você atribuir um valor a m_pszExeName, ele deverá ser alocado dinamicamente na pilha. O destruidor de CWinApp chama livre ( ) com este ponteiro. Muitos querem usar a função de biblioteca de tempo de execução _tcsdup( ) para fazer a alocação. Além disso, libere a memória associada ao ponteiro atual antes de atribuir um novo valor. Por exemplo:

//First free the string allocated by MFC at CWinApp startup.
//The string is allocated before InitInstance is called.
free((void*)m_pszExeName);
//Change the name of the .EXE file.
//The CWinApp destructor will free the memory.
m_pszExeName = _tcsdup(_T("c:\\somedir\\myapp"));

CWinApp::m_pszHelpFilePath

Contém o caminho para o arquivo de Ajuda do aplicativo.

LPCTSTR m_pszHelpFilePath;

Comentários

Por padrão, a estrutura inicializa m_pszHelpFilePath ao nome do aplicativo com ". HLP", acrescentou. Para alterar o nome do arquivo de ajuda, defina m_pszHelpFilePath para apontar para uma cadeia de caracteres que contenha o nome completo do arquivo de ajuda desejado. Um lugar conveniente para fazer isso é na função InitInstance do aplicativo. m_pszHelpFilePath é uma variável pública do tipo const char*.

Observação

Se você atribuir um valor a m_pszHelpFilePath, ele deverá ser alocado dinamicamente na pilha. O destruidor de CWinApp chama livre ( ) com este ponteiro. Muitos querem usar a função de biblioteca de tempo de execução _tcsdup( ) para fazer a alocação. Além disso, libere a memória associada ao ponteiro atual antes de atribuir um novo valor. Por exemplo:

//First free the string allocated by MFC at CWinApp startup.
//The string is allocated before InitInstance is called.
free((void*)m_pszHelpFilePath);
//Change the name of the .HLP file.
//The CWinApp destructor will free the memory.
m_pszHelpFilePath = _tcsdup(_T("c:\\somedir\\myhelp.hlp"));

CWinApp::m_pszProfileName

Contém o nome do arquivo . Arquivo INI.

LPCTSTR m_pszProfileName;

Comentários

m_pszProfileName é uma variável pública do tipo const char*.

Observação

Se você atribuir um valor a m_pszProfileName, ele deverá ser alocado dinamicamente na pilha. O destruidor de CWinApp chama livre ( ) com este ponteiro. Muitos querem usar a função de biblioteca de tempo de execução _tcsdup( ) para fazer a alocação. Além disso, libere a memória associada ao ponteiro atual antes de atribuir um novo valor. Por exemplo:

//First free the string allocated by MFC at CWinApp startup.
//The string is allocated before InitInstance is called.
free((void*)m_pszProfileName);
//Change the name of the .INI file.
//The CWinApp destructor will free the memory.
m_pszProfileName = _tcsdup(_T("c:\\somedir\\myini.ini"));

CWinApp::m_pszRegistryKey

Usado para determinar onde, no registro ou no arquivo INI, as configurações de perfil do aplicativo são armazenadas.

LPCTSTR m_pszRegistryKey;

Comentários

Normalmente, esse membro de dados é tratado como somente leitura.

  • O valor é armazenado em uma chave do Registro. O nome da configuração do perfil do aplicativo é anexado à seguinte chave do Registro: HKEY_CURRENT_USER/Software/LocalAppWizard-Generated/.

Se você atribuir um valor a m_pszRegistryKey, ele deverá ser alocado dinamicamente na pilha. O destruidor de CWinApp chama livre ( ) com este ponteiro. Muitos querem usar a função de biblioteca de tempo de execução _tcsdup( ) para fazer a alocação. Além disso, libere a memória associada ao ponteiro atual antes de atribuir um novo valor. Por exemplo:

//First free the string allocated by MFC at CWinApp startup.
//The string is allocated before InitInstance is called.
free((void*)m_pszRegistryKey);
//Change the name of the registry key.
//The CWinApp destructor will free the memory.
m_pszRegistryKey = _tcsdup(
    _T("HKEY_CURRENT_USER\\Software\\mycompany\\myapp\\thissection\\thisvalue"));

CWinApp::m_pszAppID

ID do modelo de usuário do aplicativo.

LPCTSTR m_pszAppID;

Comentários

CWinApp::OnContextHelp

Lida com a Ajuda SHIFT+F1 dentro do aplicativo.

afx_msg void OnContextHelp();

Comentários

Você deve adicionar uma instrução ON_COMMAND( ID_CONTEXT_HELP, OnContextHelp ) ao seu mapa de mensagens de classe CWinApp e também adicionar uma entrada de tabela aceleradora, normalmente SHIFT+F1, para habilitar essa função de membro.

OnContextHelp coloca o aplicativo no modo de Ajuda. O cursor muda para uma seta e um ponto de interrogação, e o usuário pode mover o ponteiro do mouse e pressionar o botão esquerdo do mouse para selecionar uma caixa de diálogo, janela, menu ou botão de comando. Esta função de membro recupera o contexto de Ajuda do objeto sob o cursor e chama a função do Windows WinHelp com esse contexto de Ajuda.

CWinApp::OnDDECommand

Chamado pela estrutura quando a janela do quadro principal recebe uma mensagem de execução DDE.

virtual BOOL OnDDECommand(LPTSTR lpszCommand);

Parâmetros

lpszCommand
Aponta para uma cadeia de caracteres de comando DDE recebida pelo aplicativo.

Valor de retorno

Diferente de zero se o comando for manipulado; caso contrário, 0.

Comentários

A implementação padrão verifica se o comando é uma solicitação para abrir um documento e, em caso afirmativo, abre o documento especificado. O Gerenciador de arquivos do Windows geralmente envia essas cadeias de comando DDE quando o usuário clica duas vezes em um arquivo de dados. Substitua essa função para manipular outros comandos de execução DDE, como o comando para imprimir.

Exemplo

BOOL CMyApp::OnDDECommand(LPTSTR lpszCommand)
{
   if (CWinApp::OnDDECommand(lpszCommand))
      return TRUE;

   // Handle any DDE commands recognized by your application
   // and return TRUE.  See implementation of CWinApp::OnDDEComand
   // for example of parsing the DDE command string.

   // Return FALSE for any DDE commands you do not handle.
   return FALSE;
}

CWinApp::OnFileNew

Implementa o comando ID_FILE_NEW.

afx_msg void OnFileNew();

Comentários

Você deve adicionar uma instrução ON_COMMAND( ID_FILE_NEW, OnFileNew ) ao seu mapa de mensagens de classe CWinApp para habilitar essa função de membro. Se habilitada, essa função lida com a execução do comando Arquivo Novo.

Consulte Nota Técnica 22 para obter informações sobre o comportamento padrão e orientações sobre como substituir essa função de membro.

Exemplo

// The following message map, produced by the Application Wizard, binds
// the File New, Open, and Print Setup menu commands to default
// framework implementations of these commands.
BEGIN_MESSAGE_MAP(CStdApp, CWinApp)
// Standard file based document commands
ON_COMMAND(ID_FILE_NEW, &CWinApp::OnFileNew)
ON_COMMAND(ID_FILE_OPEN, &CWinApp::OnFileOpen)
// Standard print setup command
ON_COMMAND(ID_FILE_PRINT_SETUP, &CWinApp::OnFilePrintSetup)
END_MESSAGE_MAP()

 

// The following message map illustrates how to rebind the
// File New, Open and Print Setup menu commands to handlers that
// you implement in your CWinApp-derived class.
// Note, you can name the handler CCustomApp::OnFileNew instead of
// CCustomApp::OnMyFileNew, and likewise for the other handlers, if desired.
BEGIN_MESSAGE_MAP(CCustomApp, CWinApp)
ON_COMMAND(ID_FILE_NEW, &CCustomApp::OnMyFileNew)
ON_COMMAND(ID_FILE_OPEN, &CCustomApp::OnMyFileOpen)
ON_COMMAND(ID_FILE_PRINT_SETUP, &CCustomApp::OnMyFilePrintSetup)
END_MESSAGE_MAP()

CWinApp::OnFileOpen

Implementa o comando ID_FILE_OPEN.

afx_msg void OnFileOpen();

Comentários

Você deve adicionar uma instrução ON_COMMAND( ID_FILE_OPEN, OnFileOpen ) ao seu mapa de mensagens de classe CWinApp para habilitar essa função de membro. Se habilitada, essa função lida com a execução do comando Abrir arquivo.

Para obter informações sobre o comportamento padrão e orientações sobre como substituir essa função de membro, consulte Nota Técnica 22.

Exemplo

// The following message map, produced by the Application Wizard, binds
// the File New, Open, and Print Setup menu commands to default
// framework implementations of these commands.
BEGIN_MESSAGE_MAP(CStdApp, CWinApp)
// Standard file based document commands
ON_COMMAND(ID_FILE_NEW, &CWinApp::OnFileNew)
ON_COMMAND(ID_FILE_OPEN, &CWinApp::OnFileOpen)
// Standard print setup command
ON_COMMAND(ID_FILE_PRINT_SETUP, &CWinApp::OnFilePrintSetup)
END_MESSAGE_MAP()

 

// The following message map illustrates how to rebind the
// File New, Open and Print Setup menu commands to handlers that
// you implement in your CWinApp-derived class.
// Note, you can name the handler CCustomApp::OnFileNew instead of
// CCustomApp::OnMyFileNew, and likewise for the other handlers, if desired.
BEGIN_MESSAGE_MAP(CCustomApp, CWinApp)
ON_COMMAND(ID_FILE_NEW, &CCustomApp::OnMyFileNew)
ON_COMMAND(ID_FILE_OPEN, &CCustomApp::OnMyFileOpen)
ON_COMMAND(ID_FILE_PRINT_SETUP, &CCustomApp::OnMyFilePrintSetup)
END_MESSAGE_MAP()

CWinApp::OnFilePrintSetup

Implementa o comando ID_FILE_PRINT_SETUP.

afx_msg void OnFilePrintSetup();

Comentários

Você deve adicionar uma instrução ON_COMMAND( ID_FILE_PRINT_SETUP, OnFilePrintSetup ) ao seu mapa de mensagens de classe CWinApp para habilitar essa função de membro. Se habilitada, essa função lida com a execução do comando Impressão de arquivo.

Para obter informações sobre o comportamento padrão e orientações sobre como substituir essa função de membro, consulte Nota Técnica 22.

Exemplo

// The following message map, produced by the Application Wizard, binds
// the File New, Open, and Print Setup menu commands to default
// framework implementations of these commands.
BEGIN_MESSAGE_MAP(CStdApp, CWinApp)
// Standard file based document commands
ON_COMMAND(ID_FILE_NEW, &CWinApp::OnFileNew)
ON_COMMAND(ID_FILE_OPEN, &CWinApp::OnFileOpen)
// Standard print setup command
ON_COMMAND(ID_FILE_PRINT_SETUP, &CWinApp::OnFilePrintSetup)
END_MESSAGE_MAP()

 

// The following message map illustrates how to rebind the
// File New, Open and Print Setup menu commands to handlers that
// you implement in your CWinApp-derived class.
// Note, you can name the handler CCustomApp::OnFileNew instead of
// CCustomApp::OnMyFileNew, and likewise for the other handlers, if desired.
BEGIN_MESSAGE_MAP(CCustomApp, CWinApp)
ON_COMMAND(ID_FILE_NEW, &CCustomApp::OnMyFileNew)
ON_COMMAND(ID_FILE_OPEN, &CCustomApp::OnMyFileOpen)
ON_COMMAND(ID_FILE_PRINT_SETUP, &CCustomApp::OnMyFilePrintSetup)
END_MESSAGE_MAP()

CWinApp::OnHelp

Manipula a Ajuda F1 dentro do aplicativo (usando o contexto atual).

afx_msg void OnHelp();

Comentários

Normalmente, você também adicionará uma entrada de tecla aceleradora para a tecla F1. Ativar a chave F1 é apenas uma convenção, não um requisito.

Você deve adicionar uma instrução ON_COMMAND( ID_HELP, OnHelp ) ao seu mapa de mensagens de classe CWinApp para habilitar essa função de membro. Se ativado, chamado pela estrutura quando o usuário pressiona a tecla F1.

A implementação padrão dessa função de manipulador de mensagens determina o contexto da Ajuda que corresponde à janela, caixa de diálogo ou item de menu atual e, em seguida, chama WINHELP.EXE. Se nenhum contexto estiver disponível no momento, a função usará o contexto padrão.

Substitua essa função de membro para definir o contexto da Ajuda para algo diferente da janela, caixa de diálogo, item de menu ou botão da barra de ferramentas que atualmente tem o foco. Ligue para WinHelp com o ID de contexto de Ajuda desejado.

CWinApp::OnHelpFinder

Manipula os comandos ID_HELP_FINDER e ID_DEFAULT_HELP.

afx_msg void OnHelpFinder();

Comentários

Você deve adicionar uma instrução ON_COMMAND( ID_HELP_FINDER, OnHelpFinder ) ao seu mapa de mensagens de classe CWinApp para habilitar essa função de membro. Se habilitada, a estrutura chama essa função de manipulador de mensagens quando o usuário do seu aplicativo seleciona o comando Help Finder para invocá-WinHelp com o tópico HELP_FINDER padrão.

CWinApp::OnHelpIndex

Manipula o comando ID_HELP_INDEX e fornece um tópico da Ajuda padrão.

afx_msg void OnHelpIndex();

Comentários

Você deve adicionar uma instrução ON_COMMAND( ID_HELP_INDEX, OnHelpIndex ) ao seu mapa de mensagens de classe CWinApp para habilitar essa função de membro. Se habilitada, a estrutura chama essa função de manipulador de mensagens quando o usuário do seu aplicativo seleciona o comando Índice da Ajuda para invocar WinHelp com o tópico HELP_INDEX padrão.

CWinApp::OnHelpUsando

Manipula o comando ID_HELP_USING.

afx_msg void OnHelpUsing();

Comentários

Você deve adicionar uma instrução ON_COMMAND( ID_HELP_USING, OnHelpUsing ) ao seu mapa de mensagens de classe CWinApp para habilitar essa função de membro. A estrutura chama essa função de manipulador de mensagens quando o usuário do seu aplicativo seleciona o comando Ajuda Usando para invocar o aplicativo WinHelp com o tópico HELP_HELPONHELP padrão.

CWinApp::OnIdle

Substitua essa função de membro para executar o processamento em tempo ocioso.

virtual BOOL OnIdle(LONG lCount);

Parâmetros

lCount
Um contador incrementado cada vez que OnIdle é chamado quando a fila de mensagens do aplicativo está vazia. Essa contagem é redefinida para 0 cada vez que uma nova mensagem é processada. Você pode usar o parâmetro lCount para determinar o período relativo de tempo em que o aplicativo ficou ocioso sem processar uma mensagem.

Valor de retorno

Diferente de zero para receber mais tempo de processamento ocioso; 0 se não for necessário mais tempo ocioso.

Comentários

OnIdle é chamado no loop de mensagem padrão quando a fila de mensagens do aplicativo está vazia. Use sua substituição para chamar suas próprias tarefas de manipulador ocioso em segundo plano.

OnIdle deve retornar 0 para indicar que nenhum tempo de processamento ocioso é necessário. O parâmetro lCount é incrementado cada vez que OnIdle é chamado quando a fila de mensagens está vazia e redefine para 0 cada vez que uma nova mensagem é processada. Você pode chamar suas diferentes rotinas ociosas com base nessa contagem.

O seguinte resume o processamento de loop ocioso:

  1. Se o loop de mensagem na Microsoft Foundation Class Library verificar a fila de mensagens e não encontrar mensagens pendentes, ele chamará OnIdle para o objeto de aplicativo e fornecerá 0 como o argumento lCount.

  2. OnIdle executa algum processamento e retorna um valor diferente de zero para indicar que deve ser chamado novamente para fazer processamento adicional.

  3. O loop de mensagens verifica a fila de mensagens novamente. Se nenhuma mensagem estiver pendente, ele chamará OnIdle novamente, incrementando o argumento lCount.

  4. Eventualmente, OnIdle termina de processar todas as suas tarefas ociosas e retorna 0. Isso informa ao loop de mensagens para parar de chamar OnIdle até que a próxima mensagem seja recebida da fila de mensagens, momento em que o ciclo ocioso é reiniciado com o argumento definido como 0.

Não execute tarefas longas durante OnIdle porque seu aplicativo não pode processar a entrada do usuário até que OnIdle retorne.

Observação

A implementação padrão de atualizações OnIdle comanda objetos da interface do usuário, como itens de menu e botões da barra de ferramentas, e executa a limpeza da estrutura de dados interna. Portanto, se você substituir OnIdle, você deve chamáCWinApp::OnIdle com o lCount em sua versão substituída. Primeiro, chame todo o processamento ocioso de classe base (ou seja, até que a classe base OnIdle retorne 0). Se você precisar executar o trabalho antes que o processamento de classe base seja concluído, revise a implementação de classe base para selecionar o lCount adequado durante o qual fazer seu trabalho.

Se você não quiser que OnIdle seja chamado sempre que uma mensagem for recuperada da fila de mensagens, poderá substituir o CWinThreadIsIdleMessage. Se um aplicativo definiu um temporizador muito curto, ou se o sistema está enviando a mensagem WM_SYSTIMER, então OnIdle será chamado repetidamente e degradar o desempenho.

Exemplo

Os dois exemplos a seguir mostram como usar o OnIdle. O primeiro exemplo processa duas tarefas ociosas usando o argumento lCount para priorizar as tarefas. A primeira tarefa é de alta prioridade, e você deve fazê-lo sempre que possível. A segunda tarefa é menos importante e deve ser feita apenas quando há uma longa pausa na entrada do usuário. Observe a chamada para a versão de classe base do OnIdle. O segundo exemplo gerencia um grupo de tarefas ociosas com prioridades diferentes.

BOOL CMyApp::OnIdle(LONG lCount)
{
   BOOL bMore = CWinApp::OnIdle(lCount);

   if (lCount == 0)
   {
      TRACE(_T("App idle for short period of time\n"));
      bMore = TRUE;
   }
   else if (lCount == 10)
   {
      TRACE(_T("App idle for longer amount of time\n"));
      bMore = TRUE;
   }
   else if (lCount == 100)
   {
      TRACE(_T("App idle for even longer amount of time\n"));
      bMore = TRUE;
   }
   else if (lCount == 1000)
   {
      TRACE(_T("App idle for quite a long period of time\n"));
      // bMore is not set to TRUE, no longer need idle
      // IMPORTANT: bMore is not set to FALSE since CWinApp::OnIdle may
      // have more idle tasks to complete.
   }

   return bMore;
   // return TRUE as long as there are any more idle tasks
}

CWinApp::OpenDocumentFile

A estrutura chama esse método para abrir o arquivo de CDocument nomeado para o aplicativo.

virtual CDocument* OpenDocumentFile(
    LPCTSTR lpszFileName,
    BOOL bAddToMRU = TRUE);

Parâmetros

lpszFileName
[em] O nome do arquivo a ser aberto.

bAddToMRU
[em] TRUE indica que o documento é um dos ficheiros mais recentes; FALSE indica que o documento não é um dos ficheiros mais recentes.

Valor de retorno

Um ponteiro para um CDocument se for bem-sucedido; caso contrário, NULL.

Comentários

Se um documento com esse nome já estiver aberto, a primeira janela de quadro que contém esse documento receberá o foco. Se um aplicativo oferecer suporte a vários modelos de documento, a estrutura usará a extensão de nome de arquivo para localizar o modelo de documento apropriado para tentar carregar o documento. Se for bem-sucedido, o modelo de documento criará uma janela de quadro e uma exibição para o documento.

Exemplo

if (m_lpCmdLine[0] == _T('\0'))
{
   // Create a new (empty) document.
   OnFileNew();
}
else
{
   // Open a file passed as the first command line parameter.
   OpenDocumentFile(m_lpCmdLine);
}

CWinApp::P arseCommandLine

Chame essa função de membro para analisar a linha de comando e enviar os parâmetros, um de cada vez, para CCommandLineInfo::P arseParam.

void ParseCommandLine(CCommandLineInfo& rCmdInfo);

Parâmetros

rCmdInfo
Uma referência a um objeto CCommandLineInfo.

Comentários

Quando você inicia um novo projeto MFC usando o Assistente de aplicativo, o Assistente de aplicativo criará uma instância local de CCommandLineInfoe, em seguida, chamará ProcessShellCommand e ParseCommandLine na função de membro InitInstance. Uma linha de comando segue a rota descrita abaixo:

  1. Depois de ser criado em InitInstance, o objeto CCommandLineInfo é passado para ParseCommandLine.

  2. ParseCommandLine então chama CCommandLineInfo::ParseParam repetidamente, uma vez para cada parâmetro.

  3. ParseParam preenche o objeto CCommandLineInfo, que é passado para ProcessShellCommand.

  4. ProcessShellCommand lida com os argumentos de linha de comando e sinalizadores.

Observe que você pode ligar para ParseCommandLine diretamente, conforme necessário.

Para obter uma descrição dos sinalizadores de linha de comando, consulte CCommandLineInfo::m_nShellCommand.

CWinApp::P reTranslateMessage

Substitua essa função para filtrar mensagens de janela antes que elas sejam enviadas para as funções do Windows TranslateMessage e DispatchMessage A implementação padrão executa a conversão de tecla aceleradora, portanto, você deve chamar a função de membro CWinApp::PreTranslateMessage em sua versão substituída.

virtual BOOL PreTranslateMessage(MSG* pMsg);

Parâmetros

pMsg
Um ponteiro para um MSG estrutura que contém a mensagem a ser processada.

Valor de retorno

Diferente de zero se a mensagem foi totalmente processada no PreTranslateMessage e não deve ser processada mais. Zero se a mensagem deve ser processada da maneira normal.

CWinApp::P rocessMessageFilter

A função hook da estrutura chama essa função de membro para filtrar e responder a determinadas mensagens do Windows.

virtual BOOL ProcessMessageFilter(
    int code,
    LPMSG lpMsg);

Parâmetros

código
Especifica um código de gancho. Esta função de membro usa o código para determinar como processar lpMsg.

lpMsg
Um ponteiro para um Windows MSGtructure.

Valor de retorno

Diferente de zero se a mensagem for processada; caso contrário, 0.

Comentários

Uma função hook processa eventos antes que eles sejam enviados para o processamento normal de mensagens do aplicativo.

Se você substituir esse recurso avançado, certifique-se de chamar a versão de classe base para manter o processamento de gancho da estrutura.

CWinApp::P rocessShellCommand

Essa função de membro é chamada por InitInstance para aceitar os parâmetros passados do objeto CCommandLineInfo identificado por rCmdInfoe executar a ação indicada.

BOOL ProcessShellCommand(CCommandLineInfo& rCmdInfo);

Parâmetros

rCmdInfo
Uma referência a um objeto CCommandLineInfo.

Valor de retorno

Diferente de zero se o comando shell for processado com êxito. Se 0, retorne FALSE de InitInstance.

Comentários

Quando você inicia um novo projeto MFC usando o Assistente de aplicativo, o Assistente de aplicativo criará uma instância local de CCommandLineInfoe, em seguida, chamará ProcessShellCommand e ParseCommandLine na função de membro InitInstance. Uma linha de comando segue a rota descrita abaixo:

  1. Depois de ser criado em InitInstance, o objeto CCommandLineInfo é passado para ParseCommandLine.

  2. ParseCommandLine então chama CCommandLineInfo::P arseParam repetidamente, uma vez para cada parâmetro.

  3. ParseParam preenche o objeto CCommandLineInfo, que é então passado para ProcessShellCommand.

  4. ProcessShellCommand lida com os argumentos de linha de comando e sinalizadores.

Os membros de dados do objeto CCommandLineInfo, identificados por CCommandLineInfo::m_nShellCommand, são do seguinte tipo enumerado, que é definido dentro da classe CCommandLineInfo.

enum {
    FileNew,
    FileOpen,
    FilePrint,
    FilePrintTo,
    FileDDE
    };

Para obter uma breve descrição de cada um desses valores, consulte CCommandLineInfo::m_nShellCommand.

CWinApp::P rocessWndProcException

A estrutura chama essa função de membro sempre que o manipulador não captura uma exceção lançada em um dos manipuladores de mensagens ou comandos do seu aplicativo.

virtual LRESULT ProcessWndProcException(
    CException* e,
    const MSG* pMsg);

Parâmetros

e
Um ponteiro para uma exceção não capturada.

pMsg
Um MSGtructure que contém informações sobre a mensagem do Windows que fez com que a estrutura lançasse uma exceção.

Valor de retorno

O valor que deve ser retornado ao Windows. Normalmente, isso é 0L para mensagens do Windows, 1L (TRUE) para mensagens de comando.

Comentários

Não chame essa função de membro diretamente.

A implementação padrão dessa função de membro cria uma caixa de mensagem. Se a exceção não detetada for originada com uma falha de comando de menu, barra de ferramentas ou acelerador, a caixa de mensagem exibirá uma mensagem "Falha no comando"; caso contrário, exibe uma mensagem de "Erro interno do aplicativo".

Substitua essa função de membro para fornecer tratamento global de suas exceções. Chame a funcionalidade base apenas se desejar que a caixa de mensagem seja exibida.

CWinApp::Registar

Executa quaisquer tarefas de registro não tratadas pelo RegisterShellFileTypes.

virtual BOOL Register();

Valor de retorno

Diferente de zero no sucesso; caso contrário, 0.

Comentários

A implementação padrão simplesmente retorna TRUE. Substitua essa função para fornecer todas as etapas de registro personalizadas.

CWinApp::RegisterShellFileTypes

Chame essa função de membro para registrar todos os tipos de documentos do seu aplicativo com o Gerenciador de Arquivos do Windows.

void RegisterShellFileTypes(BOOL bCompat = FALSE);

Parâmetros

bCompat
[em] TRUE adiciona entradas de registro para os comandos do shell Print and Print To, permitindo que um usuário imprima arquivos diretamente do shell ou arrastando o arquivo para um objeto de impressora. Ele também adiciona uma chave DefaultIcon. Por padrão, esse parâmetro é FALSE para compatibilidade com versões anteriores.

Comentários

Isso permite que o usuário abra um arquivo de dados criado pelo seu aplicativo clicando duas vezes nele de dentro do Gerenciador de arquivos. Chame RegisterShellFileTypes depois de chamar AddDocTemplate para cada um dos modelos de documento em seu aplicativo. Chame também a função de membro EnableShellOpen quando chamar RegisterShellFileTypes.

RegisterShellFileTypes itera através da lista de CDocTemplate objetos que o aplicativo mantém e, para cada modelo de documento, adiciona entradas ao banco de dados de registro que o Windows mantém para associações de arquivo. O Gestor de ficheiros utiliza estas entradas para abrir um ficheiro de dados quando o utilizador faz duplo clique no mesmo. Isso elimina a necessidade de enviar um arquivo . REG com o seu pedido.

Observação

RegisterShellFileTypes só funciona se o usuário executar o programa com direitos de administrador. Se o programa não tiver direitos de administrador, ele não pode alterar as chaves do Registro.

Se o banco de dados de registro já associar uma determinada extensão de nome de arquivo a outro tipo de arquivo, nenhuma nova associação será criada. Consulte a classe CDocTemplate para obter o formato das cadeias de caracteres necessárias para registrar essas informações.

CWinApp::RegisterWithRestartManager

Registra o aplicativo com o gerenciador de reinicialização.

virtual HRESULT RegisterWithRestartManager(
    BOOL bRegisterRecoveryCallback,
    const CString& strRestartIdentifier);

virtual HRESULT RegisterWithRestartManager(
    LPCWSTR pwzCommandLineArgs,
    DWORD dwRestartFlags,
    APPLICATION_RECOVERY_CALLBACK pRecoveryCallback,
    LPVOID lpvParam,
    DWORD dwPingInterval,
    DWORD dwCallbackFlags);

Parâmetros

bRegisterRecoveryCallback
[em] TRUE indica que essa instância do aplicativo usa uma função de retorno de chamada de recuperação; FALSO indica que não. A estrutura chama a função de retorno de chamada de recuperação quando o aplicativo é encerrado inesperadamente. Para obter mais informações, consulte CWinApp::ApplicationRecoveryCallback.

strRestartIdentifier
[em] A cadeia de caracteres exclusiva que identifica essa instância do gerenciador de reinicialização. O identificador do gerenciador de reinicialização é exclusivo para cada instância de um aplicativo.

pwzCommandLineArgs
[em] Uma cadeia de caracteres que contém quaisquer argumentos extras da linha de comando.

dwRestartFlags
[em] Sinalizadores opcionais para o gerenciador de reinicialização. Para obter mais informações, consulte a seção Observações.

pRecoveryCallback
[em] A função de retorno de chamada de recuperação. Esta função deve tomar um parâmetro LPVOID como entrada e retornar um DWORD. A função de retorno de chamada de recuperação padrão é CWinApp::ApplicationRecoveryCallback.

lpvParam
[em] O parâmetro de entrada para a função de retorno de chamada de recuperação. Para obter mais informações, consulte CWinApp::ApplicationRecoveryCallback.

dwPingInterval
[em] O período de tempo que o gerenciador de reinicialização aguarda o retorno da função de retorno de chamada de recuperação. Este parâmetro está em milissegundos.

dwCallbackFlags
[em] Sinalizadores passados para a função de retorno de chamada de recuperação. Reservado para uso futuro.

Valor de retorno

S_OK se o método for bem-sucedido; caso contrário, um código de erro.

Comentários

Se seu aplicativo usa a implementação MFC padrão para salvar arquivos automaticamente, você deve usar a versão simples do RegisterWithRestartManager. Use a versão complexa do RegisterWithRestartManager se quiser personalizar o comportamento de salvamento automático do seu aplicativo.

Se você chamar esse método com uma cadeia de caracteres vazia para strRestartIdentifier, RegisterWithRestartManager criará uma cadeia de caracteres de identificador exclusivo para esta instância do gerenciador de reinicialização.

Quando um aplicativo é encerrado inesperadamente, o gerenciador de reinicialização reinicia o aplicativo a partir da linha de comando e fornece o identificador de reinicialização exclusivo como um argumento opcional. Nesse cenário, a estrutura chama RegisterWithRestartManager duas vezes. A primeira chamada vem de CWinApp::InitInstance com uma cadeia de caracteres vazia para o identificador de cadeia de caracteres. Em seguida, o método CWinApp::P rocessShellCommand chama RegisterWithRestartManager com o identificador de reinicialização exclusivo.

Depois de registrar um aplicativo com o gerenciador de reinicialização, o gerenciador de reinicialização monitora o aplicativo. Se o aplicativo sair inesperadamente, o gerenciador de reinicialização chamará a função de retorno de chamada de recuperação durante o processo de desligamento. O gerenciador de reinicialização aguarda o dwPingInterval para obter uma resposta da função de retorno de chamada de recuperação. Se a função de retorno de chamada de recuperação não responder dentro desse período, o aplicativo será encerrado sem executar a função de retorno de chamada de recuperação.

Por padrão, os dwRestartFlags não são suportados, mas são fornecidos para uso futuro. Os valores possíveis para dwRestartFlags são os seguintes:

  • RESTART_NO_CRASH

  • RESTART_NO_HANG

  • RESTART_NO_PATCH

  • RESTART_NO_REBOOT

CWinApp::ReopenPreviousFilesAtRestart

Determina se o gerenciador de reinicialização reabre os arquivos que estavam abertos quando o aplicativo foi encerrado inesperadamente.

virtual BOOL ReopenPreviousFilesAtRestart() const;

Valor de retorno

TRUE indica que o gerenciador de reinicialização reabre os arquivos abertos anteriormente; FALSE indica que o gerenciador de reinicialização não.

CWinApp::RestartInstance

Manipula uma reinicialização de aplicativo iniciada pelo gerenciador de reinicialização.

virtual BOOL CWinApp::RestartInstance();

Valor de retorno

TRUE se o manipulador de recuperação de dados abrir documentos abertos anteriormente; FALSO se o manipulador de recuperação de dados tiver um erro ou se não houver documentos abertos anteriormente.

Comentários

Quando o gerenciador de reinicialização reinicia um aplicativo, a estrutura chama esse método. Esse método recupera o manipulador de recuperação de dados e restaura os arquivos salvos automaticamente. Esse método chama CDataRecoveryHandler::RestoreAutosavedDocuments para determinar se o usuário deseja restaurar os arquivos salvos automaticamente.

Esse método retorna FALSE se o CDataRecoveryHandler determina que não havia documentos abertos. Se não houver documentos abertos, a candidatura começa normalmente.

CWinApp::RestoreAutosavedFilesAtRestart

Determina se o gerenciador de reinicialização restaura os arquivos salvos automaticamente quando reinicia o aplicativo.

virtual BOOL RestoreAutosavedFilesAtRestart() const;

Valor de retorno

TRUE indica que o gerenciador de reinicialização restaura arquivos salvos automaticamente; FALSE indica que o gerenciador de reinicialização não.

CWinApp::Executar

Fornece um loop de mensagem padrão.

virtual int Run();

Valor de retorno

Um valor de int que é retornado por WinMain.

Comentários

Run adquire e envia mensagens do Windows até que o aplicativo receba uma mensagem WM_QUIT. Se a fila de mensagens do aplicativo atualmente não contiver mensagens, Run chamadas OnIdle para executar o processamento em tempo ocioso. As mensagens recebidas vão para a função de membro PreTranslateMessage para processamento especial e, em seguida, para a função do Windows TranslateMessage para tradução de teclado padrão; finalmente, a função DispatchMessage Windows é chamada.

Run raramente é substituído, mas você pode substituí-lo para fornecer um comportamento especial.

CWinApp::RunAutomated

Chame essa função para determinar se a opção " /Automation" ou " -Automation" está presente, o que indica se o aplicativo de servidor foi iniciado por um aplicativo cliente.

BOOL RunAutomated();

Valor de retorno

Diferente de zero se a opção foi encontrada; caso contrário, 0.

Comentários

Se presente, a opção é removida da linha de comando. Para obter mais informações sobre automação OLE, consulte o artigo Automation Servers.

CWinApp::RunEmbedded

Chame essa função para determinar se a opção " /Embedding" ou " -Embedding" está presente, o que indica se o aplicativo de servidor foi iniciado por um aplicativo cliente.

BOOL RunEmbedded();

Valor de retorno

Diferente de zero se a opção foi encontrada; caso contrário, 0.

Comentários

Se presente, a opção é removida da linha de comando. Para obter mais informações sobre incorporação, consulte o artigo Servers: Implementing a Server.

CWinApp::SaveAllModified

Chamado pela estrutura para salvar todos os documentos quando a janela do quadro principal do aplicativo deve ser fechada ou por meio de uma mensagem WM_QUERYENDSESSION.

virtual BOOL SaveAllModified();

Valor de retorno

Diferente de zero se for seguro encerrar o aplicativo; 0 se não for seguro encerrar o aplicativo.

Comentários

A implementação padrão dessa função de membro chama a função de membro CDocument::SaveModified por sua vez para todos os documentos modificados dentro do aplicativo.

CWinApp::SelectPrinter

Chame essa função de membro para selecionar uma impressora específica e libere a impressora que foi selecionada anteriormente na caixa de diálogo Imprimir.

void SelectPrinter(
    HANDLE hDevNames,
    HANDLE hDevMode,
    BOOL bFreeOld = TRUE);

Parâmetros

hDevNames
Um identificador para um DEVNAMEStructura que identifica os nomes de driver, dispositivo e porta de saída de uma impressora específica.

hDevMode
Um identificador para um estrutura de DEVMODE que especifica informações sobre a inicialização do dispositivo e o ambiente de uma impressora.

bFreeOld
Libera a impressora selecionada anteriormente.

Comentários

Se hDevMode e hDevNames forem NULL, SelectPrinter usará a impressora padrão atual.

CWinApp::SetHelpMode

Define o tipo de ajuda do aplicativo.

void SetHelpMode(AFX_HELP_TYPE eHelpType);

Parâmetros

eHelpType
Especifica o tipo de ajuda a ser usada. Consulte CWinApp::m_eHelpType para obter mais informações.

Comentários

Define o tipo de Ajuda do aplicativo.

Para definir o tipo de Ajuda do seu aplicativo como HTMLHelp, você pode chamar EnableHTMLHelp. Depois de chamar EnableHTMLHelp, seu aplicativo deve usar HTMLHelp como seu aplicativo de ajuda. Se você quiser alterar para usar WinHelp, você pode chamar SetHelpMode e definir eHelpType como afxWinHelp.

CWinApp::SetRegistryKey

Faz com que as configurações do aplicativo sejam armazenadas no registro em vez de arquivos INI.

void SetRegistryKey(LPCTSTR lpszRegistryKey);
void SetRegistryKey(UINT nIDRegistryKey);

Parâmetros

lpszRegistryKey
Ponteiro para uma cadeia de caracteres que contém o nome da chave.

nIDRegistryKey
ID de um recurso de cadeia de caracteres que contém o nome da chave do Registro.

Comentários

Esta função define m_pszRegistryKey, que é então usado pelas funções GetProfileInt, GetProfileString, WriteProfileInte WriteProfileString membro de CWinApp. Se essa função tiver sido chamada, a lista de arquivos usados mais recentemente (MRU) também é armazenada no registro. A chave de registo é geralmente o nome de uma empresa. Ele é armazenado em uma chave da seguinte forma: HKEY_CURRENT_USER\Software\<nome da empresa>\<nome do aplicativo>\<nome da seção>\<nome do valor>.

CWinApp::SupportsApplicationRecovery

Determina se o gerenciador de reinicialização recupera um aplicativo que saiu inesperadamente.

virtual BOOL SupportsApplicationRecovery() const;

Valor de retorno

TRUE indica que o gerenciador de reinicialização recupera o aplicativo; FALSE indica que o gerenciador de reinicialização não.

CWinApp::SupportsAutosaveAtInterval

Determina se o gerenciador de reinicialização salva automaticamente documentos abertos em um intervalo regular.

virtual BOOL SupportsAutosaveAtInterval() const;

Valor de retorno

TRUE indica que o gerenciador de reinicialização salva automaticamente documentos abertos; FALSE indica que o gerenciador de reinicialização não.

CWinApp::SupportsAutosaveAtRestart

Determina se o gerenciador de reinicialização salva automaticamente quaisquer documentos abertos quando o aplicativo é reiniciado.

virtual BOOL SupportsAutosaveAtRestart() const;

Valor de retorno

TRUE indica que o gerenciador de reinicialização salva automaticamente documentos abertos quando o aplicativo é reiniciado; FALSE indica que o gerenciador de reinicialização não.

CWinApp::SupportsRestartManager

Determina se o aplicativo suporta o gerenciador de reinicialização.

virtual BOOL SupportsRestartManager() const;

Valor de retorno

TRUE indica que o aplicativo suporta o gerenciador de reinicialização; FALSE indica que o aplicativo não o faz.

CWinApp::Cancelar registro

Cancela o registro de todos os arquivos registrados pelo objeto do aplicativo.

virtual BOOL Unregister();

Valor de retorno

Diferente de zero no sucesso; caso contrário, 0.

Comentários

A função Unregister desfaz o registro realizado pelo objeto do aplicativo e a função Register. Normalmente, ambas as funções são chamadas implicitamente pelo MFC e, portanto, não aparecerão no seu código.

Substitua essa função para executar etapas personalizadas de cancelamento de registro.

CWinApp::UnregisterShellFileTypes

Chame essa função de membro para cancelar o registro de todos os tipos de documentos do seu aplicativo com o Gerenciador de Arquivos do Windows.

void UnregisterShellFileTypes();

CWinApp::WinHelp

Chame essa função de membro para invocar o aplicativo WinHelp.

virtual void WinHelp(
    DWORD_PTR dwData,
    UINT nCmd = HELP_CONTEXT);

Parâmetros

dwData
Especifica dados adicionais. O valor usado depende do valor do parâmetro nCmd.

nCmd
Especifica o tipo de ajuda solicitada. Para obter uma lista de valores possíveis e como eles afetam o parâmetro dwData, consulte a função WinHelp Windows.

Comentários

A estrutura também chama essa função para invocar o aplicativo WinHelp.

A estrutura fechará automaticamente o aplicativo WinHelp quando seu aplicativo for encerrado.

Exemplo

// Header File: HELPIDS.H
//
// This example header file is #include'd twice:
// (1) It is #include'd by the .CPP file that passes the DWORD
//     context i.d. to CWinApp::WinHelp.
// (2) It is #include'd in the [MAP] section of the .HPJ file,
//     to associate the help context string "HID_MYTOPIC" with
//     the help context numeric i.d., 101.
// The help context string "HID_MYTOPIC" is what identifies the
// help topic in the help .RTF source file, in the "#" footnote:
//     # HID_MYTOPIC
//
// Note, it is not necessary to manage help context id's this way
// for help topics associated with command id's and user interface
// id's defined in your RESOURCE.H file; you should use the MAKEHM
// tool via the custom build rule on your resource.h file to produce
// a help map (.HM) file for these id's.  It is necessary to manage
// help context id's as illustrated here only for help topics not
// associated with command id's or user interface id's.

#define HID_MYTOPIC 101

// Show the custom help topic that has the context string
// "HID_MYTOPIC" in the help .RTF file, and which is mapped
// to the DWORD i.d. HID_MYTOPIC in the above HELPIDS.H file.
AfxGetApp()->WinHelp(HID_MYTOPIC);

// The following is one line of code in the help map (.HM)
// file produced by the MAKEHM tool, which is called by the custom
// build rule on the resource.h file.  The MAKEHM tool reads the
// following #define in the application's RESOURCE.H file:
#define ID_MYCOMMAND 0x08004
// and adds a help id offset value of 0x10000 to create the
// help context DWORD value 0x18004:
// HID_MYCOMMAND                           0x18004
// See MFC Tech Note 28 for more information on help id offset values.

// Rarely will you need to directly call WinHelp yourself
// with the help context i.d. for a command or user interface
// object. The framework will call WinHelp automatically when
// the user, for example, hits F1 when the focus is on a
// My Command menu item. However, if you do want to directly
// call WinHelp for the help topic associated with the command,
// here is how you would do it:

AfxGetApp()->WinHelp(0x10000 + ID_MYCOMMAND);

CWinApp::WriteProfileBinary

Chame essa função de membro para gravar dados binários na seção especificada do registro do aplicativo ou . Arquivo INI.

BOOL WriteProfileBinary(
    LPCTSTR lpszSection,
    LPCTSTR lpszEntry,
    LPBYTE pData,
    UINT nBytes);

Parâmetros

lpszSecção
Aponta para uma cadeia de caracteres terminada em nulo que especifica a seção que contém a entrada. Se a seção não existir, ela é criada. O nome da secção é independente de maiúsculas e minúsculas; A cadeia de caracteres pode ser qualquer combinação de letras maiúsculas e minúsculas.

lpszEntry
Aponta para uma cadeia de caracteres terminada em nulo que contém a entrada na qual o valor deve ser gravado. Se a entrada não existir na seção especificada, ela será criada.

pData
Aponta para os dados a serem gravados.

nBytes
Contém o número de bytes a serem gravados.

Valor de retorno

Diferente de zero se for bem-sucedido; caso contrário, 0.

Exemplo

Este exemplo usa CWinApp* pApp = AfxGetApp(); para chegar à classe CWinApp, ilustrando uma maneira que WriteProfileBinary e GetProfileBinary podem ser usados de qualquer função em um aplicativo MFC.

CWinApp *pApp = AfxGetApp();

CString strSection = _T("My Section");
CString strItem = _T("My Binary Item");
double myData = 123.456e12;

pApp->WriteProfileBinary(strSection, strItem, (LPBYTE)&myData, sizeof(myData));
double *pData;
UINT n;
pApp->GetProfileBinary(strSection, strItem, (LPBYTE*)&pData, &n);
ASSERT(n == sizeof(myData));
ASSERT(myData = *pData);
delete[] pData; // free the buffer

Para outro exemplo, consulte o exemplo de CWinApp::GetProfileBinary.

CWinApp::WriteProfileInt

Chame essa função de membro para gravar o valor especificado na seção especificada do registro do aplicativo ou . Arquivo INI.

BOOL WriteProfileInt(
    LPCTSTR lpszSection,
    LPCTSTR lpszEntry,
    int nValue);

Parâmetros

lpszSecção
Aponta para uma cadeia de caracteres terminada em nulo que especifica a seção que contém a entrada. Se a seção não existir, ela é criada. O nome da secção é independente de maiúsculas e minúsculas; A cadeia de caracteres pode ser qualquer combinação de letras maiúsculas e minúsculas.

lpszEntry
Aponta para uma cadeia de caracteres terminada em nulo que contém a entrada na qual o valor deve ser gravado. Se a entrada não existir na seção especificada, ela será criada.

nValor
Contém o valor a ser gravado.

Valor de retorno

Diferente de zero se for bem-sucedido; caso contrário, 0.

Exemplo

Este exemplo usa CWinApp* pApp = AfxGetApp(); para chegar à classe CWinApp, ilustrando uma maneira que WriteProfileString, WriteProfileInt, GetProfileStringe GetProfileInt podem ser usados de qualquer função em um aplicativo MFC.

CWinApp *pApp = AfxGetApp();

CString strSection = _T("My Section");
CString strStringItem = _T("My String Item");
CString strIntItem = _T("My Int Item");

pApp->WriteProfileString(strSection, strStringItem, _T("test"));

CString strValue;
strValue = pApp->GetProfileString(strSection, strStringItem);
ASSERT(strValue == _T("test"));

pApp->WriteProfileInt(strSection, strIntItem, 1234);

int nValue;
nValue = pApp->GetProfileInt(strSection, strIntItem, 0);
ASSERT(nValue == 1234);

Para outro exemplo, consulte o exemplo de CWinApp::GetProfileInt.

CWinApp::WriteProfileString

Chame essa função de membro para gravar a cadeia de caracteres especificada na seção especificada do registro do aplicativo ou . Arquivo INI.

BOOL WriteProfileString(
    LPCTSTR lpszSection,
    LPCTSTR lpszEntry,
    LPCTSTR lpszValue);

Parâmetros

lpszSecção
Aponta para uma cadeia de caracteres terminada em nulo que especifica a seção que contém a entrada. Se a seção não existir, ela é criada. O nome da secção é independente de maiúsculas e minúsculas; A cadeia de caracteres pode ser qualquer combinação de letras maiúsculas e minúsculas.

lpszEntry
Aponta para uma cadeia de caracteres terminada em nulo que contém a entrada na qual o valor deve ser gravado. Se a entrada não existir na seção especificada, ela será criada. Se esse parâmetro for NULL, a seção especificada por lpszSection será excluída.

lpszValue
Aponta para a cadeia de caracteres a ser escrita. Se esse parâmetro for NULL, a entrada especificada pelo parâmetro lpszEntry será excluída.

Valor de retorno

Diferente de zero se for bem-sucedido; caso contrário, 0.

Exemplo

CWinApp *pApp = AfxGetApp();

CString strSection = _T("My Section");
CString strStringItem = _T("My String Item");
CString strIntItem = _T("My Int Item");

pApp->WriteProfileString(strSection, strStringItem, _T("test"));

CString strValue;
strValue = pApp->GetProfileString(strSection, strStringItem);
ASSERT(strValue == _T("test"));

pApp->WriteProfileInt(strSection, strIntItem, 1234);

int nValue;
nValue = pApp->GetProfileInt(strSection, strIntItem, 0);
ASSERT(nValue == 1234);

Para outro exemplo, consulte o exemplo de CWinApp::GetProfileInt.

CWinApp::SetAppID

Define explicitamente a ID do Modelo de Usuário do Aplicativo para o aplicativo. Este método deve ser chamado antes de qualquer interface do usuário é apresentada ao usuário (o melhor lugar é o construtor do aplicativo).

void SetAppID(LPCTSTR lpcszAppID);

Parâmetros

lpcszAppID
Especifica a ID do Modelo de Usuário do Aplicativo.

Comentários

Ver também

CWinThread Classe
Gráfico de Hierarquia
Como adicionar suporte ao Restart Manager