Zvláštní služby CWinApp
Kromě spuštění smyčky zpráv a poskytuje příležitost k inicializaci aplikace a vyčistit, po CWinApp poskytuje několik služeb.
Registrace prostředí
Ve výchozím nastavení Průvodce aplikace MFC umožňuje uživatel otevírat datové soubory vytvořené aplikace poklepáním v Průzkumníku souborů nebo Správce souborů.Pokud je aplikace MDI aplikace a zadat příponu souborů vytvoří aplikace, přidá průvodce aplikace MFC volání RegisterShellFileTypes a EnableShellOpen členské funkce CWinApp do InitInstance override, který ji zapíše.
RegisterShellFileTypesregistruje typy dokumentů aplikace Průzkumník nebo Správce souborů.Funkce přidá položky do registrační databáze, která udržuje systém Windows.Položky registrovat každý typ dokumentu, příponu přidružit typ souboru, zadejte příkazového řádku otevřete aplikaci a zadejte příkaz dynamic data exchange (DDE) k otevření dokumentu tohoto typu.
EnableShellOpenumožní aplikaci přijímat příkazy DDE z File Explorer nebo Správce souborů, otevřete soubor uživatel dokončí proces.
Tato podpora automatické registrace v CWinApp eliminuje potřebu dodat soubor REG s aplikací nebo zvláštní instalaci práce.
Pokud chcete inicializovat rozhraní GDI + pro aplikace (voláním GdiplusStartup ve vaší InitInstance funkci), mají potlačit podproces pozadí rozhraní GDI +.
Můžete to provést nastavením SuppressBackgroundThread člen GdiplusStartupInput ke TRUE.Po potlačení GDI + pozadí vlákno, NotificationHook a NotificationUnhook volání (viz GdiplusStartupOutput) by mělo být možné pouze předběžné zadání a ukončení smyčky zpráv aplikace.Proto vhodná k volání GdiplusStartup a lokálními virtuální funkce by funkce oznámení háčkem CWinApp::Run, jak je ukázáno níže:
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;
}
Pokud není potlačit podproces GDI + pozadí, příkazy DDE lze předčasně vydává aplikace před jeho hlavní okno byl vytvořen.Příkazech DDE prostředí může být předčasně přerušena následek chybové zprávy.
Správce souborů přetažení
Soubory můžete přetáhnout z okna zobrazení souboru ve Správci souborů nebo Průzkumník do okna aplikace.Může se například povolit přetáhnout do hlavního okna aplikace MDI, kde nelze načíst názvy souborů a podřízených oken MDI pro tyto soubory otevřít jeden nebo více souborů.
Povolit přetahování souborů a přetažení do aplikace, Průvodce MFC aplikace zapisuje volání CWnd členské funkce DragAcceptFiles okna v hlavním rámci vaše InitInstance.Volání můžete odebrat, pokud nechcete implementovat funkci a přetažení.
[!POZNÁMKA]
Můžete implementovat další obecné schopnosti a přetažení – přetažení dat mezi nebo v rámci dokumentů – s OLE.Informace naleznete v článku přetáhnout a umístit (OLE).
Udržování přehledu o nejvíce naposledy použité dokumenty
Uživatel otevře a zavře soubory, vede záznamy o čtyři naposledy použité soubory objektu application.Názvy těchto souborů jsou přidány do nabídky soubor a aktualizován při změně.Rámci ukládá tyto názvy souborů buď v registru nebo v souboru INI s názvem projektu a načte při spuštění aplikace ze souboru.InitInstance Potlačit tak, že vytvoří průvodce aplikace MFC pro obsahuje volání CWinApp členské funkce LoadStdProfileSettings, který načte informace z registru nebo souboru INI, včetně naposledy použité názvy souborů.
Tyto položky jsou uloženy takto:
V systému Windows NT, Windows 2000 a novější, je uložena hodnota klíče registru.
V systému Windows 3.x je hodnota uložena v ZVÍTĚZÍ.Soubor INI.
V systému Windows 95 a vyšší hodnota je uložena v mezipaměti verzi WIN.INI.