Speciální služby CWinApp
Kromě spuštění smyčky zpráv a poskytuje příležitost k inicializaci aplikace a vyčistit po ní, CWinApp poskytuje několik dalších služeb.
Registrace prostředí
Ve výchozím nastavení Průvodce aplikací knihovny MFC umožňuje uživatelům otevírat datové soubory vytvořené aplikace poklepáním v Průzkumník nebo Správce souborů.Pokud je aplikace MDI aplikace, a určit příponu souborů aplikace vytvoří MFC Application Wizard přidá volání RegisterShellFileTypes a EnableShellOpen členské funkce CWinApp k InitInstance přepsání, které pro vás napíše.
RegisterShellFileTypesregistruje typy dokladů vaše aplikace Průzkumník nebo Správce souborů.Tato funkce přidá položky do registrační databáze, která udržuje systém Windows.Položky registrovat každý typ dokumentu, přidružení přípony souboru k typu souboru, zadejte příkazového řádku otevřete aplikaci a zadat příkaz dynamic data exchange (DDE) k otevření dokumentu tohoto typu.
EnableShellOpendokončí proces tím, že umožňuje přijímat příkazy DDE z Průzkumník nebo Správce souborů, otevřete soubor zvolené uživatelem aplikace.
Tato podpora automatické registrace v CWinApp eliminuje potřebu dodat soubor REG s aplikací nebo k provedení práce zvláštní instalaci.
Pokud chcete inicializovat rozhraní GDI + pro aplikaci (voláním GdiplusStartup ve své InitInstance funkce), je třeba potlačit podproces pozadí rozhraní GDI +.
Můžete to provést nastavením SuppressBackgroundThread člen GdiplusStartupInput ke TRUE.Při potlačení rozhraní GDI + pozadí podproces, NotificationHook a NotificationUnhook volání (viz GdiplusStartupOutput) je třeba pouze předběžné zadání a ukončení smyčky zpráv aplikace.Proto vhodná k volání GdiplusStartup a funkce oznámení háček bude v přepsání virtuální funkce 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 nejsou potlačeny pozadí podproces rozhraní GDI +, příkazy DDE můžete předčasně vydal aplikaci před jeho hlavní okno.Skořápky vydané příkazy DDE můžete předčasně ukončeno, za následek chybové zprávy.
Správce souborů přetažením
Soubory můžete přetáhnout z okna zobrazení souboru v programu Správce souborů nebo Průzkumník okna v aplikaci.Může se například povolit jeden nebo více souborů přetáhnout do hlavního okna aplikace MDI, kde může aplikace načíst názvy souborů a podřízených oken MDI pro tyto soubory otevřete.
Chcete-li povolit soubor přetáhněte a umístěte do aplikace, Průvodce aplikací knihovny MFC zapíše volání CWnd členské funkce DragAcceptFiles pro okno hlavní rámec v v InitInstance.Toto volání je možné odebrat, pokud nechcete implementovat funkce a přetažení.
[!POZNÁMKA]
Můžete implementovat další obecné funkce a přetažení – přetahování dat mezi nebo v dokumentech – s technologií OLE.Informace naleznete v článku přetáhněte a přetažení OLE ().
Udržování přehledu o nejčastěji naposledy použité dokumenty
Jako uživatel otevírá a zavírá soubory, uchovává informace o čtyři naposledy použité soubory objektu application.Názvy těchto souborů jsou přidány do nabídky soubor a aktualizovat při změně.Rámci ukládá tyto názvy souborů, buď v registru nebo v souboru INI, se stejným názvem jako projekt a čte ze souboru při spuštění aplikace.InitInstance Přepsat tak, že vytváří Průvodce aplikace knihovny MFC pro obsahuje volání CWinApp členské funkce LoadStdProfileSettings, který načte informace z registru a souboru INI, včetně naposledy použité názvy souborů.
Tyto položky jsou uloženy následovně:
V systému Windows NT, Windows 2000 a novější, hodnota je uložena do klíče registru.
V systému Windows 3.x, hodnota je uložena v ZVÍTĚZÍ.Soubor INI.
V systému Windows 95 a novější hodnota je uložena v mezipaměti verzi WIN.INI.