Compartilhar via


Serviços de CWinApp especial

Além de executar o loop de mensagem e lhe dá a oportunidade de inicializar o aplicativo e limpar depois dela, CWinApp fornece vários outros serviços.

inscrição de shell

Por padrão, o Assistente de aplicativos MFC torna possível para que o usuário em aberto dados arquivo s que criou o aplicativo clicando neles duas vezes no Windows Explorer ou arquivo Manager.Se seu aplicativo é um aplicativo MDI e especificar uma extensão para os arquivos de seu aplicativo cria, o Assistente de aplicativos MFC adiciona chamadas para o RegisterShellFileTypes and EnableShellOpen funções de membro de CWinApp to the InitInstance Substitua grava para você.

RegisterShellFileTypes Registra tipos de documentos do seu aplicativo com o Windows Explorer ou o Gerenciador de arquivos. A função adiciona entradas no banco de dados de inscrição que o Windows mantém.As entradas de registrar cada tipo de documento, associar uma extensão de arquivo do tipo de arquivo, especifique uma linha de comando para em em aberto o aplicativo e especificar um comando de (DDE) troca dinâmica de dados para em em aberto um documento do mesmo tipo.

EnableShellOpen conclui o processo, permitindo que seu aplicativo receber comandos DDE do Windows Explorer ou o Gerenciador de arquivos para em em aberto o arquivo escolhido pelo usuário.

Esse suporte de inscrição automático em CWinApp elimina a necessidade de enviar um arquivo .reg com o seu aplicativo ou para fazer o trabalho de instalação especial.

Se você quiser inicializar GDI + para o seu aplicativo (chamando GdiplusStartup in your CWinAppEx função), você deverá suprimir GDI + plano de fundo thread.

Você pode fazer isso, definindo o SuppressBackgroundThread membro do GdiplusStartupInput estrutura de TRUE.Quando a supressão de GDI + thread de segundo plano, a NotificationHook and NotificationUnhook chamadas (consulte GdiplusStartupOutput) deve ser feita antes de ser entrando e saindo do loop de mensagem do aplicativo.Portanto, um mercadoria lugar para chamar GdiplusStartup e sistema autônomo funções de notificação de gancho estaria em uma substituir do função virtual CWinApp::Run, sistema autônomo mostrado abaixo:

int CMyWinApp::Run()
{
   GdiplusStartupInput gdiSI;
   GdiplusStartupOutput gdiSO;
   ULONG_PTR gdiToken;
   ULONG_PTR gdiHookToken;

   gdiSI.SuppressBackgroundThread = TRUE;
   GdiplusStartup(&gdiToken,&gdiSI,&gdiSO);
   gdiSO.NotificationHook(&gdiHookToken);
   int nRet = CWinApp::Run();

   gdiSO.NotificationUnhook(gdiHookToken);
   GdiplusShutdown(gdiToken);

   return nRet;
}

Se você não suprimir o plano de fundo da GDI + thread, comandos DDE podem ser emitidos prematuramente ao aplicativo antes de sua janela principal foi criada.Os comandos DDE emitidos pelo shell do podem ser prematuramente interrompidos, resultando em mensagens de erro.

Arquivo gerenciador arrastar e soltar

Windows versões 3.1 e posteriores permitem que o usuário arrastar os nomes de arquivo da janela de modo de exibição de arquivo em Gerenciador de arquivos (ou no Windows Explorer no Windows 95 e posterior e no Windows NT 4.0 e posterior) e solte-os em uma janela do aplicativo.Por exemplo, você pode permitir que o usuário arrastar um ou mais nomes de arquivos para a janela principal do aplicativo MDI, onde o aplicativo pode recuperar os nomes de arquivo e em em aberto janelas filho MDI para esses arquivos.

Ativar arquivo arrastar e soltar em seu aplicativo, o Assistente de aplicativos MFC grava uma telefonar para o CWnd de função de membro DragAcceptFiles para sua janela de quadro principal no seu InitInstance. Você pode remover a telefonar se quiser implementar o recurso de do tipo arrastar e soltar.

Observação:

Você também pode implementar recursos de do tipo arrastar e soltar mais Geral — arrastar dados entre ou dentro de documentos — com OLE.Para obter informações, consulte o artigo Arrastar e soltar (OLE).

Mantendo o registro ao máximo o Recently Used documentos

sistema autônomo o usuário abre e fecha arquivos, o objeto do aplicativo mantém controle sobre os quatro arquivos usados mais recentemente.Os nomes desses arquivos são adicionados ao menu Arquivo e atualizados quando eles são alterados.O framework armazena esses nomes de arquivo no registro ou no arquivo .ini com o mesmo nome sistema autônomo seu projeto e lê-los a partir do arquivo quando seu aplicativo é iniciado.The InitInstance Substituir que MFC aplicativo assistente cria para você inclui uma telefonar para o CWinApp de função de membro LoadStdProfileSettings, que carrega informações do arquivo .ini ou do registro, incluindo mais recentemente usados nomes de arquivo.

Essas entradas são armazenadas sistema autônomo segue:

  • No Windows NT, Windows 2000 e posterior, o valor é armazenado em uma chave do registro.

  • No Windows 3.x, o valor é armazenado no arquivo Win.ini.

  • No Windows 95 e posterior, o valor é armazenado em uma versão em cache do Win.ini.

Consulte também

Conceitos

CWinApp: A Classe do aplicativo