Partilhar via


Classe CWinApp

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

Sintaxe

class CWinApp : public CWinThread

Membros

Construtores públicos

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

Métodos públicos

Nome 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 MRU (usado mais recentemente).
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::DelRegTree Exclui uma chave especificada e todas as subchaves.
CWinApp::DoMessageBox Implementa AfxMessageBox para o aplicativo.
CWinApp::DoWaitCursor Ativa e desativa o cursor de espera.
CWinApp::EnableD2DSupport Habilita o suporte a D2D do aplicativo. Chame esse método antes que a janela principal seja inicializada.
CWinApp::EnableHtmlHelp Implementa HTMLHelp para o aplicativo, em vez de WinHelp.
CWinApp::EnableTaskbarInteraction Habilita a interação da barra de tarefas.
CWinApp::ExitInstance Substitua para limpar quando seu aplicativo for encerrado.
CWinApp::GetApplicationRecoveryParameter Recupera o parâmetro de entrada para o método de recuperação de 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 do gerenciador de reinicialização.
CWinApp::GetAppRegistryKey Retorna 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 de impressora.
CWinApp::GetProfileBinary Recupera dados binários de uma entrada no arquivo .INI do aplicativo.
CWinApp::GetProfileInt Recupera um inteiro de uma entrada no arquivo .INI do aplicativo.
CWinApp::GetProfileString Recupera uma cadeia de caracteres de uma entrada no arquivo .INI do aplicativo.
CWinApp::GetSectionKey Retorna 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 do Windows.
CWinApp::InitInstance Substitua para executar a inicialização da instância do Windows, como criar objetos de janela.
CWinApp::IsTaskbarInteractionEnabled Informa se a interação com a barra de tarefas do Windows 7 está habilitada.
CWinApp::LoadCursor Carrega um recurso de cursor.
CWinApp::LoadIcon Carrega um recurso de ícone.
CWinApp::LoadOEMCursor Carrega um cursor predefinido do Windows OEM que as constantes OCR_ especificam no WINDOWS.H.
CWinApp::LoadOEMIcon Carrega um ícone predefinido do Windows OEM que as constantes OIC_ especificam no WINDOWS.H.
CWinApp::LoadStandardCursor Carrega um cursor predefinido do Windows que as constantes IDC_ especificam no WINDOWS.H.
CWinApp::LoadStandardIcon Carrega um ícone predefinido do Windows que as constantes IDI_ especificam no WINDOWS.H.
CWinApp::OnDDECommand Chamado pela estrutura em resposta a um comando de execução de DDE (troca dinâmica de dados).
CWinApp::OnIdle Substitua para executar o processamento de tempo ocioso específico do aplicativo.
CWinApp::OpenDocumentFile Chamado pela estrutura para abrir um documento de um arquivo.
CWinApp::ParseCommandLine Analisa parâmetros individuais e sinalizadores na linha de comando.
CWinApp::PreTranslateMessage Converte mensagens de janela antes de serem enviadas para as funções TranslateMessage e DispatchMessage de Windows.
CWinApp::ProcessMessageFilter Intercepta determinadas mensagens antes de chegarem ao aplicativo.
CWinApp::ProcessShellCommand Manipula argumentos e sinalizadores de linha de comando.
CWinApp::ProcessWndProcException Intercepta todas as exceções sem tratamento geradas pelos manipuladores de comando e mensagens do aplicativo.
CWinApp::Register Executa o registro 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 ele reinicia o aplicativo.
CWinApp::Run Executa o loop de mensagem padrão. Substitua para personalizar o loop de mensagem.
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 por meio 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 abre documentos automaticamente em um intervalo regular.
CWinApp::SupportsAutosaveAtRestart Determina se o gerenciador de reinicialização salva automaticamente os documentos abertos quando o aplicativo é reiniciado.
CWinApp::SupportsRestartManager Determina se o aplicativo dá suporte ao gerenciador de reinicialização.
CWinApp::Unregister Cancela o registro de tudo o que se sabe ser registrado pelo objeto CWinApp.
CWinApp::WinHelp Chama a função WinHelp do Windows.
CWinApp::WriteProfileBinary Grava dados binários para uma entrada no arquivo .INI do aplicativo.
CWinApp::WriteProfileInt Grava um inteiro para uma entrada no arquivo .INI do aplicativo.
CWinApp::WriteProfileString Grava uma cadeia de caracteres para uma entrada no arquivo .INI do aplicativo.

