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
, usem_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
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 especifiqueafxWinHelp
.
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:
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.OnIdle
executa algum processamento e retorna um valor não zero para indicar que ele deve ser chamado novamente para fazer processamento adicional.O loop de mensagem verifica a fila de mensagens novamente. Se nenhuma mensagem estiver pendente, ela chamará
OnIdle
novamente, incrementando o argumento lCount.Eventualmente,
OnIdle
conclui o processamento de todas as suas tarefas ociosas e retorna 0. Isso informa ao loop de mensagem para parar de chamarOnIdle
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:
Depois de ser criado em
InitInstance
, o objetoCCommandLineInfo
é passado paraParseCommandLine
.ParseCommandLine
chamaCCommandLineInfo::ParseParam
repetidamente, uma vez para cada parâmetro.ParseParam
preenche o objetoCCommandLineInfo
, que é passado para ProcessShellCommand.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:
Depois de ser criado em
InitInstance
, o objetoCCommandLineInfo
é passado paraParseCommandLine
.ParseCommandLine
chama CCommandLineInfo::P arseParam repetidamente, uma vez para cada parâmetro.ParseParam
preenche o objetoCCommandLineInfo
, que é então passado paraProcessShellCommand
.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