Classe CWinApp
A classe base da qual você deriva um objeto de aplicativo do Windows.
Sintaxe
class CWinApp : public CWinThread
Membros
Construtores Públicos
Designação | Descrição |
---|---|
CWinApp::CWinApp | Constrói um objeto CWinApp . |
Métodos Públicos
Designação | Descrição |
---|---|
CWinApp::AddDocTemplate | Adiciona um modelo de documento à lista de modelos de documento disponíveis do aplicativo. |
CWinApp::AddToRecentFileList | Adiciona um nome de arquivo à lista de arquivos usados mais recentemente (MRU). |
CWinApp::ApplicationRecoveryCallback | Chamado pela estrutura quando o aplicativo é encerrado inesperadamente. |
CWinApp::CloseAllDocuments | Fecha todos os documentos abertos. |
CWinApp::CreatePrinterDC | Cria um contexto de dispositivo de impressora. |
CWinApp::D elRegTree | Exclui uma chave especificada e todas as suas subchaves. |
CWinApp::D oMessageBox | Implementa AfxMessageBox para o aplicativo. |
CWinApp::D oWaitCursor | Ativa e desliga o cursor de espera. |
CWinApp::EnableD2DSupport | Habilita o suporte a D2D de aplicativos. Chame esse método antes que a janela principal seja inicializada. |
CWinApp::EnableHtmlHelp | Implementa HTMLHelp para o aplicativo, em vez de WinHelp. |
CWinApp::EnableTaskbarInteraction | Permite a interação com a Barra de Tarefas. |
CWinApp::ExitInstance | Substitua para limpar quando o aplicativo for encerrado. |
CWinApp::GetApplicationRecoveryParameter | Recupera o parâmetro de entrada para o método de recuperação do aplicativo. |
CWinApp::GetApplicationRecoveryPingInterval | Retorna o período de tempo que o gerenciador de reinicialização aguarda o retorno da função de retorno de chamada de recuperação. |
CWinApp::GetApplicationRestartFlags | Retorna os sinalizadores para o gerenciador de reinicialização. |
CWinApp::GetAppRegistryKey | Retorna a chave para HKEY_CURRENT_USER\"Software"\RegistryKey\ProfileName. |
CWinApp::GetDataRecoveryHandler | Obtém o manipulador de recuperação de dados para esta instância do aplicativo. |
CWinApp::GetFirstDocTemplatePosition | Recupera a posição do primeiro modelo de documento. |
CWinApp::GetHelpMode | Recupera o tipo de ajuda usado pelo aplicativo. |
CWinApp::GetNextDocTemplate | Recupera a posição de um modelo de documento. Pode ser usado recursivamente. |
CWinApp::GetPrinterDeviceDefaults | Recupera os padrões do dispositivo da impressora. |
CWinApp::GetProfileBinary | Recupera dados binários de uma entrada no arquivo . Arquivo INI. |
CWinApp::GetProfileInt | Recupera um inteiro de uma entrada no arquivo . Arquivo INI. |
CWinApp::GetProfileString | Recupera uma cadeia de caracteres de uma entrada no arquivo . Arquivo INI. |
CWinApp::GetSectionKey | Retorna a chave para HKEY_CURRENT_USER\"Software"\RegistryKey\AppName\lpszSection. |
CWinApp::HideApplication | Oculta o aplicativo antes de fechar todos os documentos. |
CWinApp::HtmlHelp | Chama a função HTMLHelp Windows. |
CWinApp::InitInstance | Substitua para executar a inicialização da instância do Windows, como criar seus objetos de janela. |
CWinApp::IsTaskbarInteractionEnabled | Informa se a interação com a Barra de Tarefas do Windows 7 está ativada. |
CWinApp::LoadCursor | Carrega um recurso de cursor. |
CWinApp::LoadIcon | Carrega um recurso de ícone. |
CWinApp::LoadOEMCursor | Carrega um cursor predefinido OEM do Windows que as constantes de OCR_ especificam em WINDOWS.H. |
CWinApp::LoadOEMIcon | Carrega um ícone predefinido OEM do Windows que as constantes de OIC_ especificam em WINDOWS.H. |
CWinApp::LoadStandardCursor | Carrega um cursor predefinido do Windows que as constantes de IDC_ especificam em WINDOWS.H. |
CWinApp::LoadStandardIcon | Carrega um ícone predefinido do Windows que as constantes de IDI_ especificam em WINDOWS.H. |
CWinApp::OnDDECommand | Chamado pela estrutura em resposta a um comando de execução de intercâmbio dinâmico de dados (DDE). |
CWinApp::OnIdle | Substituir para executar o processamento de tempo ocioso específico do aplicativo. |
CWinApp::OpenDocumentFile | Chamado pela estrutura para abrir um documento a partir de um arquivo. |
CWinApp::P arseCommandLine | Analisa parâmetros individuais e sinalizadores na linha de comando. |
CWinApp::P reTranslateMessage | Filtra as mensagens antes de serem enviadas para as funções do Windows TranslateMessage e DispatchMessage. |
CWinApp::P rocessMessageFilter | Interceta determinadas mensagens antes que elas cheguem ao aplicativo. |
CWinApp::P rocessShellCommand | Manipula argumentos de linha de comando e sinalizadores. |
CWinApp::P rocessWndProcException | Interceta todas as exceções não tratadas lançadas pelos manipuladores de mensagens e comandos do aplicativo. |
CWinApp::Registar | Realiza o registo personalizado. |
CWinApp::RegisterWithRestartManager | Registra o aplicativo com o gerenciador de reinicialização. |
CWinApp::ReopenPreviousFilesAtRestart | Determina se o gerenciador de reinicialização reabre os arquivos que estavam abertos quando o aplicativo foi encerrado inesperadamente. |
CWinApp::RestartInstance | Manipula uma reinicialização de aplicativo iniciada pelo gerenciador de reinicialização. |
CWinApp::RestoreAutosavedFilesAtRestart | Determina se o gerenciador de reinicialização restaura os arquivos salvos automaticamente quando reinicia o aplicativo. |
CWinApp::Executar | Executa o loop de mensagem padrão. Substituir para personalizar o loop de mensagens. |
CWinApp::RunAutomated | Testa a linha de comando do aplicativo para a opção /Automation. Obsoleto. Em vez disso, use o valor em CCommandLineInfo::m_bRunAutomated depois de chamar ParseCommandLine. |
CWinApp::RunEmbedded | Testa a linha de comando do aplicativo para a opção /Embedding. Obsoleto. Em vez disso, use o valor em CCommandLineInfo::m_bRunEmbedded depois de chamar ParseCommandLine. |
CWinApp::SaveAllModified | Solicita que o usuário salve todos os documentos modificados. |
CWinApp::SelectPrinter | Seleciona uma impressora indicada anteriormente por um usuário através de uma caixa de diálogo de impressão. |
CWinApp::SetHelpMode | Define e inicializa o tipo de ajuda usado pelo aplicativo. |
CWinApp::SupportsApplicationRecovery | Determina se o gerenciador de reinicialização recupera um aplicativo que saiu inesperadamente. |
CWinApp::SupportsAutosaveAtInterval | Determina se o gerenciador de reinicialização salva automaticamente documentos abertos em um intervalo regular. |
CWinApp::SupportsAutosaveAtRestart | Determina se o gerenciador de reinicialização salva automaticamente quaisquer documentos abertos quando o aplicativo é reiniciado. |
CWinApp::SupportsRestartManager | Determina se o aplicativo suporta o gerenciador de reinicialização. |
CWinApp::Cancelar o registro | Cancela o registro de tudo o que se sabe ser registrado pelo objeto CWinApp . |
CWinApp::WinHelp | Chama a função WinHelp Windows. |
CWinApp::WriteProfileBinary | Grava dados binários em uma entrada no arquivo . Arquivo INI. |
CWinApp::WriteProfileInt | Grava um inteiro em uma entrada no arquivo . Arquivo INI. |
CWinApp::WriteProfileString | Grava uma cadeia de caracteres em uma entrada no arquivo . Arquivo INI. |
Métodos Protegidos
Designação | Descrição |
---|---|
CWinApp::EnableShellOpen | Permite ao utilizador abrir ficheiros de dados a partir do Gestor de Ficheiros do Windows. |
CWinApp::LoadStdProfileSettings | Cargas padrão . Configurações do arquivo INI e habilita o recurso de lista de arquivos MRU. |
CWinApp::OnContextHelp | Lida com a Ajuda SHIFT+F1 dentro do aplicativo. |
CWinApp::OnFileNovo | Implementa o comando ID_FILE_NEW. |
CWinApp::OnFileOpen | Implementa o comando ID_FILE_OPEN. |
CWinApp::OnFilePrintSetup | Implementa o comando ID_FILE_PRINT_SETUP. |
CWinApp::OnHelp | Manipula a Ajuda F1 dentro do aplicativo (usando o contexto atual). |
CWinApp::OnHelpFinder | Manipula os comandos ID_HELP_FINDER e ID_DEFAULT_HELP. |
CWinApp::OnHelpIndex | Manipula o comando ID_HELP_INDEX e fornece um tópico da Ajuda padrão. |
CWinApp::OnHelpUsando | Manipula o comando ID_HELP_USING. |
CWinApp::RegisterShellFileTypes | Registra todos os tipos de documentos do aplicativo com o Gerenciador de arquivos do Windows. |
CWinApp::SetAppID | Define explicitamente a ID do Modelo de Usuário do Aplicativo para o aplicativo. Este método deve ser chamado antes de qualquer interface do usuário é apresentada ao usuário (o melhor lugar é o construtor do aplicativo). |
CWinApp::SetRegistryKey | Faz com que as configurações do aplicativo sejam armazenadas no Registro em vez de . Arquivos INI. |
CWinApp::UnregisterShellFileTypes | Cancela o registro de todos os tipos de documentos do aplicativo com o Gerenciador de arquivos do Windows. |
Membros de Dados Públicos
Designação | Descrição |
---|---|
CWinApp::m_bHelpMode | Indica se o usuário está no modo de contexto da Ajuda (normalmente invocado com SHIFT+F1). |
CWinApp::m_eHelpType | Especifica o tipo de ajuda usada pelo aplicativo. |
CWinApp::m_hInstance | Identifica a instância atual do aplicativo. |
CWinApp::m_lpCmdLine | Aponta para uma cadeia de caracteres terminada em nulo que especifica a linha de comando para o aplicativo. |
CWinApp::m_nCmdShow | Especifica como a janela deve ser mostrada inicialmente. |
CWinApp::m_pActiveWnd | Ponteiro para a janela principal do aplicativo de contêiner quando um servidor OLE está ativo in-loco. |
CWinApp::m_pszAppID | ID do modelo de usuário do aplicativo. |
CWinApp::m_pszAppName | Especifica o nome do aplicativo. |
CWinApp::m_pszExeName | O nome do módulo do aplicativo. |
CWinApp::m_pszHelpFilePath | O caminho para o arquivo de Ajuda do aplicativo. |
CWinApp::m_pszProfileName | O aplicativo é . Nome do arquivo INI. |
CWinApp::m_pszRegistryKey | Usado para determinar a chave do Registro completa para armazenar as configurações do perfil do aplicativo. |
Membros de Dados Protegidos
Designação | Descrição |
---|---|
CWinApp::m_dwRestartManagerSupportFlags | Sinalizadores que determinam como o gerenciador de reinicialização se comporta. |
CWinApp::m_nAutosaveInterval | O período de tempo em milissegundos entre os salvamentos automáticos. |
CWinApp::m_pDataRecoveryHandler | Ponteiro para o manipulador de recuperação de dados para o aplicativo. |
Comentários
Um objeto de aplicativo fornece funções de membro para inicializar seu aplicativo (e cada instância dele) e para executar o aplicativo.
Cada aplicativo que usa as classes Microsoft Foundation só pode conter um objeto derivado de CWinApp
. Este objeto é construído quando outros objetos globais C++ são construídos e já está disponível quando o Windows chama a função WinMain
, que é fornecida pela Microsoft Foundation Class Library. Declare seu objeto CWinApp
derivado em nível global.
Quando você deriva uma classe de aplicativo de CWinApp
, substitua o InitInstance função de membro para criar o objeto de janela principal do seu aplicativo.
Além das funções de membro CWinApp
, a Microsoft Foundation Class Library fornece as seguintes funções globais para acessar seu objeto CWinApp
e outras informações globais:
AfxGetApp Obtém um ponteiro para o objeto
CWinApp
.AfxGetInstanceHandle Obtém um identificador para a instância do aplicativo atual.
AfxGetResourceHandle Obtém um identificador para os recursos do aplicativo.
AfxGetAppName Obtém um ponteiro para uma cadeia de caracteres que contém o nome do aplicativo. Como alternativa, se você tiver um ponteiro para o objeto
CWinApp
, usem_pszExeName
para obter o nome do aplicativo.
Consulte CWinApp: The Application Class para obter mais informações sobre a classe CWinApp
, incluindo uma visão geral do seguinte:
CWinApp
código derivado escrito pelo Assistente de Aplicativo.CWinApp
função do na sequência de execução do seu aplicativo.CWinApp
implementações de função de membro padrão do .CWinApp
a chave de substituição.
O membro de dados m_hPrevInstance
não existe mais. Para determinar se outra instância do aplicativo está em execução, use um mutex nomeado. Se a abertura do mutex falhar, não haverá outras instâncias do aplicativo em execução.
Hierarquia de herança
CWinApp
Requerimentos
Cabeçalho: afxwin.h
CWinApp::AddDocTemplate
Chame essa função de membro para adicionar um modelo de documento à lista de modelos de documento disponíveis que o aplicativo mantém.
void AddDocTemplate(CDocTemplate* pTemplate);
Parâmetros
pTemplate
Um ponteiro para o CDocTemplate
a ser adicionado.
Comentários
Você deve adicionar todos os modelos de documento a um aplicativo antes de chamar RegisterShellFileTypes.
Exemplo
// The following code is produced by the Application Wizard when you
// choose the MDI (multiple document interface) option.
CMultiDocTemplate *pDocTemplate;
pDocTemplate = new CMultiDocTemplate(IDR_MYTYPE,
RUNTIME_CLASS(CMyDoc),
RUNTIME_CLASS(CChildFrame), // custom MDI child frame
RUNTIME_CLASS(CMyView));
if (!pDocTemplate)
return FALSE;
AddDocTemplate(pDocTemplate);
CWinApp::AddToRecentFileList
Chame essa função de membro para adicionar lpszPathName à lista de arquivos MRU.
virtual void AddToRecentFileList(LPCTSTR lpszPathName);
Parâmetros
lpszPathName
O caminho do arquivo.
Comentários
Você deve chamar a função de membro LoadStdProfileSettings para carregar a lista de arquivos MRU atual antes de usar essa função de membro.
A estrutura chama essa função de membro quando abre um arquivo ou executa o comando Salvar como para salvar um arquivo com um novo nome.
Exemplo
// This adds the pathname c:\temp\test.doc to the top of
// the most recently used (MRU) list in the File menu.
AfxGetApp()->AddToRecentFileList(_T("c:\\temp\\test.doc"));
CWinApp::ApplicationRecoveryCallback
Chamado pela estrutura quando o aplicativo é encerrado inesperadamente.
virtual DWORD ApplicationRecoveryCallback(LPVOID lpvParam);
Parâmetros
lpvParam
[em] Reservado para uso futuro.
Valor de retorno
0 se este método for bem-sucedido; diferente de zero se ocorrer um erro.
Comentários
Se seu aplicativo suportar o gerenciador de reinicialização, a estrutura chamará essa função quando seu aplicativo for encerrado inesperadamente.
A implementação padrão do ApplicationRecoveryCallback
usa o CDataRecoveryHandler
para salvar a lista de documentos atualmente abertos no registro. Este método não salva automaticamente nenhum arquivo.
Para personalizar o comportamento, substitua essa função em uma de classe CWinApp derivada ou passe seu próprio método de recuperação de aplicativo como parâmetro para CWinApp::RegisterWithRestartManager.
CWinApp::CloseAllDocuments
Chame essa função de membro para fechar todos os documentos abertos antes de sair.
void CloseAllDocuments(BOOL bEndSession);
Parâmetros
bEndSession
Especifica se a sessão do Windows está sendo encerrada ou não. É VERDADE se a sessão está sendo encerrada; caso contrário, FALSE.
Comentários
Ligue HideApplication antes de chamar CloseAllDocuments
.
CWinApp::CreatePrinterDC
Chame essa função de membro para criar um contexto de dispositivo de impressora (DC) a partir da impressora selecionada.
BOOL CreatePrinterDC(CDC& dc);
Parâmetros
DC
Uma referência ao contexto de um dispositivo de impressora.
Valor de retorno
Diferente de zero se o contexto do dispositivo da impressora for criado com êxito; caso contrário, 0.
Comentários
CreatePrinterDC
inicializa o contexto do dispositivo que você passa por referência, para que você possa usá-lo para imprimir.
Se a função for bem-sucedida, quando terminar de imprimir, você deve destruir o contexto do dispositivo. Você pode deixar o destruidor do objeto CDC fazê-lo, ou você pode fazê-lo explicitamente chamando CDC::D eleteDC.
CWinApp::CWinApp
Constrói um objeto CWinApp
e passa lpszAppName para ser armazenado como o nome do aplicativo.
CWinApp(LPCTSTR lpszAppName = NULL);
Parâmetros
lpszAppName
Uma cadeia de caracteres terminada em nulo que contém o nome do aplicativo que o Windows usa. Se esse argumento não for fornecido ou for NULL, CWinApp
usará a cadeia de caracteres de recurso AFX_IDS_APP_TITLE ou o nome do arquivo executável.
Comentários
Você deve construir um objeto global de sua classe derivada do CWinApp
. Você pode ter apenas um objeto CWinApp
em seu aplicativo. O construtor armazena um ponteiro para o objeto CWinApp
para que WinMain
possa chamar as funções de membro do objeto para inicializar e executar o aplicativo.
CWinApp::D elRegTree
Exclui uma chave do Registro específica e todas as suas subchaves.
LONG DelRegTree(
HKEY hParentKey,
const CString& strKeyName);
LONG DelRegTree(
HKEY hParentKey,
const CString& strKeyName,
CAtlTransactionManager* pTM = NULL);
Parâmetros
hParentKey
Manipule para uma chave do Registro.
strKeyName
O nome da chave do Registro a ser excluída.
pTM
Ponteiro para o objeto CAtlTransactionManager.
Valor de retorno
Se a função for bem-sucedida, o valor de retorno será ERROR_SUCCESS. Se a função falhar, o valor de retorno é um código de erro diferente de zero definido em Winerror.h.
Comentários
Chame essa função para excluir a chave especificada e suas subchaves.
CWinApp::D oMessageBox
A estrutura chama essa função de membro para implementar uma caixa de mensagem para a função global AfxMessageBox.
virtual int DoMessageBox(
LPCTSTR lpszPrompt,
UINT nType,
UINT nIDPrompt);
Parâmetros
lpszPrompt
Endereço do texto na caixa de mensagem.
nType
A caixa de mensagem estilo.
nIDPrompt
Um índice para uma cadeia de caracteres de contexto da Ajuda.
Valor de retorno
Devolve os mesmos valores que AfxMessageBox
.
Comentários
Não chame esta função de membro para abrir uma caixa de mensagem; em vez disso, use AfxMessageBox
.
Substitua essa função de membro para personalizar o processamento de chamadas de AfxMessageBox
em todo o aplicativo.
CWinApp::D oWaitCursor
Essa função de membro é chamada pela estrutura para implementar CWaitCursor, CCmdTarget::BeginWaitCursor, CCmdTarget::EndWaitCursore CCmdTarget::RestoreWaitCursor.
virtual void DoWaitCursor(int nCode);
Parâmetros
nCode
Se esse parâmetro for 1, um cursor de espera será exibido. Se 0, o cursor de espera é restaurado sem incrementar a contagem de referência. Se -1, o cursor de espera termina.
Comentários
O padrão implementa um cursor de ampulheta.
DoWaitCursor
mantém uma contagem de referência. Quando positivo, o cursor da ampulheta é exibido.
Embora normalmente não chame DoWaitCursor
diretamente, você pode substituir essa função de membro para alterar o cursor de espera ou fazer processamento adicional enquanto o cursor de espera é exibido.
Para uma maneira mais fácil e simplificada de implementar um cursor de espera, use CWaitCursor
.
Exemplo
// The following example shows how to display the
// hourglass cursor during some lengthy processing
void CMdiView::OnLButtonDown(UINT nFlags, CPoint point)
{
UNREFERENCED_PARAMETER(nFlags);
UNREFERENCED_PARAMETER(point);
AfxGetApp()->DoWaitCursor(1); // 1->>display the hourglass cursor
// do some lengthy processing
Sleep(1000);
AfxGetApp()->DoWaitCursor(-1); // -1->>remove the hourglass cursor
}
// The next example shows DoWaitCursor with parameter 0. It restores
// the hourglass cursor.
void CMdiView::OnMButtonDown(UINT nFlags, CPoint point)
{
UNREFERENCED_PARAMETER(nFlags);
UNREFERENCED_PARAMETER(point);
AfxGetApp()->DoWaitCursor(1); // display the hourglass cursor
// do some lengthy processing
// The message box will normally change the cursor to
// the standard arrow cursor, and leave the cursor in
// as the standard arrow cursor when the message box is
// closed.
AfxMessageBox(_T("DoWaitCursor Sample"));
// Call DoWaitCursor with parameter 0 to restore
// the cursor back to the hourglass cursor.
AfxGetApp()->DoWaitCursor(0);
// do some more lengthy processing
Sleep(1000);
AfxGetApp()->DoWaitCursor(-1); // remove the hourglass cursor
}
CWinApp::EnableD2DSupport
Visual Studio 2010 SP1 é necessário.
Habilita o suporte a D2D de aplicativos. Chame esse método antes que a janela principal seja inicializada.
BOOL EnableD2DSupport(
D2D1_FACTORY_TYPE d2dFactoryType = D2D1_FACTORY_TYPE_SINGLE_THREADED,
DWRITE_FACTORY_TYPE writeFactoryType = DWRITE_FACTORY_TYPE_SHARED);
Parâmetros
d2dFactoryType
O modelo de threading da fábrica D2D e os recursos que ela cria.
writeFactoryType
Um valor que especifica se o objeto de fábrica de gravação será compartilhado ou isolado
Valor de retorno
Retorna TRUE se o suporte a D2D foi habilitado, FALSE - caso contrário
CWinApp::EnableHtmlHelp
Chame essa função de membro de dentro do construtor de sua classe derivada do CWinApp
para usar HTMLHelp para a ajuda do seu aplicativo.
void EnableHtmlHelp();
Comentários
CWinApp::EnableShellOpen
Chame essa função, normalmente a partir da substituição de InitInstance
, para permitir que os usuários do aplicativo abram arquivos de dados quando clicarem duas vezes nos arquivos de dentro do Gerenciador de Arquivos do Windows.
void EnableShellOpen();
Comentários
Chame a função de membro RegisterShellFileTypes
em conjunto com essa função ou forneça um arquivo . REG com o seu pedido de registo manual de tipos de documentos.
Exemplo
// The following code fragment is from CMyApp::InitInstance.
// CMyApp is a CWinApp-derived class.
// enable file manager drag/drop and DDE Execute open
EnableShellOpen();
RegisterShellFileTypes();
CWinApp::EnableTaskbarInteraction
Permite a interação com a Barra de Tarefas.
BOOL EnableTaskbarInteraction(BOOL bEnable = TRUE);
Parâmetros
bAtivar
Especifica se a interação com a barra de tarefas do Windows 7 deve ser habilitada (TRUE) ou desabilitada (FALSE).
Valor de retorno
Retorna TRUE se a interação com a barra de tarefas puder ser habilitada ou desabilitada.
Comentários
Este método deve ser chamado antes da criação da janela principal, caso contrário, ele afirma e retorna FALSE.
CWinApp::ExitInstance
Chamado pela estrutura de dentro da função de membro Run
para sair desta instância do aplicativo.
virtual int ExitInstance();
Valor de retorno
O código de saída da aplicação; 0 indica que não há erros e valores superiores a 0 indicam um erro. Esse valor é usado como o valor de retorno de WinMain
.
Comentários
Não chame essa função de membro de qualquer lugar, mas dentro da função de membro Run
.
A implementação padrão dessa função grava as opções da estrutura no arquivo . Arquivo INI. Substitua essa função para limpar quando o aplicativo for encerrado.
Exemplo
int CMyApp::ExitInstance()
{
if (m_pMySampleMem)
delete m_pMySampleMem;
DoCleanup();
return CWinApp::ExitInstance();
}
CWinApp::GetApplicationRecoveryParameter
Recupera o parâmetro de entrada para o método de recuperação do aplicativo.
virtual LPVOID GetApplicationRecoveryParameter();
Valor de retorno
O parâmetro de entrada padrão para o método de recuperação do aplicativo.
Comentários
O comportamento padrão dessa função retorna NULL.
Para obter mais informações, consulte CWinApp::ApplicationRecoveryCallback.
CWinApp::GetApplicationRecoveryPingInterval
Retorna o período de tempo que o gerenciador de reinicialização aguarda o retorno da função de retorno de chamada de recuperação.
virtual DWORD GetApplicationRecoveryPingInterval();
Valor de retorno
O período de tempo em milissegundos.
Comentários
Quando um aplicativo registrado no gerenciador de reinicialização é encerrado inesperadamente, o aplicativo tenta salvar documentos abertos e chama a função de retorno de chamada de recuperação. A função de retorno de chamada de recuperação padrão é CWinApp::ApplicationRecoveryCallback.
O período de tempo que a estrutura aguarda o retorno da função de retorno de chamada de recuperação é o intervalo de ping. Você pode personalizar o intervalo de ping substituindo CWinApp::GetApplicationRecoveryPingInterval
ou fornecendo um valor personalizado para RegisterWithRestartManager
.
CWinApp::GetApplicationRestartFlags
Retorna os sinalizadores para o gerenciador de reinicialização.
virtual DWORD GetApplicationRestartFlags();
Valor de retorno
Os sinalizadores para o gerenciador de reinicialização. A implementação padrão retorna 0.
Comentários
Os sinalizadores para o gerenciador de reinicialização não têm efeito com a implementação padrão. Eles são fornecidos para uso futuro.
Você define os sinalizadores quando registra o aplicativo com o gerenciador de reinicialização usando CWinApp::RegisterWithRestartManager.
Os valores possíveis para os sinalizadores do gerenciador de reinicialização são os seguintes:
RESTART_NO_CRASH
RESTART_NO_HANG
RESTART_NO_PATCH
RESTART_NO_REBOOT
CWinApp::GetAppRegistryKey
Retorna a chave para HKEY_CURRENT_USER\"Software"\RegistryKey\ProfileName.
HKEY GetAppRegistryKey(CAtlTransactionManager* pTM = NULL);
Parâmetros
pTM
Ponteiro para um objeto CAtlTransactionManager
.
Valor de retorno
Chave de aplicação se a função for bem-sucedida; caso contrário, NULL.
Comentários
CWinApp::GetDataRecoveryHandler
Obtém o manipulador de recuperação de dados para esta instância do aplicativo.
virtual CDataRecoveryHandler *GetDataRecoveryHandler();
Valor de retorno
O manipulador de recuperação de dados para esta instância do aplicativo.
Comentários
Cada aplicativo que usa o gerenciador de reinicialização deve ter uma instância do CDataRecoveryHandler Class. Esta classe é responsável por monitorar documentos abertos e salvar automaticamente arquivos. O comportamento do CDataRecoveryHandler
depende da configuração do gerenciador de reinicialização. Para obter mais informações, consulte CDataRecoveryHandler Class.
Esse método retorna NULL em sistemas operacionais anteriores ao Windows Vista. O gerenciador de reinicialização não é suportado em sistemas operacionais anteriores ao Windows Vista.
Se o aplicativo não tiver atualmente um manipulador de recuperação de dados, esse método criará um e retornará um ponteiro para ele.
CWinApp::GetFirstDocTemplatePosition
Obtém a posição do primeiro modelo de documento no aplicativo.
POSITION GetFirstDocTemplatePosition() const;
Valor de retorno
Um valor POSITION que pode ser usado para iteração ou recuperação de ponteiro de objeto; NULL se a lista estiver vazia.
Comentários
Use o valor POSITION retornado em uma chamada para GetNextDocTemplate para obter o primeiro objeto CDocTemplate.
CWinApp::GetHelpMode
Recupera o tipo de ajuda usado pelo aplicativo.
AFX_HELP_TYPE GetHelpMode();
Valor de retorno
O tipo de ajuda usado pelo aplicativo. Consulte CWinApp::m_eHelpType para obter mais informações.
CWinApp::GetNextDocTemplate
Obtém o modelo de documento identificado por pose, em seguida, define pos para o valor POSITION.
CDocTemplate* GetNextDocTemplate(POSITION& pos) const;
Parâmetros
pos
Uma referência a um valor POSITION retornado por uma chamada anterior para GetNextDocTemplate
ou GetFirstDocTemplatePosition. O valor é atualizado para a próxima posição por esta chamada.
Valor de retorno
Um ponteiro para um objeto CDocTemplate.
Comentários
Você pode usar GetNextDocTemplate
em um loop de iteração de encaminhamento se estabelecer a posição inicial com uma chamada para GetFirstDocTemplatePosition
.
Você deve garantir que seu valor POSITION seja válido. Se for inválido, a versão de depuração da Microsoft Foundation Class Library afirma.
Se o modelo de documento recuperado for o último disponível, o novo valor de pos será definido como NULL.
CWinApp::GetPrinterDeviceDefaults
Chame essa função de membro para preparar um contexto de dispositivo de impressora para impressão.
BOOL GetPrinterDeviceDefaults(struct tagPDA* pPrintDlg);
Parâmetros
pPrintDlg
Um ponteiro para uma estrutura de PRINTDLG.
Valor de retorno
Diferente de zero se for bem-sucedido; caso contrário, 0.
Comentários
Recupera os padrões atuais da impressora do Windows . INI, conforme necessário, ou usa a última configuração de impressora definida pelo usuário na Configuração de impressão.
Exemplo
void CMyApp::SetLandscapeMode()
{
PRINTDLG pd;
pd.lStructSize = (DWORD)sizeof(PRINTDLG);
BOOL bRet = GetPrinterDeviceDefaults(&pd);
if (bRet)
{
// protect memory handle with ::GlobalLock and ::GlobalUnlock
DEVMODE FAR *pDevMode = (DEVMODE FAR*)::GlobalLock(pd.hDevMode);
// set orientation to landscape
pDevMode->dmOrientation = DMORIENT_LANDSCAPE;
::GlobalUnlock(pd.hDevMode);
}
}
CWinApp::GetProfileBinary
Chame essa função de membro para recuperar dados binários de uma entrada dentro de uma seção especificada do registro do aplicativo ou . Arquivo INI.
BOOL GetProfileBinary(
LPCTSTR lpszSection,
LPCTSTR lpszEntry,
LPBYTE* ppData,
UINT* pBytes);
Parâmetros
lpszSecção
Aponta para uma cadeia de caracteres terminada em nulo que especifica a seção que contém a entrada.
lpszEntry
Aponta para uma cadeia de caracteres terminada em nulo que contém a entrada cujo valor deve ser recuperado.
ppData
Aponta para um ponteiro que receberá o endereço dos dados.
pBytes
Aponta para uma UINT que receberá o tamanho dos dados (em bytes).
Valor de retorno
Diferente de zero se for bem-sucedido; caso contrário, 0.
Comentários
Essa função de membro não diferencia maiúsculas de minúsculas, portanto, as cadeias de caracteres nos parâmetros lpszSection e lpszEntry podem diferir em maiúsculas e minúsculas.
Observação
GetProfileBinary
aloca um buffer e retorna seu endereço em * ppData. O chamador é responsável por liberar o buffer usando excluir [].
Importante
Os dados retornados por essa função não são necessariamente encerrados NULL e o chamador deve executar a validação. Para obter mais informações, consulte Evitando saturações de buffer.
Exemplo
CWinApp* pApp = AfxGetApp();
const TCHAR* pszKey = _T("My Section");
struct complex {
double re, im;
} myData = { 1.4142, -0.5 };
// Write the information to the registry.
pApp->WriteProfileBinary(pszKey, _T("ComplexData"), (LPBYTE)&myData,
sizeof(myData));
// Read the information from the registry.
complex* pData;
UINT n;
BOOL ret = pApp->GetProfileBinary(pszKey, _T("ComplexData"), (LPBYTE*)&pData,
&n);
ASSERT(ret);
ASSERT(n == sizeof(complex));
ASSERT(myData.re == pData->re);
ASSERT(myData.im == pData->im);
delete [] pData; // free the buffer
Para obter um exemplo adicional, consulte CWinApp::WriteProfileBinary.
CWinApp::GetProfileInt
Chame essa função de membro para recuperar o valor de um inteiro de uma entrada dentro de uma seção especificada do registro do aplicativo ou . Arquivo INI.
UINT GetProfileInt(
LPCTSTR lpszSection,
LPCTSTR lpszEntry,
int nDefault);
Parâmetros
lpszSecção
Aponta para uma cadeia de caracteres terminada em nulo que especifica a seção que contém a entrada.
lpszEntry
Aponta para uma cadeia de caracteres terminada em nulo que contém a entrada cujo valor deve ser recuperado.
nDefault
Especifica o valor padrão a ser retornado se a estrutura não puder encontrar a entrada.
Valor de retorno
O valor inteiro da cadeia de caracteres que segue a entrada especificada se a função for bem-sucedida. O valor de retorno é o valor do parâmetro nDefault se a função não encontrar a entrada. O valor de retorno é 0 se o valor que corresponde à entrada especificada não for um inteiro.
Esta função de membro suporta notação hexadecimal para o valor no . Arquivo INI. Ao recuperar um inteiro assinado, você deve converter o valor em um int
.
Comentários
Essa função de membro não diferencia maiúsculas de minúsculas, portanto, as cadeias de caracteres nos parâmetros lpszSection e lpszEntry podem diferir em maiúsculas e minúsculas.
Importante
Os dados retornados por essa função não são necessariamente encerrados NULL e o chamador deve executar a validação. Para obter mais informações, consulte Evitando saturações de buffer.
Exemplo
CWinApp *pApp = AfxGetApp();
const TCHAR *pszKey = _T("My Section");
const TCHAR *pszName = _T("Julian");
int iAge = 26;
// Write the information to the registry.
pApp->WriteProfileString(pszKey, _T("Name"), pszName);
pApp->WriteProfileInt(pszKey, _T("Age"), iAge);
// Read the information from the registry.
CString strName = pApp->GetProfileString(pszKey, _T("Name"));
int iAge2 = pApp->GetProfileInt(pszKey, _T("Age"), 0);
ASSERT(strName == pszName);
ASSERT(iAge2 == iAge);
Para obter um exemplo adicional, consulte CWinApp::WriteProfileInt.
CWinApp::GetProfileString
Chame essa função de membro para recuperar a cadeia de caracteres associada a uma entrada dentro da seção especificada no registro do aplicativo ou . Arquivo INI.
CString GetProfileString(
LPCTSTR lpszSection,
LPCTSTR lpszEntry,
LPCTSTR lpszDefault = NULL);
Parâmetros
lpszSecção
Aponta para uma cadeia de caracteres terminada em nulo que especifica a seção que contém a entrada.
lpszEntry
Aponta para uma cadeia de caracteres terminada em nulo que contém a entrada cuja cadeia de caracteres deve ser recuperada. Esse valor não deve ser NULL.
lpszDefault
Aponta para o valor da cadeia de caracteres padrão para a entrada fornecida se a entrada não puder ser encontrada no arquivo de inicialização.
Valor de retorno
O valor de retorno é a cadeia de caracteres do arquivo . INI ou lpszDefault se a cadeia de caracteres não puder ser encontrada. O comprimento máximo da cadeia de caracteres suportado pela estrutura é _MAX_PATH. Se lpszDefault for NULL, o valor de retorno será uma cadeia de caracteres vazia.
Comentários
Importante
Os dados retornados por essa função não são necessariamente encerrados NULL e o chamador deve executar a validação. Para obter mais informações, consulte Evitando saturações de buffer.
Exemplo
CWinApp *pApp = AfxGetApp();
CString strSection = _T("My Section");
CString strStringItem = _T("My String Item");
CString strIntItem = _T("My Int Item");
pApp->WriteProfileString(strSection, strStringItem, _T("test"));
CString strValue;
strValue = pApp->GetProfileString(strSection, strStringItem);
ASSERT(strValue == _T("test"));
pApp->WriteProfileInt(strSection, strIntItem, 1234);
int nValue;
nValue = pApp->GetProfileInt(strSection, strIntItem, 0);
ASSERT(nValue == 1234);
Para outro exemplo, consulte o exemplo de CWinApp::GetProfileInt.
CWinApp::GetSectionKey
Retorna a chave para HKEY_CURRENT_USER\"Software"\RegistryKey\AppName\lpszSection.
HKEY GetSectionKey(
LPCTSTR lpszSection,
CAtlTransactionManager* pTM = NULL);
Parâmetros
lpszSecção
O nome da chave a ser obtida.
pTM
Ponteiro para um objeto CAtlTransactionManager
.
Valor de retorno
Tecla de secção se a função for bem-sucedida; caso contrário, NULL.
Comentários
CWinApp::HideApplication
Chame essa função de membro para ocultar um aplicativo antes de fechar os documentos abertos.
void HideApplication();
CWinApp::HtmlHelp
Chame essa função de membro para invocar o aplicativo HTMLHelp.
virtual void HtmlHelp(
DWORD_PTR dwData,
UINT nCmd = 0x000F);
Parâmetros
dwData
Especifica dados adicionais. O valor usado depende do valor do parâmetro nCmd. O padrão é 0x000F
o que significa HH_HELP_CONTEXT.
nCmd
Especifica o tipo de ajuda solicitada. Para obter uma lista de valores possíveis e como eles afetam o parâmetro dwData, consulte o parâmetro uCommand descrito no HtmlHelpW ou funções da API de HtmlHelpA no SDK do Windows.
Comentários
A estrutura também chama essa função para invocar o aplicativo HTMLHelp.
A estrutura fechará automaticamente o aplicativo HTMLHelp quando seu aplicativo for encerrado.
CWinApp::InitInstance
O Windows permite que várias cópias do mesmo programa sejam executadas ao mesmo tempo.
virtual BOOL InitInstance();
Valor de retorno
Diferente de zero se a inicialização for bem-sucedida; caso contrário, 0.
Comentários
A inicialização do aplicativo é conceitualmente dividida em duas seções: inicialização única do aplicativo que é feita na primeira vez que o programa é executado e inicialização de instância que é executada cada vez que uma cópia do programa é executada, incluindo a primeira vez. A implementação do WinMain
pelo quadro chama essa função.
Substitua InitInstance
para inicializar cada nova instância do seu aplicativo em execução no Windows. Normalmente, você substitui InitInstance
para construir seu objeto de janela principal e define o membro de dados CWinThread::m_pMainWnd
para apontar para essa janela. Para obter mais informações sobre como substituir essa função de membro, consulte CWinApp: The Application Class.
Observação
Os aplicativos MFC devem ser inicializados como apartamento de thread único (STA). Se você chamar CoInitializeEx em sua substituição de InitInstance
, especifique COINIT_APARTMENTTHREADED (em vez de COINIT_MULTITHREADED).
Exemplo
// AppWizard implements the InitInstance overridable function
// according to options you select. For example, the multiple document
// interface (MDI) option was chosen for the AppWizard code created
// below. You can add other per-instance initializations to the code
// created by AppWizard.
BOOL CMFCListViewApp::InitInstance()
{
AfxSetAmbientActCtx(FALSE);
// Remainder of function definition omitted.
CWinApp::InitInstance();
// Initialize OLE libraries
if (!AfxOleInit())
{
AfxMessageBox(_T("OleInit failed."));
return FALSE;
}
// Standard initialization
// If you are not using these features and wish to reduce the size
// of your final executable, you should remove from the following
// the specific initialization routines you do not need
// Change the registry key under which our settings are stored
// TODO: You should modify this string to be something appropriate
// such as the name of your company or organization
SetRegistryKey(_T("Local AppWizard-Generated Applications"));
LoadStdProfileSettings(4); // Load standard INI file options (including MRU)
// Register the application's document templates. Document templates
// serve as the connection between documents, frame windows and views
CMultiDocTemplate* pDocTemplate;
pDocTemplate = new CMultiDocTemplate(IDR_MFCListViewTYPE,
RUNTIME_CLASS(CMFCListViewDoc),
RUNTIME_CLASS(CChildFrame), // custom MDI child frame
RUNTIME_CLASS(CMyListView));
if (!pDocTemplate)
return FALSE;
AddDocTemplate(pDocTemplate);
// create main MDI Frame window
CMainFrame* pMainFrame = new CMainFrame;
if (!pMainFrame || !pMainFrame->LoadFrame(IDR_MAINFRAME))
{
delete pMainFrame;
return FALSE;
}
m_pMainWnd = pMainFrame;
// call DragAcceptFiles only if there's a suffix
// In an MDI app, this should occur immediately after setting m_pMainWnd
// Parse command line for standard shell commands, DDE, file open
CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);
// Dispatch commands specified on the command line. Will return FALSE if
// app was launched with /RegServer, /Register, /Unregserver or /Unregister.
if (!ProcessShellCommand(cmdInfo))
return FALSE;
// The main window has been initialized, so show and update it
pMainFrame->ShowWindow(m_nCmdShow);
pMainFrame->UpdateWindow();
return TRUE;
}
CWinApp::IsTaskbarInteractionEnabled
Informa se a interação com a Barra de Tarefas do Windows 7 está ativada.
virtual BOOL IsTaskbarInteractionEnabled();
Valor de retorno
Retorna TRUE se EnableTaskbarInteraction
tiver sido chamado e o sistema operacional for Windows 7 ou superior.
Comentários
Interação com a barra de tarefas significa que o aplicativo MDI exibe o conteúdo de crianças MDI em miniaturas separadas com guias que aparecem quando o ponteiro do mouse está sobre o botão da barra de tarefas do aplicativo.
CWinApp::LoadCursor
Carrega o recurso de cursor nomeado por lpszResourceName ou especificado por nIDResource do arquivo executável atual.
HCURSOR LoadCursor(LPCTSTR lpszResourceName) const; HCURSOR LoadCursor(UINT nIDResource) const;
Parâmetros
lpszResourceName
Aponta para uma cadeia de caracteres terminada em nulo que contém o nome do recurso do cursor. Você pode usar um CString
para esse argumento.
nIDResource
ID do recurso do cursor. Para obter uma lista de recursos, consulte LoadCursor no SDK do Windows.
Valor de retorno
Uma alça para um cursor se for bem-sucedida; caso contrário, NULL.
Comentários
LoadCursor
carrega o cursor na memória somente se ele não tiver sido carregado anteriormente; caso contrário, ele recupera um identificador do recurso existente.
Use o LoadStandardCursor ou função de membro do LoadOEMCursor para acessar os cursores predefinidos do Windows.
Exemplo
HCURSOR hCursor;
// Load a cursor resource that was originally created using
// the Graphics Editor and assigned the i.d. IDC_MYCURSOR.
hCursor = AfxGetApp()->LoadCursor(IDC_MYCURSOR);
CWinApp::LoadIcon
Carrega o recurso de ícone nomeado por lpszResourceName ou especificado por nIDResource do arquivo executável.
HICON LoadIcon(LPCTSTR lpszResourceName) const; HICON LoadIcon(UINT nIDResource) const;
Parâmetros
lpszResourceName
Aponta para uma cadeia de caracteres terminada em nulo que contém o nome do recurso de ícone. Você também pode usar um CString
para esse argumento.
nIDResource
Número de identificação do recurso de ícone.
Valor de retorno
Um identificador para um ícone, se bem-sucedido; caso contrário, NULL.
Comentários
LoadIcon
carrega o ícone somente se ele não tiver sido carregado anteriormente; caso contrário, ele recupera um identificador do recurso existente.
Você pode usar o LoadStandardIcon ou função de membro LoadOEMIcon para acessar os ícones predefinidos do Windows.
Observação
Essa função de membro chama a função de API do Win32 LoadIcon, que só pode carregar um ícone cujo tamanho esteja em conformidade com os valores SM_CXICON e SM_CYICON métricas do sistema.
CWinApp::LoadOEMCursor
Carrega o recurso de cursor predefinido do Windows especificado por nIDCursor.
HCURSOR LoadOEMCursor(UINT nIDCursor) const;
Parâmetros
nIDCursor
Um identificador de constante de manifesto OCR_ que especifica um cursor predefinido do Windows. Você deve ter #define OEMRESOURCE
antes de #include \<afxwin.h>
para obter acesso às constantes de OCR_ em WINDOWS.H.
Valor de retorno
Uma alça para um cursor se for bem-sucedida; caso contrário, NULL.
Comentários
Use o LoadOEMCursor
ou LoadStandardCursor função de membro para acessar os cursores predefinidos do Windows.
Exemplo
// In the stdafx.h file, add #define OEMRESOURCE to
// include the windows.h definitions of OCR_ values.
#define OEMRESOURCE
#include <afxwin.h> // MFC core and standard components
#include <afxext.h> // MFC extensions
HCURSOR hCursor;
// Load the predefined WIndows "size all" cursor.
hCursor = AfxGetApp()->LoadOEMCursor(OCR_SIZEALL);
CWinApp::LoadOEMIcon
Carrega o recurso de ícone predefinido do Windows especificado pelo nIDIcon.
HICON LoadOEMIcon(UINT nIDIcon) const;
Parâmetros
nIDIcon
Um identificador de constante de manifesto OIC_ que especifica um ícone predefinido do Windows. Você deve ter #define OEMRESOURCE
antes de #include \<afxwin.h>
para acessar as constantes de OIC_ em WINDOWS.H.
Valor de retorno
Um identificador para um ícone, se bem-sucedido; caso contrário, NULL.
Comentários
Use o LoadOEMIcon
ou LoadStandardIcon função de membro para acessar os ícones predefinidos do Windows.
CWinApp::LoadStandardCursor
Carrega o recurso de cursor predefinido do Windows que lpszCursorName especifica.
HCURSOR LoadStandardCursor(LPCTSTR lpszCursorName) const;
Parâmetros
lpszCursorName
Um identificador de constante de manifesto IDC_ que especifica um cursor predefinido do Windows. Esses identificadores são definidos em WINDOWS.H. A lista a seguir mostra os possíveis valores predefinidos e significados para lpszCursorName:
IDC_ARROW Cursor de seta padrão
IDC_IBEAM Cursor de inserção de texto padrão
IDC_WAIT Cursor de ampulheta usado quando o Windows executa uma tarefa demorada
IDC_CROSS Cursor cruzado para seleção
IDC_UPARROW Seta que aponta para cima
IDC_SIZE Obsoletos e sem suporte; use IDC_SIZEALL
IDC_SIZEALL Uma seta de quatro pontas. O cursor a ser usado para redimensionar uma janela.
IDC_ICON Obsoletos e sem suporte. Use IDC_ARROW.
IDC_SIZENWSE Seta de duas pontas com extremidades no canto superior esquerdo e inferior direito
IDC_SIZENESW Seta de duas pontas com extremidades no canto superior direito e no canto inferior esquerdo
IDC_SIZEWE Seta horizontal de duas pontas
IDC_SIZENS Seta vertical de duas pontas
Valor de retorno
Uma alça para um cursor se for bem-sucedida; caso contrário, NULL.
Comentários
Use a função de membro LoadStandardCursor
ou LoadOEMCursor para acessar os cursores predefinidos do Windows.
Exemplo
HCURSOR hCursor;
// Load the predefined Windows "up arrow" cursor.
hCursor = AfxGetApp()->LoadStandardCursor(IDC_UPARROW);
CWinApp::LoadStandardIcon
Carrega o recurso de ícone predefinido do Windows que lpszIconName especifica.
HICON LoadStandardIcon(LPCTSTR lpszIconName) const;
Parâmetros
lpszIconName
Um identificador de constante de manifesto que especifica um ícone predefinido do Windows. Esses identificadores são definidos em WINDOWS.H. Para obter uma lista dos possíveis valores predefinidos e suas descrições, consulte o parâmetro lpIconName em LoadIcon no SDK do Windows.
Valor de retorno
Um identificador para um ícone, se bem-sucedido; caso contrário, NULL.
Comentários
Use o LoadStandardIcon
ou função de membro do LoadOEMIcon para acessar os ícones predefinidos do Windows.
CWinApp::LoadStdProfileSettings
Chame essa função de membro de dentro do InitInstance função de membro para habilitar e carregar a lista de arquivos usados mais recentemente (MRU) e o último estado de visualização.
void LoadStdProfileSettings(UINT nMaxMRU = _AFX_MRU_COUNT);
Parâmetros
nMaxMRU
O número de arquivos usados recentemente para rastrear.
Comentários
Se nMaxMRU for 0, nenhuma lista de MRU será mantida.
CWinApp::m_bHelpMode
TRUE se o aplicativo estiver no modo de contexto da Ajuda (convencionalmente invocado com SHIFT + F1); caso contrário, FALSE.
BOOL m_bHelpMode;
Comentários
No modo de contexto da Ajuda, o cursor torna-se um ponto de interrogação e o utilizador pode movê-lo pelo ecrã. Examine esse sinalizador se quiser implementar uma manipulação especial quando estiver no modo de Ajuda.
m_bHelpMode
é uma variável pública do tipo BOOL.
CWinApp::m_dwRestartManagerSupportFlags
Sinalizadores que determinam como o gerenciador de reinicialização se comporta.
DWORD m_dwRestartManagerSupportFlags;
Comentários
Para habilitar o gerenciador de reinicialização, defina m_dwRestartManagerSupportFlags
para o comportamento desejado. A tabela a seguir mostra os sinalizadores disponíveis.
Bandeira | Descrição |
---|---|
AFX_RESTART_MANAGER_SUPPORT_RESTART | O aplicativo é registrado usando CWinApp::RegisterWithRestartManager. O gerenciador de reinicialização é responsável por reiniciar o aplicativo se ele sair inesperadamente. |
- AFX_RESTART_MANAGER_SUPPORT_RECOVERY | O aplicativo é registrado com o gerenciador de reinicialização e o gerenciador de reinicialização chama a função de retorno de chamada de recuperação quando reinicia o aplicativo. A função de retorno de chamada de recuperação padrão é CWinApp::ApplicationRecoveryCallback. |
- AFX_RESTART_MANAGER_AUTOSAVE_AT_RESTART | O salvamento automático é ativado e o gerenciador de reinicialização salva automaticamente todos os documentos abertos quando o aplicativo é reiniciado. |
- AFX_RESTART_MANAGER_AUTOSAVE_AT_INTERVAL | A gravação automática está ativada e o gestor de reinício guarda automaticamente todos os documentos abertos a intervalos regulares. O intervalo é definido por CWinApp::m_nAutosaveInterval. |
- AFX_RESTART_MANAGER_REOPEN_PREVIOUS_FILES | O gerenciador de reinicialização abre documentos abertos anteriormente depois de reiniciar o aplicativo a partir de uma saída inesperada. O CDataRecoveryHandler Class manipula o armazenamento da lista de documentos abertos e restaurá-los. |
- AFX_RESTART_MANAGER_RESTORE_AUTOSAVED_FILES | O gerenciador de reinicialização solicita que o usuário restaure os arquivos salvos automaticamente depois de reiniciar o aplicativo. A classe CDataRecoveryHandler consulta o usuário. |
- AFX_RESTART_MANAGER_SUPPORT_NO_AUTOSAVE | A união de AFX_RESTART_MANAGER_SUPPORT_RESTART, AFX_RESTART_MANAGER_SUPPORT_RECOVER e AFX_RESTART_MANAGER_REOPEN_PREVIOUS_FILES. |
- AFX_RESTART_MANAGER_SUPPORT_ALL_ASPECTS | A união de AFX_RESTART_MANAGER_SUPPORT_NO_AUTOSAVE, AFX_RESTART_MANAGER_AUTOSAVE_AT_RESTART, AFX_RESTART_MANAGER_AUTOSAVE_AT_INTERVAL e AFX_RESTART_MANAGER_RESTORE_AUTOSAVED_FILES. |
- AFX_RESTART_MANAGER_SUPPORT_RESTART_ASPECTS | A união de AFX_RESTART_MANAGER_SUPPORT_RESTART, AFX_RESTART_MANAGER_AUTOSAVE_AT_RESTART, AFX_RESTART_MANAGER_REOPEN_PREVIOUS_FILES e AFX_RESTART_MANAGER_RESTORE_AUTOSAVED_FILES. |
- AFX_RESTART_MANAGER_SUPPORT_RECOVERY_ASPECTS | O sindicato ofAFX_RESTART_MANAGER_SUPPORT_RECOVERY, AFX_RESTART_MANAGER_AUTOSAVE_AT_INTERVAL, AFX_RESTART_MANAGER_REOPEN_PREVIOUS_FILES e AFX_RESTART_MANAGER_RESTORE_AUTOSAVED_FILES. |
CWinApp::m_eHelpType
O tipo desse membro de dados é o tipo enumerado AFX_HELP_TYPE, que é definido dentro da classe CWinApp
.
AFX_HELP_TYPE m_eHelpType;
Comentários
A enumeração AFX_HELP_TYPE é definida da seguinte forma:
enum AFX_HELP_TYPE {
afxWinHelp = 0,
afxHTMLHelp = 1
};
Para definir a ajuda do aplicativo como Ajuda HTML, chame SetHelpMode e especifique
afxHTMLHelp
.Para definir a ajuda do aplicativo para WinHelp, chame
SetHelpMode
e 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 lpCmdLine passado pelo Windows para WinMain
.
LPTSTR m_lpCmdLine;
Comentários
Aponta para uma cadeia de caracteres terminada em nulo que especifica a linha de comando para o aplicativo. Use m_lpCmdLine
para acessar quaisquer argumentos de linha de comando que o usuário inseriu quando o aplicativo foi iniciado.
m_lpCmdLine
é uma variável pública do tipo LPTSTR.
Exemplo
if (m_lpCmdLine[0] == _T('\0'))
{
// Create a new (empty) document.
OnFileNew();
}
else
{
// Open a file passed as the first command line parameter.
OpenDocumentFile(m_lpCmdLine);
}
CWinApp::m_nAutosaveInterval
O período de tempo em milissegundos entre os salvamentos automáticos.
int m_nAutosaveInterval;
Comentários
Você pode configurar o gerenciador de reinicialização para salvar automaticamente documentos abertos em intervalos definidos. Se seu aplicativo não salva arquivos automaticamente, esse parâmetro não tem efeito.
CWinApp::m_nCmdShow
Corresponde ao parâmetro nCmdShow passado pelo Windows para WinMain
.
int m_nCmdShow;
Comentários
Você deve passar m_nCmdShow
como um argumento ao chamar CWnd::ShowWindow para a janela principal do seu aplicativo.
m_nCmdShow
é uma variável pública do tipo int
.
Exemplo
// The following code fragment is taken from CMyApp::InitInstance.
// CMyApp is derived from CWinApp.
// The main window has been initialized, so show and update it
// using the nCmdShow parameter passed to the application when it
// was first launched.
// pMainFrame is the main MDI frame window of our app and is derived
// from CMDIFrameWnd.
pMainFrame->ShowWindow(m_nCmdShow);
pMainFrame->UpdateWindow();
CWinApp::m_pActiveWnd
Use este membro de dados para armazenar um ponteiro para a janela principal do aplicativo de contêiner OLE que tem seu aplicativo de servidor OLE ativado.
Comentários
Se esse membro de dados for NULL, o aplicativo não estará ativo no local.
A estrutura define essa variável de membro quando a janela de quadro é ativada in-loco por um aplicativo de contêiner OLE.
CWinApp::m_pDataRecoveryHandler
Ponteiro para o manipulador de recuperação de dados para o aplicativo.
CDataRecoveryHandler* m_pDataRecoveryHandler;
Comentários
O manipulador de recuperação de dados de um aplicativo monitora documentos abertos e os salva automaticamente. A estrutura usa o manipulador de recuperação de dados para restaurar arquivos salvos automaticamente quando um aplicativo é reiniciado após ser encerrado inesperadamente. Para obter mais informações, consulte CDataRecoveryHandler Class.
CWinApp::m_pszAppName
Especifica o nome do aplicativo.
LPCTSTR m_pszAppName;
Comentários
O nome do aplicativo pode vir do parâmetro passado para o CWinApp construtor ou, se não for especificado, para a cadeia de caracteres de recurso com a ID de AFX_IDS_APP_TITLE. Se o nome do aplicativo não for encontrado no recurso, ele vem do nome do arquivo .EXE do programa.
Retornado pela função global AfxGetAppName.
m_pszAppName
é uma variável pública do tipo const char*.
Observação
Se você atribuir um valor a m_pszAppName
, ele deverá ser alocado dinamicamente na pilha. O destruidor de CWinApp
chama livre ( ) com este ponteiro. Muitos querem usar a função de biblioteca de tempo de execução _tcsdup
( ) para fazer a alocação. Além disso, libere a memória associada ao ponteiro atual antes de atribuir um novo valor. Por exemplo:
//First free the string allocated by MFC at CWinApp startup.
//The string is allocated before InitInstance is called.
free((void*)m_pszAppName);
//Change the name of the application file.
//The CWinApp destructor will free the memory.
m_pszAppName = _tcsdup(_T("c:\\somedir\\myapp.exe"));
Exemplo
CWnd *pWnd = AfxGetMainWnd();
// Set pWnd to some CWnd object whose window has already
// been created.
// The following call to CWnd::MessageBox uses the application
// title as the message box caption.
pWnd->MessageBox(_T("Some message"), AfxGetApp()->m_pszAppName);
// A more direct way to get the application title is to
// call AfxGetAppName:
pWnd->MessageBox(_T("Some message"), AfxGetAppName());
// An easier way to display a message box using the application
// title as the message box caption is to call AfxMessageBox:
AfxMessageBox(_T("Some message"));
CWinApp::m_pszExeName
Contém o nome do arquivo executável do aplicativo sem uma extensão.
LPCTSTR m_pszExeName;
Comentários
Ao contrário m_pszAppName, este nome não pode conter espaços em branco.
m_pszExeName
é uma variável pública do tipo const char*.
Observação
Se você atribuir um valor a m_pszExeName
, ele deverá ser alocado dinamicamente na pilha. O destruidor de CWinApp
chama livre ( ) com este ponteiro. Muitos querem usar a função de biblioteca de tempo de execução _tcsdup
( ) para fazer a alocação. Além disso, libere a memória associada ao ponteiro atual antes de atribuir um novo valor. Por exemplo:
//First free the string allocated by MFC at CWinApp startup.
//The string is allocated before InitInstance is called.
free((void*)m_pszExeName);
//Change the name of the .EXE file.
//The CWinApp destructor will free the memory.
m_pszExeName = _tcsdup(_T("c:\\somedir\\myapp"));
CWinApp::m_pszHelpFilePath
Contém o caminho para o arquivo de Ajuda do aplicativo.
LPCTSTR m_pszHelpFilePath;
Comentários
Por padrão, a estrutura inicializa m_pszHelpFilePath
ao nome do aplicativo com ". HLP", acrescentou. Para alterar o nome do arquivo de ajuda, defina m_pszHelpFilePath
para apontar para uma cadeia de caracteres que contenha o nome completo do arquivo de ajuda desejado. Um lugar conveniente para fazer isso é na função InitInstance do aplicativo.
m_pszHelpFilePath
é uma variável pública do tipo const char*.
Observação
Se você atribuir um valor a m_pszHelpFilePath
, ele deverá ser alocado dinamicamente na pilha. O destruidor de CWinApp
chama livre ( ) com este ponteiro. Muitos querem usar a função de biblioteca de tempo de execução _tcsdup
( ) para fazer a alocação. Além disso, libere a memória associada ao ponteiro atual antes de atribuir um novo valor. Por exemplo:
//First free the string allocated by MFC at CWinApp startup.
//The string is allocated before InitInstance is called.
free((void*)m_pszHelpFilePath);
//Change the name of the .HLP file.
//The CWinApp destructor will free the memory.
m_pszHelpFilePath = _tcsdup(_T("c:\\somedir\\myhelp.hlp"));
CWinApp::m_pszProfileName
Contém o nome do arquivo . Arquivo INI.
LPCTSTR m_pszProfileName;
Comentários
m_pszProfileName
é uma variável pública do tipo const char*.
Observação
Se você atribuir um valor a m_pszProfileName
, ele deverá ser alocado dinamicamente na pilha. O destruidor de CWinApp
chama livre ( ) com este ponteiro. Muitos querem usar a função de biblioteca de tempo de execução _tcsdup
( ) para fazer a alocação. Além disso, libere a memória associada ao ponteiro atual antes de atribuir um novo valor. Por exemplo:
//First free the string allocated by MFC at CWinApp startup.
//The string is allocated before InitInstance is called.
free((void*)m_pszProfileName);
//Change the name of the .INI file.
//The CWinApp destructor will free the memory.
m_pszProfileName = _tcsdup(_T("c:\\somedir\\myini.ini"));
CWinApp::m_pszRegistryKey
Usado para determinar onde, no registro ou no arquivo INI, as configurações de perfil do aplicativo são armazenadas.
LPCTSTR m_pszRegistryKey;
Comentários
Normalmente, esse membro de dados é tratado como somente leitura.
- O valor é armazenado em uma chave do Registro. O nome da configuração do perfil do aplicativo é anexado à seguinte chave do Registro: HKEY_CURRENT_USER/Software/LocalAppWizard-Generated/.
Se você atribuir um valor a m_pszRegistryKey
, ele deverá ser alocado dinamicamente na pilha. O destruidor de CWinApp
chama livre ( ) com este ponteiro. Muitos querem usar a função de biblioteca de tempo de execução _tcsdup
( ) para fazer a alocação. Além disso, libere a memória associada ao ponteiro atual antes de atribuir um novo valor. Por exemplo:
//First free the string allocated by MFC at CWinApp startup.
//The string is allocated before InitInstance is called.
free((void*)m_pszRegistryKey);
//Change the name of the registry key.
//The CWinApp destructor will free the memory.
m_pszRegistryKey = _tcsdup(
_T("HKEY_CURRENT_USER\\Software\\mycompany\\myapp\\thissection\\thisvalue"));
CWinApp::m_pszAppID
ID do modelo de usuário do aplicativo.
LPCTSTR m_pszAppID;
Comentários
CWinApp::OnContextHelp
Lida com a Ajuda SHIFT+F1 dentro do aplicativo.
afx_msg void OnContextHelp();
Comentários
Você deve adicionar uma instrução ON_COMMAND( ID_CONTEXT_HELP, OnContextHelp )
ao seu mapa de mensagens de classe CWinApp
e também adicionar uma entrada de tabela aceleradora, normalmente SHIFT+F1, para habilitar essa função de membro.
OnContextHelp
coloca o aplicativo no modo de Ajuda. O cursor muda para uma seta e um ponto de interrogação, e o usuário pode mover o ponteiro do mouse e pressionar o botão esquerdo do mouse para selecionar uma caixa de diálogo, janela, menu ou botão de comando. Esta função de membro recupera o contexto de Ajuda do objeto sob o cursor e chama a função do Windows WinHelp com esse contexto de Ajuda.
CWinApp::OnDDECommand
Chamado pela estrutura quando a janela do quadro principal recebe uma mensagem de execução DDE.
virtual BOOL OnDDECommand(LPTSTR lpszCommand);
Parâmetros
lpszCommand
Aponta para uma cadeia de caracteres de comando DDE recebida pelo aplicativo.
Valor de retorno
Diferente de zero se o comando for manipulado; caso contrário, 0.
Comentários
A implementação padrão verifica se o comando é uma solicitação para abrir um documento e, em caso afirmativo, abre o documento especificado. O Gerenciador de arquivos do Windows geralmente envia essas cadeias de comando DDE quando o usuário clica duas vezes em um arquivo de dados. Substitua essa função para manipular outros comandos de execução DDE, como o comando para imprimir.
Exemplo
BOOL CMyApp::OnDDECommand(LPTSTR lpszCommand)
{
if (CWinApp::OnDDECommand(lpszCommand))
return TRUE;
// Handle any DDE commands recognized by your application
// and return TRUE. See implementation of CWinApp::OnDDEComand
// for example of parsing the DDE command string.
// Return FALSE for any DDE commands you do not handle.
return FALSE;
}
CWinApp::OnFileNew
Implementa o comando ID_FILE_NEW.
afx_msg void OnFileNew();
Comentários
Você deve adicionar uma instrução ON_COMMAND( ID_FILE_NEW, OnFileNew )
ao seu mapa de mensagens de classe CWinApp
para habilitar essa função de membro. Se habilitada, essa função lida com a execução do comando Arquivo Novo.
Consulte Nota Técnica 22 para obter informações sobre o comportamento padrão e orientações sobre como substituir essa função de membro.
Exemplo
// The following message map, produced by the Application Wizard, binds
// the File New, Open, and Print Setup menu commands to default
// framework implementations of these commands.
BEGIN_MESSAGE_MAP(CStdApp, CWinApp)
// Standard file based document commands
ON_COMMAND(ID_FILE_NEW, &CWinApp::OnFileNew)
ON_COMMAND(ID_FILE_OPEN, &CWinApp::OnFileOpen)
// Standard print setup command
ON_COMMAND(ID_FILE_PRINT_SETUP, &CWinApp::OnFilePrintSetup)
END_MESSAGE_MAP()
// The following message map illustrates how to rebind the
// File New, Open and Print Setup menu commands to handlers that
// you implement in your CWinApp-derived class.
// Note, you can name the handler CCustomApp::OnFileNew instead of
// CCustomApp::OnMyFileNew, and likewise for the other handlers, if desired.
BEGIN_MESSAGE_MAP(CCustomApp, CWinApp)
ON_COMMAND(ID_FILE_NEW, &CCustomApp::OnMyFileNew)
ON_COMMAND(ID_FILE_OPEN, &CCustomApp::OnMyFileOpen)
ON_COMMAND(ID_FILE_PRINT_SETUP, &CCustomApp::OnMyFilePrintSetup)
END_MESSAGE_MAP()
CWinApp::OnFileOpen
Implementa o comando ID_FILE_OPEN.
afx_msg void OnFileOpen();
Comentários
Você deve adicionar uma instrução ON_COMMAND( ID_FILE_OPEN, OnFileOpen )
ao seu mapa de mensagens de classe CWinApp
para habilitar essa função de membro. Se habilitada, essa função lida com a execução do comando Abrir arquivo.
Para obter informações sobre o comportamento padrão e orientações sobre como substituir essa função de membro, consulte Nota Técnica 22.
Exemplo
// The following message map, produced by the Application Wizard, binds
// the File New, Open, and Print Setup menu commands to default
// framework implementations of these commands.
BEGIN_MESSAGE_MAP(CStdApp, CWinApp)
// Standard file based document commands
ON_COMMAND(ID_FILE_NEW, &CWinApp::OnFileNew)
ON_COMMAND(ID_FILE_OPEN, &CWinApp::OnFileOpen)
// Standard print setup command
ON_COMMAND(ID_FILE_PRINT_SETUP, &CWinApp::OnFilePrintSetup)
END_MESSAGE_MAP()
// The following message map illustrates how to rebind the
// File New, Open and Print Setup menu commands to handlers that
// you implement in your CWinApp-derived class.
// Note, you can name the handler CCustomApp::OnFileNew instead of
// CCustomApp::OnMyFileNew, and likewise for the other handlers, if desired.
BEGIN_MESSAGE_MAP(CCustomApp, CWinApp)
ON_COMMAND(ID_FILE_NEW, &CCustomApp::OnMyFileNew)
ON_COMMAND(ID_FILE_OPEN, &CCustomApp::OnMyFileOpen)
ON_COMMAND(ID_FILE_PRINT_SETUP, &CCustomApp::OnMyFilePrintSetup)
END_MESSAGE_MAP()
CWinApp::OnFilePrintSetup
Implementa o comando ID_FILE_PRINT_SETUP.
afx_msg void OnFilePrintSetup();
Comentários
Você deve adicionar uma instrução ON_COMMAND( ID_FILE_PRINT_SETUP, OnFilePrintSetup )
ao seu mapa de mensagens de classe CWinApp
para habilitar essa função de membro. Se habilitada, essa função lida com a execução do comando Impressão de arquivo.
Para obter informações sobre o comportamento padrão e orientações sobre como substituir essa função de membro, consulte Nota Técnica 22.
Exemplo
// The following message map, produced by the Application Wizard, binds
// the File New, Open, and Print Setup menu commands to default
// framework implementations of these commands.
BEGIN_MESSAGE_MAP(CStdApp, CWinApp)
// Standard file based document commands
ON_COMMAND(ID_FILE_NEW, &CWinApp::OnFileNew)
ON_COMMAND(ID_FILE_OPEN, &CWinApp::OnFileOpen)
// Standard print setup command
ON_COMMAND(ID_FILE_PRINT_SETUP, &CWinApp::OnFilePrintSetup)
END_MESSAGE_MAP()
// The following message map illustrates how to rebind the
// File New, Open and Print Setup menu commands to handlers that
// you implement in your CWinApp-derived class.
// Note, you can name the handler CCustomApp::OnFileNew instead of
// CCustomApp::OnMyFileNew, and likewise for the other handlers, if desired.
BEGIN_MESSAGE_MAP(CCustomApp, CWinApp)
ON_COMMAND(ID_FILE_NEW, &CCustomApp::OnMyFileNew)
ON_COMMAND(ID_FILE_OPEN, &CCustomApp::OnMyFileOpen)
ON_COMMAND(ID_FILE_PRINT_SETUP, &CCustomApp::OnMyFilePrintSetup)
END_MESSAGE_MAP()
CWinApp::OnHelp
Manipula a Ajuda F1 dentro do aplicativo (usando o contexto atual).
afx_msg void OnHelp();
Comentários
Normalmente, você também adicionará uma entrada de tecla aceleradora para a tecla F1. Ativar a chave F1 é apenas uma convenção, não um requisito.
Você deve adicionar uma instrução ON_COMMAND( ID_HELP, OnHelp )
ao seu mapa de mensagens de classe CWinApp
para habilitar essa função de membro. Se ativado, chamado pela estrutura quando o usuário pressiona a tecla F1.
A implementação padrão dessa função de manipulador de mensagens determina o contexto da Ajuda que corresponde à janela, caixa de diálogo ou item de menu atual e, em seguida, chama WINHELP.EXE. Se nenhum contexto estiver disponível no momento, a função usará o contexto padrão.
Substitua essa função de membro para definir o contexto da Ajuda para algo diferente da janela, caixa de diálogo, item de menu ou botão da barra de ferramentas que atualmente tem o foco. Ligue para WinHelp
com o ID de contexto de Ajuda desejado.
CWinApp::OnHelpFinder
Manipula os comandos ID_HELP_FINDER e ID_DEFAULT_HELP.
afx_msg void OnHelpFinder();
Comentários
Você deve adicionar uma instrução ON_COMMAND( ID_HELP_FINDER, OnHelpFinder )
ao seu mapa de mensagens de classe CWinApp
para habilitar essa função de membro. Se habilitada, a estrutura chama essa função de manipulador de mensagens quando o usuário do seu aplicativo seleciona o comando Help Finder para invocá-WinHelp
com o tópico HELP_FINDER padrão.
CWinApp::OnHelpIndex
Manipula o comando ID_HELP_INDEX e fornece um tópico da Ajuda padrão.
afx_msg void OnHelpIndex();
Comentários
Você deve adicionar uma instrução ON_COMMAND( ID_HELP_INDEX, OnHelpIndex )
ao seu mapa de mensagens de classe CWinApp
para habilitar essa função de membro. Se habilitada, a estrutura chama essa função de manipulador de mensagens quando o usuário do seu aplicativo seleciona o comando Índice da Ajuda para invocar WinHelp
com o tópico HELP_INDEX padrão.
CWinApp::OnHelpUsando
Manipula o comando ID_HELP_USING.
afx_msg void OnHelpUsing();
Comentários
Você deve adicionar uma instrução ON_COMMAND( ID_HELP_USING, OnHelpUsing )
ao seu mapa de mensagens de classe CWinApp
para habilitar essa função de membro. A estrutura chama essa função de manipulador de mensagens quando o usuário do seu aplicativo seleciona o comando Ajuda Usando para invocar o aplicativo WinHelp
com o tópico HELP_HELPONHELP padrão.
CWinApp::OnIdle
Substitua essa função de membro para executar o processamento em tempo ocioso.
virtual BOOL OnIdle(LONG lCount);
Parâmetros
lCount
Um contador incrementado cada vez que OnIdle
é chamado quando a fila de mensagens do aplicativo está vazia. Essa contagem é redefinida para 0 cada vez que uma nova mensagem é processada. Você pode usar o parâmetro lCount para determinar o período relativo de tempo em que o aplicativo ficou ocioso sem processar uma mensagem.
Valor de retorno
Diferente de zero para receber mais tempo de processamento ocioso; 0 se não for necessário mais tempo ocioso.
Comentários
OnIdle
é chamado no loop de mensagem padrão quando a fila de mensagens do aplicativo está vazia. Use sua substituição para chamar suas próprias tarefas de manipulador ocioso em segundo plano.
OnIdle
deve retornar 0 para indicar que nenhum tempo de processamento ocioso é necessário. O parâmetro lCount é incrementado cada vez que OnIdle
é chamado quando a fila de mensagens está vazia e redefine para 0 cada vez que uma nova mensagem é processada. Você pode chamar suas diferentes rotinas ociosas com base nessa contagem.
O seguinte resume o processamento de loop ocioso:
Se o loop de mensagem na Microsoft Foundation Class Library verificar a fila de mensagens e não encontrar mensagens pendentes, ele chamará
OnIdle
para o objeto de aplicativo e fornecerá 0 como o argumento lCount.OnIdle
executa algum processamento e retorna um valor diferente de zero para indicar que deve ser chamado novamente para fazer processamento adicional.O loop de mensagens verifica a fila de mensagens novamente. Se nenhuma mensagem estiver pendente, ele chamará
OnIdle
novamente, incrementando o argumento lCount.Eventualmente,
OnIdle
termina de processar todas as suas tarefas ociosas e retorna 0. Isso informa ao loop de mensagens 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
retorne.
Observação
A implementação padrão de atualizações OnIdle
comanda objetos da interface do usuário, como itens de menu e botões da barra de ferramentas, e executa a limpeza da estrutura de dados interna. Portanto, se você substituir OnIdle
, você deve chamáCWinApp::OnIdle
com o lCount
em sua versão substituída. Primeiro, chame todo o processamento ocioso de classe base (ou seja, até que a classe base OnIdle
retorne 0). Se você precisar executar o trabalho antes que o processamento de classe base seja concluído, revise a implementação de classe base para selecionar o lCount adequado durante o qual fazer seu trabalho.
Se você não quiser que OnIdle
seja chamado sempre que uma mensagem for recuperada da fila de mensagens, poderá substituir o CWinThreadIsIdleMessage. Se um aplicativo definiu um temporizador muito curto, ou se o sistema está enviando a mensagem WM_SYSTIMER, então OnIdle
será chamado repetidamente e degradar o desempenho.
Exemplo
Os dois exemplos a seguir mostram como usar o OnIdle
. O primeiro exemplo processa duas tarefas ociosas usando o argumento lCount para priorizar as tarefas. A primeira tarefa é de alta prioridade, e você deve fazê-lo sempre que possível. A segunda tarefa é menos importante e deve ser feita apenas quando há uma longa pausa na entrada do usuário. Observe a chamada para a versão de classe base do OnIdle
. O segundo exemplo gerencia um grupo de tarefas ociosas com prioridades diferentes.
BOOL CMyApp::OnIdle(LONG lCount)
{
BOOL bMore = CWinApp::OnIdle(lCount);
if (lCount == 0)
{
TRACE(_T("App idle for short period of time\n"));
bMore = TRUE;
}
else if (lCount == 10)
{
TRACE(_T("App idle for longer amount of time\n"));
bMore = TRUE;
}
else if (lCount == 100)
{
TRACE(_T("App idle for even longer amount of time\n"));
bMore = TRUE;
}
else if (lCount == 1000)
{
TRACE(_T("App idle for quite a long period of time\n"));
// bMore is not set to TRUE, no longer need idle
// IMPORTANT: bMore is not set to FALSE since CWinApp::OnIdle may
// have more idle tasks to complete.
}
return bMore;
// return TRUE as long as there are any more idle tasks
}
CWinApp::OpenDocumentFile
A estrutura chama esse método para abrir o arquivo de CDocument nomeado para o aplicativo.
virtual CDocument* OpenDocumentFile(
LPCTSTR lpszFileName,
BOOL bAddToMRU = TRUE);
Parâmetros
lpszFileName
[em] O nome do arquivo a ser aberto.
bAddToMRU
[em] TRUE indica que o documento é um dos ficheiros mais recentes; FALSE indica que o documento não é um dos ficheiros mais recentes.
Valor de retorno
Um ponteiro para um CDocument
se for bem-sucedido; caso contrário, NULL.
Comentários
Se um documento com esse nome já estiver aberto, a primeira janela de quadro que contém esse documento receberá o foco. Se um aplicativo oferecer suporte a vários modelos de documento, a estrutura usará a extensão de nome de arquivo para localizar o modelo de documento apropriado para tentar carregar o documento. Se for bem-sucedido, o modelo de documento criará uma janela de quadro e uma exibição para o documento.
Exemplo
if (m_lpCmdLine[0] == _T('\0'))
{
// Create a new (empty) document.
OnFileNew();
}
else
{
// Open a file passed as the first command line parameter.
OpenDocumentFile(m_lpCmdLine);
}
CWinApp::P arseCommandLine
Chame essa função de membro para analisar a linha de comando e enviar os parâmetros, um de cada vez, para CCommandLineInfo::P arseParam.
void ParseCommandLine(CCommandLineInfo& rCmdInfo);
Parâmetros
rCmdInfo
Uma referência a um objeto CCommandLineInfo.
Comentários
Quando você inicia um novo projeto MFC usando o Assistente de aplicativo, o Assistente de aplicativo criará uma instância local de 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
então chamaCCommandLineInfo::ParseParam
repetidamente, uma vez para cada parâmetro.ParseParam
preenche o objetoCCommandLineInfo
, que é passado para ProcessShellCommand.ProcessShellCommand
lida com os argumentos de linha de comando e sinalizadores.
Observe que você pode ligar para ParseCommandLine
diretamente, conforme necessário.
Para obter uma descrição dos sinalizadores de linha de comando, consulte CCommandLineInfo::m_nShellCommand.
CWinApp::P reTranslateMessage
Substitua essa função para filtrar mensagens de janela antes que elas sejam enviadas para as funções do Windows TranslateMessage e DispatchMessage A implementação padrão executa a conversão de tecla aceleradora, portanto, você deve chamar a função de membro CWinApp::PreTranslateMessage
em sua versão substituída.
virtual BOOL PreTranslateMessage(MSG* pMsg);
Parâmetros
pMsg
Um ponteiro para um MSG estrutura que contém a mensagem a ser processada.
Valor de retorno
Diferente de zero se a mensagem foi totalmente processada no PreTranslateMessage
e não deve ser processada mais. Zero se a mensagem deve ser processada da maneira normal.
CWinApp::P rocessMessageFilter
A função hook da estrutura chama essa função de membro para filtrar e responder a determinadas mensagens do Windows.
virtual BOOL ProcessMessageFilter(
int code,
LPMSG lpMsg);
Parâmetros
código
Especifica um código de gancho. Esta função de membro usa o código para determinar como processar lpMsg.
lpMsg
Um ponteiro para um Windows MSGtructure.
Valor de retorno
Diferente de zero se a mensagem for processada; caso contrário, 0.
Comentários
Uma função hook processa eventos antes que eles sejam enviados para o processamento normal de mensagens do aplicativo.
Se você substituir esse recurso avançado, certifique-se de chamar a versão de classe base para manter o processamento de gancho da estrutura.
CWinApp::P rocessShellCommand
Essa função de membro é chamada por InitInstance para aceitar os parâmetros passados do objeto CCommandLineInfo
identificado por rCmdInfoe executar a ação indicada.
BOOL ProcessShellCommand(CCommandLineInfo& rCmdInfo);
Parâmetros
rCmdInfo
Uma referência a um objeto CCommandLineInfo.
Valor de retorno
Diferente de zero se o comando shell for processado com êxito. Se 0, retorne FALSE de InitInstance.
Comentários
Quando você inicia um novo projeto MFC usando o Assistente de aplicativo, o Assistente de aplicativo criará uma instância local de 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
então chama CCommandLineInfo::P arseParam repetidamente, uma vez para cada parâmetro.ParseParam
preenche o objetoCCommandLineInfo
, que é então passado paraProcessShellCommand
.ProcessShellCommand
lida com os argumentos de linha de comando e sinalizadores.
Os membros de dados do objeto CCommandLineInfo
, identificados por CCommandLineInfo::m_nShellCommand, são do seguinte tipo enumerado, que é definido dentro da classe CCommandLineInfo
.
enum {
FileNew,
FileOpen,
FilePrint,
FilePrintTo,
FileDDE
};
Para obter uma breve descrição de cada um desses valores, consulte CCommandLineInfo::m_nShellCommand
.
CWinApp::P rocessWndProcException
A estrutura chama essa função de membro sempre que o manipulador não captura uma exceção lançada em um dos manipuladores de mensagens ou comandos do seu aplicativo.
virtual LRESULT ProcessWndProcException(
CException* e,
const MSG* pMsg);
Parâmetros
e
Um ponteiro para uma exceção não capturada.
pMsg
Um MSGtructure que contém informações sobre a mensagem do Windows que fez com que a estrutura lançasse uma exceção.
Valor de retorno
O valor que deve ser retornado ao Windows. Normalmente, isso é 0L para mensagens do Windows, 1L (TRUE) para mensagens de comando.
Comentários
Não chame essa função de membro diretamente.
A implementação padrão dessa função de membro cria uma caixa de mensagem. Se a exceção não detetada for originada com uma falha de comando de menu, barra de ferramentas ou acelerador, a caixa de mensagem exibirá uma mensagem "Falha no comando"; caso contrário, exibe uma mensagem de "Erro interno do aplicativo".
Substitua essa função de membro para fornecer tratamento global de suas exceções. Chame a funcionalidade base apenas se desejar que a caixa de mensagem seja exibida.
CWinApp::Registar
Executa quaisquer tarefas de registro não tratadas pelo RegisterShellFileTypes
.
virtual BOOL Register();
Valor de retorno
Diferente de zero no sucesso; caso contrário, 0.
Comentários
A implementação padrão simplesmente retorna TRUE. Substitua essa função para fornecer todas as etapas de registro personalizadas.
CWinApp::RegisterShellFileTypes
Chame essa função de membro para registrar todos os tipos de documentos do seu aplicativo com o Gerenciador de Arquivos do Windows.
void RegisterShellFileTypes(BOOL bCompat = FALSE);
Parâmetros
bCompat
[em] TRUE adiciona entradas de registro para os comandos do shell Print and Print To, permitindo que um usuário imprima arquivos diretamente do shell ou arrastando o arquivo para um objeto de impressora. Ele também adiciona uma chave DefaultIcon. Por padrão, esse parâmetro é FALSE para compatibilidade com versões anteriores.
Comentários
Isso permite que o usuário abra um arquivo de dados criado pelo seu aplicativo clicando duas vezes nele de dentro do Gerenciador de arquivos. Chame RegisterShellFileTypes
depois de chamar AddDocTemplate para cada um dos modelos de documento em seu aplicativo. Chame também a função de membro EnableShellOpen quando chamar RegisterShellFileTypes
.
RegisterShellFileTypes
itera através da lista de CDocTemplate objetos que o aplicativo mantém e, para cada modelo de documento, adiciona entradas ao banco de dados de registro que o Windows mantém para associações de arquivo. O Gestor de ficheiros utiliza estas entradas para abrir um ficheiro de dados quando o utilizador faz duplo clique no mesmo. Isso elimina a necessidade de enviar um arquivo . REG com o seu pedido.
Observação
RegisterShellFileTypes
só funciona se o usuário executar o programa com direitos de administrador. Se o programa não tiver direitos de administrador, ele não pode alterar as chaves do Registro.
Se o banco de dados de registro já associar uma determinada extensão de nome de arquivo a outro tipo de arquivo, nenhuma nova associação será criada. Consulte a classe CDocTemplate
para obter o formato das cadeias de caracteres necessárias para registrar essas informações.
CWinApp::RegisterWithRestartManager
Registra o aplicativo com o gerenciador de reinicialização.
virtual HRESULT RegisterWithRestartManager(
BOOL bRegisterRecoveryCallback,
const CString& strRestartIdentifier);
virtual HRESULT RegisterWithRestartManager(
LPCWSTR pwzCommandLineArgs,
DWORD dwRestartFlags,
APPLICATION_RECOVERY_CALLBACK pRecoveryCallback,
LPVOID lpvParam,
DWORD dwPingInterval,
DWORD dwCallbackFlags);
Parâmetros
bRegisterRecoveryCallback
[em] TRUE indica que essa instância do aplicativo usa uma função de retorno de chamada de recuperação; FALSO indica que não. A estrutura chama a função de retorno de chamada de recuperação quando o aplicativo é encerrado inesperadamente. Para obter mais informações, consulte CWinApp::ApplicationRecoveryCallback.
strRestartIdentifier
[em] A cadeia de caracteres exclusiva que identifica essa instância do gerenciador de reinicialização. O identificador do gerenciador de reinicialização é exclusivo para cada instância de um aplicativo.
pwzCommandLineArgs
[em] Uma cadeia de caracteres que contém quaisquer argumentos extras da linha de comando.
dwRestartFlags
[em] Sinalizadores opcionais para o gerenciador de reinicialização. Para obter mais informações, consulte a seção Observações.
pRecoveryCallback
[em] A função de retorno de chamada de recuperação. Esta função deve tomar um parâmetro LPVOID como entrada e retornar um DWORD. A função de retorno de chamada de recuperação padrão é CWinApp::ApplicationRecoveryCallback
.
lpvParam
[em] O parâmetro de entrada para a função de retorno de chamada de recuperação. Para obter mais informações, consulte CWinApp::ApplicationRecoveryCallback.
dwPingInterval
[em] O período de tempo que o gerenciador de reinicialização aguarda o retorno da função de retorno de chamada de recuperação. Este parâmetro está em milissegundos.
dwCallbackFlags
[em] Sinalizadores passados para a função de retorno de chamada de recuperação. Reservado para uso futuro.
Valor de retorno
S_OK se o método for bem-sucedido; caso contrário, um código de erro.
Comentários
Se seu aplicativo usa a implementação MFC padrão para salvar arquivos automaticamente, você deve usar a versão simples do RegisterWithRestartManager
. Use a versão complexa do RegisterWithRestartManager
se quiser personalizar o comportamento de salvamento automático do seu aplicativo.
Se você chamar esse método com uma cadeia de caracteres vazia para strRestartIdentifier, RegisterWithRestartManager
criará uma cadeia de caracteres de identificador exclusivo para esta instância do gerenciador de reinicialização.
Quando um aplicativo é encerrado inesperadamente, o gerenciador de reinicialização reinicia o aplicativo a partir da linha de comando e fornece o identificador de reinicialização exclusivo como um argumento opcional. Nesse cenário, a estrutura chama RegisterWithRestartManager
duas vezes. A primeira chamada vem de CWinApp::InitInstance com uma cadeia de caracteres vazia para o identificador de cadeia de caracteres. Em seguida, o método CWinApp::P rocessShellCommand chama RegisterWithRestartManager
com o identificador de reinicialização exclusivo.
Depois de registrar um aplicativo com o gerenciador de reinicialização, o gerenciador de reinicialização monitora o aplicativo. Se o aplicativo sair inesperadamente, o gerenciador de reinicialização chamará a função de retorno de chamada de recuperação durante o processo de desligamento. O gerenciador de reinicialização aguarda o dwPingInterval para obter uma resposta da função de retorno de chamada de recuperação. Se a função de retorno de chamada de recuperação não responder dentro desse período, o aplicativo será encerrado sem executar a função de retorno de chamada de recuperação.
Por padrão, os dwRestartFlags não são suportados, mas são fornecidos para uso futuro. Os valores possíveis para dwRestartFlags são os seguintes:
RESTART_NO_CRASH
RESTART_NO_HANG
RESTART_NO_PATCH
RESTART_NO_REBOOT
CWinApp::ReopenPreviousFilesAtRestart
Determina se o gerenciador de reinicialização reabre os arquivos que estavam abertos quando o aplicativo foi encerrado inesperadamente.
virtual BOOL ReopenPreviousFilesAtRestart() const;
Valor de retorno
TRUE indica que o gerenciador de reinicialização reabre os arquivos abertos anteriormente; FALSE indica que o gerenciador de reinicialização não.
CWinApp::RestartInstance
Manipula uma reinicialização de aplicativo iniciada pelo gerenciador de reinicialização.
virtual BOOL CWinApp::RestartInstance();
Valor de retorno
TRUE se o manipulador de recuperação de dados abrir documentos abertos anteriormente; FALSO se o manipulador de recuperação de dados tiver um erro ou se não houver documentos abertos anteriormente.
Comentários
Quando o gerenciador de reinicialização reinicia um aplicativo, a estrutura chama esse método. Esse método recupera o manipulador de recuperação de dados e restaura os arquivos salvos automaticamente. Esse método chama CDataRecoveryHandler::RestoreAutosavedDocuments para determinar se o usuário deseja restaurar os arquivos salvos automaticamente.
Esse método retorna FALSE se o CDataRecoveryHandler determina que não havia documentos abertos. Se não houver documentos abertos, a candidatura começa normalmente.
CWinApp::RestoreAutosavedFilesAtRestart
Determina se o gerenciador de reinicialização restaura os arquivos salvos automaticamente quando reinicia o aplicativo.
virtual BOOL RestoreAutosavedFilesAtRestart() const;
Valor de retorno
TRUE indica que o gerenciador de reinicialização restaura arquivos salvos automaticamente; FALSE indica que o gerenciador de reinicialização não.
CWinApp::Executar
Fornece um loop de mensagem padrão.
virtual int Run();
Valor de retorno
Um valor de int
que é retornado por WinMain
.
Comentários
Run
adquire e envia mensagens do Windows até que o aplicativo receba uma mensagem WM_QUIT. Se a fila de mensagens do aplicativo atualmente não contiver mensagens, Run
chamadas OnIdle para executar o processamento em tempo ocioso. As mensagens recebidas vão para a função de membro PreTranslateMessage para processamento especial e, em seguida, para a função do Windows TranslateMessage
para tradução de teclado padrão; finalmente, a função DispatchMessage
Windows é chamada.
Run
raramente é substituído, mas você pode substituí-lo para fornecer um comportamento especial.
CWinApp::RunAutomated
Chame essa função para determinar se a opção " /Automation" ou " -Automation" está presente, o que indica se o aplicativo de servidor foi iniciado por um aplicativo cliente.
BOOL RunAutomated();
Valor de retorno
Diferente de zero se a opção foi encontrada; caso contrário, 0.
Comentários
Se presente, a opção é removida da linha de comando. Para obter mais informações sobre automação OLE, consulte o artigo Automation Servers.
CWinApp::RunEmbedded
Chame essa função para determinar se a opção " /Embedding" ou " -Embedding" está presente, o que indica se o aplicativo de servidor foi iniciado por um aplicativo cliente.
BOOL RunEmbedded();
Valor de retorno
Diferente de zero se a opção foi encontrada; caso contrário, 0.
Comentários
Se presente, a opção é removida da linha de comando. Para obter mais informações sobre incorporação, consulte o artigo Servers: Implementing a Server.
CWinApp::SaveAllModified
Chamado pela estrutura para salvar todos os documentos quando a janela do quadro principal do aplicativo deve ser fechada ou por meio de uma mensagem WM_QUERYENDSESSION.
virtual BOOL SaveAllModified();
Valor de retorno
Diferente de zero se for seguro encerrar o aplicativo; 0 se não for seguro encerrar o aplicativo.
Comentários
A implementação padrão dessa função de membro chama a função de membro CDocument::SaveModified por sua vez para todos os documentos modificados dentro do aplicativo.
CWinApp::SelectPrinter
Chame essa função de membro para selecionar uma impressora específica e libere a impressora que foi selecionada anteriormente na caixa de diálogo Imprimir.
void SelectPrinter(
HANDLE hDevNames,
HANDLE hDevMode,
BOOL bFreeOld = TRUE);
Parâmetros
hDevNames
Um identificador para um DEVNAMEStructura que identifica os nomes de driver, dispositivo e porta de saída de uma impressora específica.
hDevMode
Um identificador para um estrutura de DEVMODE que especifica informações sobre a inicialização do dispositivo e o ambiente de uma impressora.
bFreeOld
Libera a impressora selecionada anteriormente.
Comentários
Se hDevMode e hDevNames forem NULL, SelectPrinter
usará a impressora padrão atual.
CWinApp::SetHelpMode
Define o tipo de ajuda do aplicativo.
void SetHelpMode(AFX_HELP_TYPE eHelpType);
Parâmetros
eHelpType
Especifica o tipo de ajuda a ser usada. Consulte CWinApp::m_eHelpType para obter mais informações.
Comentários
Define o tipo de Ajuda do aplicativo.
Para definir o tipo de Ajuda do seu aplicativo como HTMLHelp, você pode chamar EnableHTMLHelp. Depois de chamar EnableHTMLHelp
, seu aplicativo deve usar HTMLHelp como seu aplicativo de ajuda. Se você quiser alterar para usar WinHelp, você pode chamar SetHelpMode
e definir eHelpType como afxWinHelp
.
CWinApp::SetRegistryKey
Faz com que as configurações do aplicativo sejam armazenadas no registro em vez de arquivos INI.
void SetRegistryKey(LPCTSTR lpszRegistryKey);
void SetRegistryKey(UINT nIDRegistryKey);
Parâmetros
lpszRegistryKey
Ponteiro para uma cadeia de caracteres que contém o nome da chave.
nIDRegistryKey
ID de um recurso de cadeia de caracteres que contém o nome da chave do Registro.
Comentários
Esta função define m_pszRegistryKey, que é então usado pelas funções GetProfileInt
, GetProfileString
, WriteProfileInt
e WriteProfileString
membro de CWinApp
. Se essa função tiver sido chamada, a lista de arquivos usados mais recentemente (MRU) também é armazenada no registro. A chave de registo é geralmente o nome de uma empresa. Ele é armazenado em uma chave da seguinte forma: HKEY_CURRENT_USER\Software\<nome da empresa>\<nome do aplicativo>\<nome da seção>\<nome do valor>.
CWinApp::SupportsApplicationRecovery
Determina se o gerenciador de reinicialização recupera um aplicativo que saiu inesperadamente.
virtual BOOL SupportsApplicationRecovery() const;
Valor de retorno
TRUE indica que o gerenciador de reinicialização recupera o aplicativo; FALSE indica que o gerenciador de reinicialização não.
CWinApp::SupportsAutosaveAtInterval
Determina se o gerenciador de reinicialização salva automaticamente documentos abertos em um intervalo regular.
virtual BOOL SupportsAutosaveAtInterval() const;
Valor de retorno
TRUE indica que o gerenciador de reinicialização salva automaticamente documentos abertos; FALSE indica que o gerenciador de reinicialização não.
CWinApp::SupportsAutosaveAtRestart
Determina se o gerenciador de reinicialização salva automaticamente quaisquer documentos abertos quando o aplicativo é reiniciado.
virtual BOOL SupportsAutosaveAtRestart() const;
Valor de retorno
TRUE indica que o gerenciador de reinicialização salva automaticamente documentos abertos quando o aplicativo é reiniciado; FALSE indica que o gerenciador de reinicialização não.
CWinApp::SupportsRestartManager
Determina se o aplicativo suporta o gerenciador de reinicialização.
virtual BOOL SupportsRestartManager() const;
Valor de retorno
TRUE indica que o aplicativo suporta o gerenciador de reinicialização; FALSE indica que o aplicativo não o faz.
CWinApp::Cancelar registro
Cancela o registro de todos os arquivos registrados pelo objeto do aplicativo.
virtual BOOL Unregister();
Valor de retorno
Diferente de zero no sucesso; caso contrário, 0.
Comentários
A função Unregister
desfaz o registro realizado pelo objeto do aplicativo e a função Register. Normalmente, ambas as funções são chamadas implicitamente pelo MFC e, portanto, não aparecerão no seu código.
Substitua essa função para executar etapas personalizadas de cancelamento de registro.
CWinApp::UnregisterShellFileTypes
Chame essa função de membro para cancelar o registro de todos os tipos de documentos do seu aplicativo com o Gerenciador de Arquivos do Windows.
void UnregisterShellFileTypes();
CWinApp::WinHelp
Chame essa função de membro para invocar o aplicativo WinHelp.
virtual void WinHelp(
DWORD_PTR dwData,
UINT nCmd = HELP_CONTEXT);
Parâmetros
dwData
Especifica dados adicionais. O valor usado depende do valor do parâmetro nCmd.
nCmd
Especifica o tipo de ajuda solicitada. Para obter uma lista de valores possíveis e como eles afetam o parâmetro dwData, consulte a função WinHelp Windows.
Comentários
A estrutura também chama essa função para invocar o aplicativo WinHelp.
A estrutura fechará automaticamente o aplicativo WinHelp quando seu aplicativo for encerrado.
Exemplo
// Header File: HELPIDS.H
//
// This example header file is #include'd twice:
// (1) It is #include'd by the .CPP file that passes the DWORD
// context i.d. to CWinApp::WinHelp.
// (2) It is #include'd in the [MAP] section of the .HPJ file,
// to associate the help context string "HID_MYTOPIC" with
// the help context numeric i.d., 101.
// The help context string "HID_MYTOPIC" is what identifies the
// help topic in the help .RTF source file, in the "#" footnote:
// # HID_MYTOPIC
//
// Note, it is not necessary to manage help context id's this way
// for help topics associated with command id's and user interface
// id's defined in your RESOURCE.H file; you should use the MAKEHM
// tool via the custom build rule on your resource.h file to produce
// a help map (.HM) file for these id's. It is necessary to manage
// help context id's as illustrated here only for help topics not
// associated with command id's or user interface id's.
#define HID_MYTOPIC 101
// Show the custom help topic that has the context string
// "HID_MYTOPIC" in the help .RTF file, and which is mapped
// to the DWORD i.d. HID_MYTOPIC in the above HELPIDS.H file.
AfxGetApp()->WinHelp(HID_MYTOPIC);
// The following is one line of code in the help map (.HM)
// file produced by the MAKEHM tool, which is called by the custom
// build rule on the resource.h file. The MAKEHM tool reads the
// following #define in the application's RESOURCE.H file:
#define ID_MYCOMMAND 0x08004
// and adds a help id offset value of 0x10000 to create the
// help context DWORD value 0x18004:
// HID_MYCOMMAND 0x18004
// See MFC Tech Note 28 for more information on help id offset values.
// Rarely will you need to directly call WinHelp yourself
// with the help context i.d. for a command or user interface
// object. The framework will call WinHelp automatically when
// the user, for example, hits F1 when the focus is on a
// My Command menu item. However, if you do want to directly
// call WinHelp for the help topic associated with the command,
// here is how you would do it:
AfxGetApp()->WinHelp(0x10000 + ID_MYCOMMAND);
CWinApp::WriteProfileBinary
Chame essa função de membro para gravar dados binários na seção especificada do registro do aplicativo ou . Arquivo INI.
BOOL WriteProfileBinary(
LPCTSTR lpszSection,
LPCTSTR lpszEntry,
LPBYTE pData,
UINT nBytes);
Parâmetros
lpszSecção
Aponta para uma cadeia de caracteres terminada em nulo que especifica a seção que contém a entrada. Se a seção não existir, ela é criada. O nome da secção é independente de maiúsculas e minúsculas; A cadeia de caracteres pode ser qualquer combinação de letras maiúsculas e minúsculas.
lpszEntry
Aponta para uma cadeia de caracteres terminada em nulo que contém a entrada na qual o valor deve ser gravado. Se a entrada não existir na seção especificada, ela será criada.
pData
Aponta para os dados a serem gravados.
nBytes
Contém o número de bytes a serem gravados.
Valor de retorno
Diferente de zero se for bem-sucedido; caso contrário, 0.
Exemplo
Este exemplo usa CWinApp* pApp = AfxGetApp();
para chegar à classe CWinApp, ilustrando uma maneira que WriteProfileBinary
e GetProfileBinary
podem ser usados de qualquer função em um aplicativo MFC.
CWinApp *pApp = AfxGetApp();
CString strSection = _T("My Section");
CString strItem = _T("My Binary Item");
double myData = 123.456e12;
pApp->WriteProfileBinary(strSection, strItem, (LPBYTE)&myData, sizeof(myData));
double *pData;
UINT n;
pApp->GetProfileBinary(strSection, strItem, (LPBYTE*)&pData, &n);
ASSERT(n == sizeof(myData));
ASSERT(myData = *pData);
delete[] pData; // free the buffer
Para outro exemplo, consulte o exemplo de CWinApp::GetProfileBinary.
CWinApp::WriteProfileInt
Chame essa função de membro para gravar o valor especificado na seção especificada do registro do aplicativo ou . Arquivo INI.
BOOL WriteProfileInt(
LPCTSTR lpszSection,
LPCTSTR lpszEntry,
int nValue);
Parâmetros
lpszSecção
Aponta para uma cadeia de caracteres terminada em nulo que especifica a seção que contém a entrada. Se a seção não existir, ela é criada. O nome da secção é independente de maiúsculas e minúsculas; A cadeia de caracteres pode ser qualquer combinação de letras maiúsculas e minúsculas.
lpszEntry
Aponta para uma cadeia de caracteres terminada em nulo que contém a entrada na qual o valor deve ser gravado. Se a entrada não existir na seção especificada, ela será criada.
nValor
Contém o valor a ser gravado.
Valor de retorno
Diferente de zero se for bem-sucedido; caso contrário, 0.
Exemplo
Este exemplo usa CWinApp* pApp = AfxGetApp();
para chegar à classe CWinApp, ilustrando uma maneira que WriteProfileString
, WriteProfileInt
, GetProfileString
e GetProfileInt
podem ser usados de qualquer função em um aplicativo MFC.
CWinApp *pApp = AfxGetApp();
CString strSection = _T("My Section");
CString strStringItem = _T("My String Item");
CString strIntItem = _T("My Int Item");
pApp->WriteProfileString(strSection, strStringItem, _T("test"));
CString strValue;
strValue = pApp->GetProfileString(strSection, strStringItem);
ASSERT(strValue == _T("test"));
pApp->WriteProfileInt(strSection, strIntItem, 1234);
int nValue;
nValue = pApp->GetProfileInt(strSection, strIntItem, 0);
ASSERT(nValue == 1234);
Para outro exemplo, consulte o exemplo de CWinApp::GetProfileInt.
CWinApp::WriteProfileString
Chame essa função de membro para gravar a cadeia de caracteres especificada na seção especificada do registro do aplicativo ou . Arquivo INI.
BOOL WriteProfileString(
LPCTSTR lpszSection,
LPCTSTR lpszEntry,
LPCTSTR lpszValue);
Parâmetros
lpszSecção
Aponta para uma cadeia de caracteres terminada em nulo que especifica a seção que contém a entrada. Se a seção não existir, ela é criada. O nome da secção é independente de maiúsculas e minúsculas; A cadeia de caracteres pode ser qualquer combinação de letras maiúsculas e minúsculas.
lpszEntry
Aponta para uma cadeia de caracteres terminada em nulo que contém a entrada na qual o valor deve ser gravado. Se a entrada não existir na seção especificada, ela será criada. Se esse parâmetro for NULL, a seção especificada por lpszSection será excluída.
lpszValue
Aponta para a cadeia de caracteres a ser escrita. Se esse parâmetro for NULL, a entrada especificada pelo parâmetro lpszEntry será excluída.
Valor de retorno
Diferente de zero se for bem-sucedido; caso contrário, 0.
Exemplo
CWinApp *pApp = AfxGetApp();
CString strSection = _T("My Section");
CString strStringItem = _T("My String Item");
CString strIntItem = _T("My Int Item");
pApp->WriteProfileString(strSection, strStringItem, _T("test"));
CString strValue;
strValue = pApp->GetProfileString(strSection, strStringItem);
ASSERT(strValue == _T("test"));
pApp->WriteProfileInt(strSection, strIntItem, 1234);
int nValue;
nValue = pApp->GetProfileInt(strSection, strIntItem, 0);
ASSERT(nValue == 1234);
Para outro exemplo, consulte o exemplo de CWinApp::GetProfileInt.
CWinApp::SetAppID
Define explicitamente a ID do Modelo de Usuário do Aplicativo para o aplicativo. Este método deve ser chamado antes de qualquer interface do usuário é apresentada ao usuário (o melhor lugar é o construtor do aplicativo).
void SetAppID(LPCTSTR lpcszAppID);
Parâmetros
lpcszAppID
Especifica a ID do Modelo de Usuário do Aplicativo.
Comentários
Ver também
CWinThread Classe
Gráfico de Hierarquia
Como adicionar suporte ao Restart Manager