Métodos protegidos

Nome Descrição
CWinApp::EnableShellOpen Permite que o usuário abra arquivos de dados do Gerenciador de Arquivos do Windows.
CWinApp::LoadStdProfileSettings Carrega as configurações de arquivo padrão .INI e habilita o recurso de lista de arquivos MRU.
CWinApp::OnContextHelp Trata SHIFT+F1 Ajuda dentro do aplicativo.
CWinApp::OnFileNew 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 F1 Ajuda dentro do aplicativo (usando o contexto atual).
CWinApp::OnHelpFinder Trata os comandos ID_HELP_FINDER e ID_DEFAULT_HELP.
CWinApp::OnHelpIndex Trata o comando ID_HELP_INDEX e fornece um tópico de Ajuda padrão.
CWinApp::OnHelpUsing Trata o comando ID_HELP_USING.
CWinApp::RegisterShellFileTypes Registra todos os tipos de documento 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. Esse método deve ser chamado antes que qualquer interface do usuário seja 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 documento do aplicativo com o Gerenciador de Arquivos do Windows.

Membros de Dados Públicos

Nome 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 usado 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 no local.
CWinApp::m_pszAppID ID do modelo de usuário do aplicativo.
CWinApp::m_pszAppName Especifica o nome do aplicativo.
CWinApp::m_pszExeName O nome de módulo do aplicativo.
CWinApp::m_pszHelpFilePath O caminho para o arquivo de Ajuda do aplicativo.
CWinApp::m_pszProfileName O nome do arquivo .INI do aplicativo.
CWinApp::m_pszRegistryKey Usado para determinar a chave completa do Registro para armazenar as configurações de perfil do aplicativo.

Membros de dados protegidos

Nome 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 salvamentos automáticos.
CWinApp::m_pDataRecoveryHandler Ponteiro para o manipulador de recuperação de dados do 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 do Microsoft Foundation só pode conter um objeto derivado de CWinApp. Esse objeto é construído quando outros objetos globais C++ são construídos e já estão disponíveis quando o Windows chama a função WinMain, que é fornecida pela biblioteca Microsoft Foundation Class. Declare seu objeto CWinApp derivado no nível global.

Ao derivar uma classe de aplicativo de CWinApp, substitua a função membro InitInstance para criar o objeto de janela principal do aplicativo.

Além das funções de membro CWinApp, a biblioteca Microsoft Foundation Class 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 atual do aplicativo.

  • 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: A classe do aplicativo para obter mais informações sobre a classe CWinApp, incluindo uma visão geral do seguinte:

  • Código derivado de CWinApp gravado pelo assistente do aplicativo.

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

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

  • Substituíveis de chave do CWinApp.

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

Requisitos

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 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
[in] Reservado para uso futuro.

Valor de retorno

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

Comentários

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

A implementação padrão de ApplicationRecoveryCallback usa o CDataRecoveryHandler para salvar a lista de documentos abertos no momento no registro. Esse método não salva arquivos automaticamente.

Para personalizar o comportamento, substitua essa função em uma Classe CWinApp derivada ou passe seu próprio método de recuperação de aplicativo como um 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á ou não sendo encerrada. Será TRUE se a sessão estiver sendo encerrada; caso contrário, FALSE.

Comentários

Chame HideApplication antes de chamar CloseAllDocuments.

CWinApp::CreatePrinterDC

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

BOOL CreatePrinterDC(CDC& dc);

Parâmetros

dc
Uma referência a um contexto de dispositivo da 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ê deverá destruir o contexto do dispositivo. Você pode permitir que o destruidor do objeto CDC faça isso ou pode fazê-lo explicitamente chamando CDC::DeleteDC.

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 da sua classe derivada de CWinApp. Você pode ter apenas um objeto CWinApp no 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::DelRegTree

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 objeto CAtlTransactionManager.

Valor de retorno

Se a função obtiver êxito, o valor retornado será ERROR_SUCCESS. Se a função falhar, o valor retornado será o 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::DoMessageBox

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
O estilo da caixa de mensagem.

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

Valor de retorno

Retorna os mesmos valores que AfxMessageBox.

Comentários

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

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

CWinApp::DoWaitCursor

Essa função de membro é chamada pela estrutura para implementar CWaitCursor, CCmdTarget::BeginWaitCursor, CCmdTarget::EndWaitCursor e 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 será restaurado sem incrementar a contagem de referência. Se -1, o cursor de espera terminará.

Comentários

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

Embora normalmente não ligue 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

O Visual Studio 2010 SP1 é necessário.

Habilita o suporte a D2D do aplicativo. 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 write factory será compartilhado ou isolado

Valor de retorno

Retornará TRUE se o suporte a D2D estiver habilitado, FALSE – caso contrário

CWinApp::EnableHtmlHelp

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

void EnableHtmlHelp();

Comentários

CWinApp::EnableShellOpen

Chame essa função, normalmente de sua substituição 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 seu aplicativo para registro manual de tipos de documento.

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

Habilita a interação da barra de tarefas.

BOOL EnableTaskbarInteraction(BOOL bEnable = TRUE);

Parâmetros

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

Valor de retorno

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

Comentários

Esse método deve ser chamado antes da criação da janela principal, caso contrário, ele declarará e retornará FALSE.

CWinApp::ExitInstance

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

virtual int ExitInstance();

Valor de retorno

O código de saída do aplicativo; 0 não indica erros e valores maiores que 0 indicam um erro. Esse valor é usado como o valor retornado 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 opções de estrutura no arquivo .INI do aplicativo. Substitua esta função para limpeza quando seu 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 de aplicativo.

virtual LPVOID GetApplicationRecoveryParameter();

Valor de retorno

O parâmetro de entrada padrão para o método de recuperação de 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 com o 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 do gerenciador de reinicialização.

virtual DWORD GetApplicationRestartFlags();

Valor de retorno

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

Comentários

Os sinalizadores do 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 ao registrar 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 do aplicativo 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 da classe CDataRecoveryHandler. Essa classe é responsável por monitorar documentos abertos e salvar arquivos automaticamente. O comportamento do CDataRecoveryHandler depende da configuração do gerenciador de reinicialização. Para obter mais informações, consulte a classe CDataRecoveryHandler.

Esse método retorna NULL em sistemas operacionais anteriores ao Windows Vista. Não há suporte para o gerenciador de reinicialização em sistemas operacionais anteriores ao Windows Vista.

Se o aplicativo não tiver um manipulador de recuperação de dados no momento, 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 do ponteiro do 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 pos e, em seguida, define pos como 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 essa chamada.

Valor de retorno

Um ponteiro para um objeto CDocTemplate.

Comentários

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

Você deve garantir que seu valor POSITION seja válido. Se ele for inválido, a versão de Depuração da biblioteca Microsoft Foundation Class será declarada.

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 PRINTDLG.

Valor de retorno

Diferente de zero se tiver êxito; caso contrário, 0.

Comentários

Recupera os padrões da impressora atual do arquivo .INI do Windows conforme necessário ou usa a última configuração de impressora definida pelo usuário em Configurar 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

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

lpszEntry
Aponta para uma cadeia de caracteres terminada em null 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 um UINT que receberá o tamanho dos dados (em bytes).

Valor de retorno

Diferente de zero se tiver êxito; 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 ter diferenças de 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 delete [].

Importante

Os dados retornados por essa função não são necessariamente terminados em NULL, e o chamador deve executar a validação. Para obter mais informações, consulte Avoiding Buffer Overruns (Evitando estouros 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

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

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

nDefault
Especificará o valor padrão a ser retornado se a estrutura não puder localizar a entrada.

Valor de retorno

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

Essa função de membro dá suporte à notação hexadecimal para o valor no arquivo .INI. Ao recuperar um inteiro com sinal, 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 ter diferenças de maiúsculas e minúsculas.

Importante

Os dados retornados por essa função não são necessariamente terminados em NULL, e o chamador deve executar a validação. Para obter mais informações, consulte Avoiding Buffer Overruns (Evitando estouros 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

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

lpszEntry
Aponta para uma cadeia de caracteres terminada em null que contém a cadeia de caracteres cujo valor deve ser recuperado. Esse valor não deve ser NULL.

lpszDefault
Apontará para o valor de cadeia de caracteres padrão para a entrada determinada se a entrada não puder ser encontrada no arquivo de inicialização.

Valor de retorno

O valor retornado será a cadeia de caracteres do arquivo .INI do aplicativo ou lpszDefault se a cadeia de caracteres não puder ser encontrada. O comprimento máximo da cadeia de caracteres compatível com a estrutura é _MAX_PATH. Se lpszDefault for NULL, o valor retornado será uma cadeia de caracteres vazia.

Comentários

Importante

Os dados retornados por essa função não são necessariamente terminados em NULL, e o chamador deve executar a validação. Para obter mais informações, consulte Avoiding Buffer Overruns (Evitando estouros 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

lpszSection
O nome da chave a ser obtida.

pTM
Ponteiro para um objeto CAtlTransactionManager.

Valor de retorno

Chave de seçã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 membro para invocar o aplicativo HTMLHelp.

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

Parâmetros

dwData
Especifica os dados adicionais. O valor usado depende do valor do parâmetro nCmd. Define 0x000F como padrão, 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 nas funções de API HtmlHelpW ou 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

Não 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 de aplicativo único, que é feita na primeira vez em que o programa é executado, e inicialização de instância, que é executada sempre que uma cópia do programa é executada, incluindo a primeira vez. A implementação da estrutura de WinMain chama essa função.

Substitua InitInstance para inicializar cada nova instância do aplicativo em execução no Windows. Normalmente, você substitui InitInstance para construir seu objeto de janela principal e definir 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: a classe de aplicativo.

Observação

Os aplicativos MFC devem ser inicializados como STA (apartament com thread único). Se você chamar CoInitializeEx em sua substituição 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á habilitada.

virtual BOOL IsTaskbarInteractionEnabled();

Valor de retorno

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

Comentários

A interação da barra de tarefas significa que o aplicativo MDI exibe o conteúdo de filhos de 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 de cursor. Você pode usar um CString para este argumento.

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

Valor de retorno

Um identificador para um cursor se tiver êxito; caso contrário, NULL.

Comentários

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

Use a função de membro LoadStandardCursor ou 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ê pode também usar um CString para este argumento.

nIDResource
Número de ID do recurso de ícone.

Valor de retorno

Um identificador para um ícone se tiver êxito; caso contrário, NULL.

Comentários

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

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

Observação

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

CWinApp::LoadOEMCursor

Carrega o recurso de cursor predefinido do Windows especificado pelo 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 #include \<afxwin.h> para obter acesso às constantes OCR_ no WINDOWS.H.

Valor de retorno

Um identificador para um cursor se tiver êxito; caso contrário, NULL.

Comentários

Use a função de membro LoadOEMCursor ou LoadStandardCursor 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 OIC_ no WINDOWS.H.

Valor de retorno

Um identificador para um ícone se tiver êxito; caso contrário, NULL.

Comentários

Use a função de membro LoadOEMIcon ou LoadStandardIcon 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 no WINDOWS.H. A lista a seguir mostra os possíveis valores e significados predefinidos 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 em forma de cruz para seleção

  • IDC_UPARROW Seta que aponta diretamente para cima

  • IDC_SIZE Obsoleto e sem suporte; use IDC_SIZEALL

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

  • IDC_ICON Obsoleto e sem suporte. Use IDC_ARROW.

  • IDC_SIZENWSE Seta de duas cabeças com extremidades no canto superior esquerdo e inferior direito

  • IDC_SIZENESW Seta de duas cabeças com extremidades no canto superior direito e inferior esquerdo

  • IDC_SIZEWE Seta horizontal de duas cabeças

  • IDC_SIZENS Seta vertical de duas cabeças

Valor de retorno

Um identificador para um cursor se tiver êxito; 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 no WINDOWS.H. Para obter uma lista dos possíveis valores predefinidos e suas descrições, consulte o parâmetro lpIconName no LoadIcon no SDK do Windows.

Valor de retorno

Um identificador para um ícone se tiver êxito; caso contrário, NULL.

Comentários

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

CWinApp::LoadStdProfileSettings

Chame essa função de membro de dentro da função de membro InitInstance para habilitar e carregar a lista de arquivos MRU (usados mais recentemente) 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 (invocado convencionalmente com SHIFT + F1); caso contrário, FALSE.

BOOL m_bHelpMode;

Comentários

No modo de contexto de Ajuda, o cursor se torna um ponto de interrogação, e o usuário pode movê-lo sobre a tela. Examine esse sinalizador se você 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.

Sinalizador Descrição
AFX_RESTART_MANAGER_SUPPORT_RESTART O aplicativo é registrado usando CWinApp::RegisterWithRestartManager. O gerenciador de reinicialização será responsável por reiniciar o aplicativo se ele sair inesperadamente.
- AFX_RESTART_MANAGER_SUPPORT_RECOVERY O aplicativo é registrado com o gerenciador de reinicialização, que 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 é habilitado, e o gerenciador de reinicialização salva automaticamente os documentos abertos quando o aplicativo é reiniciado.
- AFX_RESTART_MANAGER_AUTOSAVE_AT_INTERVAL O salvamento automático é habilitado, e o gerenciador de reinicialização faz o salvamento automático de todos os documentos abertos em um intervalo regular. O intervalo é definido por CWinApp::m_nAutosaveInterval.
- AFX_RESTART_MANAGER_REOPEN_PREVIOUS_FILES O gerenciador de reinicialização abre os documentos abertos anteriormente após reiniciar o aplicativo de uma saída inesperada. A classe CDataRecoveryHandler manipula o armazenamento da lista de documentos abertos e a restauração deles.
- AFX_RESTART_MANAGER_RESTORE_AUTOSAVED_FILES O gerenciador de reinicialização solicita que o usuário restaure os arquivos salvos automaticamente após a reinicialização do 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_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_RECOVERY_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.

CWinApp::m_eHelpType

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

AFX_HELP_TYPE m_eHelpType;

Comentários

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

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 hInstance 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 salvamentos automáticos.

int m_nAutosaveInterval;

Comentários

Você pode configurar o gerenciador de reinicialização para salvamento automático de documentos abertos em intervalos definidos. Se o aplicativo não salvar arquivos automaticamente, esse parâmetro não terá 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 quando chamar CWnd::ShowWindow para a janela principal do 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 esse 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 no local.

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 do 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 sair inesperadamente. Para obter mais informações, consulte a classe CDataRecoveryHandler.

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 construtor CWinApp ou, se não 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 será proveniente do nome de 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 no heap. O destruidor CWinApp chama free( ) com este ponteiro. Muitos desejam usar a função de biblioteca em 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 de m_pszAppName, esse 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 no heap. O destruidor CWinApp chama free( ) com este ponteiro. Muitos desejam usar a função de biblioteca em 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 para o nome do aplicativo com ". HLP" acrescentado. Para alterar o nome do arquivo de ajuda, defina m_pszHelpFilePath para apontar para uma cadeia de caracteres que contém o nome completo do arquivo de ajuda desejado. Um lugar conveniente para fazer isso está 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 no heap. O destruidor CWinApp chama free( ) com este ponteiro. Muitos desejam usar a função de biblioteca em 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 .INI do aplicativo.

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 no heap. O destruidor CWinApp chama free( ) com este ponteiro. Muitos desejam usar a função de biblioteca em 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 de perfil do aplicativo é acrescentado à seguinte chave do Registro: HKEY_CURRENT_USER/Software/LocalAppWizard-Generated/.

Se você atribuir um valor a m_pszRegistryKey, ele deverá ser alocado dinamicamente no heap. O destruidor CWinApp chama free( ) com este ponteiro. Muitos desejam usar a função de biblioteca em 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

Trata SHIFT+F1 Ajuda dentro do aplicativo.

afx_msg void OnContextHelp();

Comentários

Você deve adicionar uma instrução ON_COMMAND( ID_CONTEXT_HELP, OnContextHelp ) ao mapa de mensagens de classe CWinApp e também adicionar uma entrada de tabela de aceleradores, 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. Essa função membro recupera o contexto de Ajuda do objeto no cursor e chama a função WinHelp do Windows com esse contexto de Ajuda.

CWinApp::OnDDECommand

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

virtual BOOL OnDDECommand(LPTSTR lpszCommand);

Parâmetros

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

Valor de retorno

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

Comentários

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

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 mapa de mensagens de classe CWinApp para habilitar essa função de membro. Se habilitada, essa função manipula a execução do comando Novo arquivo.

Consulte a Nota Técnica 22 para obter informações sobre o comportamento padrão e diretrizes 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 mapa de mensagens de classe CWinApp para habilitar essa função de membro. Se habilitada, essa função manipula a execução do comando Abrir arquivo.

Para obter informações sobre o comportamento padrão e diretrizes sobre como substituir essa função de membro, consulte a 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 mapa de mensagens de classe CWinApp para habilitar essa função de membro. Se habilitada, essa função manipula a execução do comando Imprimir arquivo.

Para obter informações sobre o comportamento padrão e diretrizes sobre como substituir essa função de membro, consulte a 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 F1 Ajuda 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. Habilitar a tecla F1 é apenas uma convenção, não um requisito.

Você deve adicionar uma instrução ON_COMMAND( ID_HELP, OnHelp ) ao mapa de mensagens de classe CWinApp para habilitar essa função de membro. Se habilitado, 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 de Ajuda que corresponde à janela atual, caixa de diálogo ou item de menu 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 de 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. Chame WinHelp com a ID de contexto da Ajuda desejada.

CWinApp::OnHelpFinder

Trata 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 mapa de mensagens de classe CWinApp para habilitar essa função de membro. Se habilitada, a estrutura chamará essa função de manipulador de mensagens quando o usuário do aplicativo selecionar o comando Help Finder para invocar WinHelp com o tópico HELP_FINDER padrão.

CWinApp::OnHelpIndex

Trata o comando ID_HELP_INDEX e fornece um tópico de Ajuda padrão.

afx_msg void OnHelpIndex();

Comentários

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

CWinApp::OnHelpUsing

Trata o comando ID_HELP_USING.

afx_msg void OnHelpUsing();

Comentários

Você deve adicionar uma instrução ON_COMMAND( ID_HELP_USING, OnHelpUsing ) ao 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 aplicativo seleciona o comando Help Using 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 de 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 sempre que uma nova mensagem é processada. Você pode usar o parâmetro lCount para determinar o período relativo de tempo que o aplicativo ficou ocioso sem processar uma mensagem.

Valor de retorno

Não 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 tarefas próprias 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 é redefinida para 0 sempre 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 Biblioteca Microsoft Foundation Class verificar a fila de mensagens e não encontrar mensagens pendentes, ele chamará OnIdle para o objeto do aplicativo e fornecerá 0 como o argumento lCount.

  2. OnIdle executa algum processamento e retorna um valor não zero para indicar que ele deve ser chamado novamente para fazer processamento adicional.

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

  4. Eventualmente, OnIdle conclui o processamento de todas as suas tarefas ociosas e retorna 0. Isso informa ao loop de mensagem 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 seja retornado.

Observação

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

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 tiver definido um temporizador muito curto ou se o sistema estiver enviando a mensagem WM_SYSTIMER, OnIdle será chamado repetidamente e prejudicará o desempenho.

Exemplo

Os dois exemplos a seguir mostram como usar 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 fazer isso sempre que possível. A segunda tarefa é menos importante e deverá ser feita somente quando houver uma longa pausa na entrada do usuário. Observe a chamada para a versão da classe base de 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 CDocument nomeado para o aplicativo.

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

Parâmetros

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

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

Valor de retorno

Um ponteiro para um CDocument se tiver êxito; 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 terá o foco. Se um aplicativo der 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 tiver êxito, 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::ParseCommandLine

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ê iniciar um novo projeto MFC usando o Assistente de aplicativo, o Assistente de aplicativo criará uma instância local de CCommandLineInfo, e, 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 chama CCommandLineInfo::ParseParam repetidamente, uma vez para cada parâmetro.

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

  4. ProcessShellCommand manipula os argumentos e os sinalizadores de linha de comando.

Observe que você pode chamar ParseCommandLine diretamente conforme necessário.

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

CWinApp::PreTranslateMessage

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 traduçã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 uma estrutura MSG que contém a mensagem a ser processada.

Valor de retorno

Não zero se a mensagem foi totalmente processada em PreTranslateMessage e não deve ser processada mais adiante. Zero se a mensagem deve ser processada da maneira normal.

CWinApp::ProcessMessageFilter

A função de gancho 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

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

lpMsg
Um ponteiro para uma estrutura MSG do Windows.

Valor de retorno

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

Comentários

Uma função de gancho processa eventos antes de serem enviados para o processamento de mensagem normal do aplicativo.

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

CWinApp::ProcessShellCommand

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

BOOL ProcessShellCommand(CCommandLineInfo& rCmdInfo);

Parâmetros

rCmdInfo
Uma referência a um objeto CCommandLineInfo.

Valor de retorno

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

Comentários

Quando você iniciar um novo projeto MFC usando o Assistente de aplicativo, o Assistente de aplicativo criará uma instância local de CCommandLineInfo, e, 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 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 manipula os argumentos e os sinalizadores de linha de comando.

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::ProcessWndProcException

A estrutura chama essa função de membro sempre que o manipulador não captura uma exceção gerada em um dos manipuladores de comando ou mensagem do aplicativo.

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

Parâmetros

e
Um ponteiro para uma exceção sem rascunho.

pMsg
Um estrutura MSG que contém informações sobre a mensagem do Windows que fez com que a estrutura gerasse 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 desativada se originar com uma falha de comando de menu, barra de ferramentas ou acelerador, a caixa de mensagem exibirá uma mensagem "Falha de comando"; caso contrário, ela exibirá uma mensagem "Erro interno do aplicativo".

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

CWinApp::Register

Executa todas as tarefas de registro não tratadas por RegisterShellFileTypes.

virtual BOOL Register();

Valor de retorno

Diferente de zero em caso de êxito. Caso contrário, 0.

Comentários

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

CWinApp::RegisterShellFileTypes

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

void RegisterShellFileTypes(BOOL bCompat = FALSE);

Parâmetros

bCompat
[in] TRUE adiciona entradas de registro para comandos de shell Imprimir e Imprimir para, 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 aplicativo clicando duas vezes nele no Gerenciador de Arquivos. Chame RegisterShellFileTypes depois de chamar AddDocTemplate para cada um dos modelos de documento no aplicativo. Chame também a função de membro EnableShellOpen ao chamar RegisterShellFileTypes.

RegisterShellFileTypes itera por meio da lista de objetos CDocTemplate 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 arquivos. O Gerenciador de Arquivos usa essas entradas para abrir um arquivo de dados quando o usuário clica duas vezes nele. Isso elimina a necessidade de enviar um arquivo .REG com seu aplicativo.

Observação

RegisterShellFileTypes só funcionará se o usuário executar o programa com direitos de administrador. Se o programa não tiver direitos de administrador, ele não poderá 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
[in] TRUE indica que essa instância do aplicativo usa uma função de retorno de chamada de recuperação; FALSE 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
[in] 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
[in] Uma cadeia de caracteres que contém argumentos extras da linha de comando.

dwRestartFlags
[in] Sinalizadores opcionais para o gerenciador de reinicialização. Para obter mais informações, consulte a seção Comentários.

pRecoveryCallback
[in] A função de retorno de chamada de recuperação. Essa função deve usar 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
[in] 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
[in] O período de tempo que o gerenciador de reinicialização aguarda o retorno da função de retorno de chamada de recuperação. Esse parâmetro está em milissegundos.

dwCallbackFlags
[in] 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 o aplicativo usar a implementação de MFC padrão para salvamento automático de arquivos, você deverá usar a versão simples de RegisterWithRestartManager. Use a versão complexa de RegisterWithRestartManager se você quiser personalizar o comportamento de salvamento automático do aplicativo.

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

Quando um aplicativo é encerrado inesperadamente, o gerenciador de reinicialização reinicia o aplicativo 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 no gerenciador de reinicialização, o gerenciador de reinicialização monitora o aplicativo. Se o aplicativo for encerrado 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 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 nesse momento, o aplicativo sairá sem executar a função de retorno de chamada de recuperação.

Por padrão, não há suporte para dwRestartFlags, mas eles 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; FALSE 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::QueryRestoreAutosavedDocuments para determinar quais documentos o usuário deseja restaurar.

Esse método retornará FALSE se o CDataRecoveryHandler determinar que não havia documentos abertos. Se não houver documentos abertos, o aplicativo será iniciado normalmente.

CWinApp::RestoreAutosavedFilesAtRestart

Determina se o gerenciador de reinicialização restaura os arquivos salvos automaticamente quando ele 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::Run

Fornece um loop de mensagem padrão.

virtual int Run();

Valor de retorno

Um valor int retornado por WinMain.

Comentários

Run adquire e despacha 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 chamará OnIdle para executar o processamento de tempo ocioso. As mensagens de entrada vão para a função de membro PreTranslateMessage para processamento especial e, em seguida, para a função TranslateMessage do Windows para tradução de teclado padrão; por fim, a função DispatchMessage do Windows é chamada.

Run raramente é substituído, mas você pode substituí-lo para proporcionar 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

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

Comentários

Se presente, a opção será removida da linha de comando. Para obter mais informações sobre a Automação OLE, consulte o artigo Servidores de automação.

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

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

Comentários

Se presente, a opção será removida da linha de comando. Para mais informações sobre inserção, confira o artigo Servidores: como implementar um servidor.

CWinApp::SaveAllModified

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

virtual BOOL SaveAllModified();

Valor de retorno

Não zero se for seguro para encerrar o aplicativo; 0 se não for seguro para 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 no 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 uma estrutura DEVNAMES que identifica o driver, o dispositivo e os nomes de porta de saída de uma impressora específica.

hDevMode
Um identificador para uma estrutura 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 usado. 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 aplicativo como HTMLHelp, você pode chamar EnableHTMLHelp. Depois de chamar EnableHTMLHelp, o aplicativo deve usar HTMLHelp como seu aplicativo de ajuda. Se você quiser alterar para usar o WinHelp, poderá chamar SetHelpMode e definir eHelpType como afxWinHelp.

CWinApp::SetRegistryKey

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

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

Parâmetros

lpszRegistryKey
Um ponteiro para uma cadeia de caracteres contendo o nome da chave.

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

Comentários

Essa função define m_pszRegistryKey, que é usado pelas funções de membro GetProfileInt, GetProfileString, WriteProfileInt e WriteProfileString de CWinApp. Se essa função tiver sido chamada, a lista de arquivos MRU (usados mais recentemente) também será armazenada no Registro. A chave do Registro geralmente é o nome de uma empresa. Ela é armazenada em uma chave do seguinte formulário: 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 abre documentos automaticamente 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 os 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 dá suporte ao gerenciador de reinicialização.

virtual BOOL SupportsRestartManager() const;

Valor de retorno

TRUE indica que o aplicativo dá suporte ao gerenciador de reinicialização; FALSE indica que o aplicativo, não.

CWinApp::Unregister

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

virtual BOOL Unregister();

Valor de retorno

Diferente de zero em caso de êxito. Caso contrário, 0.

Comentários

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

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

CWinApp::UnregisterShellFileTypes

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

void UnregisterShellFileTypes();

CWinApp::WinHelp

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

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

Parâmetros

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

nCmd
Especifica o tipo de ajuda solicitada. Para uma lista de valores possíveis e como eles afetam o parâmetro dwData, consulte a função WinHelp do 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

lpszSection
Aponta para uma cadeia de caracteres terminada em null que especifica a seção que contém a entrada. Se a seção não existir, ela será criada. O nome da seçã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 null 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
Ponteiro para os dados a serem gravados.

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

Valor de retorno

Diferente de zero se tiver êxito; caso contrário, 0.

Exemplo

Este exemplo usa CWinApp* pApp = AfxGetApp(); para obter na classe CWinApp ilustrando uma maneira que WriteProfileBinary e GetProfileBinary podem ser usados a partir 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

lpszSection
Aponta para uma cadeia de caracteres terminada em null que especifica a seção que contém a entrada. Se a seção não existir, ela será criada. O nome da seçã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 null 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.

nValue
Contém o valor a ser gravado.

Valor de retorno

Diferente de zero se tiver êxito; caso contrário, 0.

Exemplo

Este exemplo usa CWinApp* pApp = AfxGetApp(); para obter na classe CWinApp ilustrando uma maneira que WriteProfileString, WriteProfileInt, GetProfileString e GetProfileInt podem ser usados a partir 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

lpszSection
Aponta para uma cadeia de caracteres terminada em null que especifica a seção que contém a entrada. Se a seção não existir, ela será criada. O nome da seçã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 null 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 gravada. Se esse parâmetro for NULL, a entrada especificada pelo parâmetro lpszEntry será excluída.

Valor de retorno

Diferente de zero se tiver êxito; 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. Esse método deve ser chamado antes que qualquer interface do usuário seja 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

Confira também

Classe CWinThread
Gráfico da hierarquia
Como adicionar suporte ao gerenciador de reinicialização