Sdílet prostřednictvím


CWinApp – třída

Základní třída, ze které odvozujete objekt aplikace systému Windows.

Syntaxe

class CWinApp : public CWinThread

Členové

Veřejné konstruktory

Název Popis
CWinApp::CWinApp CWinApp Vytvoří objekt.

Veřejné metody

Název Popis
CWinApp::AddDocTemplate Přidá šablonu dokumentu do seznamu dostupných šablon dokumentů aplikace.
CWinApp::AddToRecentFileList Přidá název souboru do seznamu naposledy použitých souborů (MRU).
CWinApp::ApplicationRecoveryCallback Volá se rozhraním, když se aplikace neočekávaně ukončí.
CWinApp::CloseAllDocuments Zavře všechny otevřené dokumenty.
CWinApp::CreatePrinterDC Vytvoří kontext zařízení tiskárny.
CWinApp::D elRegTree Odstraní zadaný klíč a všechny jeho podklíče.
CWinApp::D oMessageBox Implementuje AfxMessageBox pro aplikaci.
CWinApp::D oWaitCursor Zapne a vypne kurzor čekání.
CWinApp::EnableD2DSupport Povolí podporu D2D aplikace. Tuto metodu zavolejte před inicializaci hlavního okna.
CWinApp::EnableHtmlHelp Implementuje htmlHelp pro aplikaci místo WinHelp.
CWinApp::EnableTaskbarInteraction Povolí interakci s hlavním panelem.
CWinApp::ExitInstance Po ukončení aplikace přepište, aby se vyčistil.
CWinApp::GetApplicationRecoveryParameter Načte vstupní parametr pro metodu obnovení aplikace.
CWinApp::GetApplicationRecoveryPingInterval Vrátí dobu, po kterou správce restartování čeká na vrácení funkce zpětného volání obnovení.
CWinApp::GetApplicationRestartFlags Vrátí příznaky pro správce restartování.
CWinApp::GetAppRegistryKey Vrátí klíč pro HKEY_CURRENT_USER\"Software"\RegistryKey\ProfileName.
CWinApp::GetDataRecoveryHandler Získá obslužnou rutinu obnovení dat pro tuto instanci aplikace.
CWinApp::GetFirstDocTemplatePosition Načte pozici první šablony dokumentu.
CWinApp::GetHelpMode Načte typ nápovědy používané aplikací.
CWinApp::GetNextDocTemplate Načte pozici šablony dokumentu. Lze použít rekurzivně.
CWinApp::GetPrinterDeviceDefaults Načte výchozí nastavení zařízení tiskárny.
CWinApp::GetProfileBinary Načte binární data z položky v aplikaci . SOUBOR INI.
CWinApp::GetProfileInt Načte celé číslo z položky v aplikaci . SOUBOR INI.
CWinApp::GetProfileString Načte řetězec z položky v aplikaci . SOUBOR INI.
CWinApp::GetSectionKey Vrátí klíč pro HKEY_CURRENT_USER\"Software"\RegistryKey\AppName\lpszSection.
CWinApp::HideApplication Před zavřením všech dokumentů skryje aplikaci.
CWinApp::HtmlHelp HTMLHelp Volá funkci Windows.
CWinApp::InitInstance Přepsání pro provedení inicializace instance systému Windows, například vytvoření objektů okna.
CWinApp::IsTaskbarInteractionEnabled Určuje, jestli je povolená interakce hlavního panelu Windows 7.
CWinApp::LoadCursor Načte prostředek kurzoru.
CWinApp::LoadIcon Načte prostředek ikony.
CWinApp::LoadOEMCursor Načte předdefinovaný kurzor OEM systému Windows, který OCR_ konstanty určují v systému WINDOWS.H.
CWinApp::LoadOEMIcon Načte předdefinovanou ikonu windows OEM, kterou OIC_ konstanty zadané ve Windows.H.
CWinApp::LoadStandardCursor Načte předdefinovaný kurzor Windows, který IDC_ konstanty zadané v systému WINDOWS.H.
CWinApp::LoadStandardIcon Načte předdefinovanou ikonu Windows, kterou IDI_ konstanty zadané v systému WINDOWS.H.
CWinApp::OnDDECommand Volá se rozhraním v reakci na příkaz spuštění dynamické výměny dat (DDE).
CWinApp::Onidle Přepsáním provedete zpracování nečinnosti specifické pro aplikaci.
CWinApp::OpenDocumentFile Volá se rozhraním pro otevření dokumentu ze souboru.
CWinApp::P arseCommandLine Analyzuje jednotlivé parametry a příznaky v příkazovém řádku.
CWinApp::P reTranslateMessage Filtruje zprávy před odesláním do funkcí Windows TranslateMessage a DispatchMessage.
CWinApp::P rocessMessageFilter Zachytí určité zprávy před tím, než se dostanou k aplikaci.
CWinApp::P rocessShellCommand Zpracovává argumenty a příznaky příkazového řádku.
CWinApp::P rocessWndProcException Zachytí všechny neošetřené výjimky vyvolané zprávou aplikace a obslužnými rutinami příkazů.
CWinApp::Register Provede přizpůsobenou registraci.
CWinApp::RegisterWithRestartManager Zaregistruje aplikaci ve správci restartování.
CWinApp::ReopenPreviousFilesAtRestart Určuje, zda správce restartování znovu otevře soubory, které byly otevřeny při neočekávaném ukončení aplikace.
CWinApp::RestartInstance Zpracovává restartování aplikace iniciované správcem restartování.
CWinApp::RestoreAutosavedFilesAtRestart Určuje, zda správce restartování obnoví automaticky uložené soubory při restartování aplikace.
CWinApp::Run Spustí výchozí smyčku zpráv. Přepsání pro přizpůsobení smyčky zprávy
CWinApp::RunAutomated Otestuje příkazový řádek aplikace pro možnost /Automation . Zastaralé. Místo toho použijte hodnotu v CCommandLineInfo::m_bRunAutomated po volání ParseCommandLine.
CWinApp::RunEmbedded Otestuje příkazový řádek aplikace pro možnost /Embedding . Zastaralé. Místo toho použijte hodnotu v CCommandLineInfo::m_bRunEmbedded po volání ParseCommandLine.
CWinApp::SaveAllModified Vyzve uživatele k uložení všech upravených dokumentů.
CWinApp::SelectPrinter Vybere tiskárnu dříve označenou uživatelem pomocí dialogového okna tisku.
CWinApp::SetHelpMode Nastaví a inicializuje typ nápovědy používané aplikací.
CWinApp::SupportsApplicationRecovery Určuje, zda správce restartování obnoví aplikaci, která se neočekávaně ukončila.
CWinApp::SupportsAutosaveAtInterval Určuje, zda správce restartování automaticky ukládat dokumenty v pravidelných intervalech.
CWinApp::SupportsAutosaveAtRestart Určuje, zda správce restartování automaticky ukládat všechny otevřené dokumenty při restartování aplikace.
CWinApp::SupportsRestartManager Určuje, zda aplikace podporuje správce restartování.
CWinApp::Unregister Zruší registraci všeho, co je známo, že objekt zaregistruje CWinApp .
CWinApp::WinHelp WinHelp Volá funkci Windows.
CWinApp::WriteProfileBinary Zapíše binární data do položky v aplikaci . SOUBOR INI.
CWinApp::WriteProfileInt Zapíše celé číslo do položky v aplikaci . SOUBOR INI.
CWinApp::WriteProfileString Zapíše řetězec do položky v aplikaci . SOUBOR INI.

Chráněné metody

Název Popis
CWinApp::EnableShellOpen Umožňuje uživateli otevírat datové soubory ze Správce souborů Systému Windows.
CWinApp::LoadStdProfileSettings Načte standard . Nastavení souboru INI a povolení funkce seznamu souborů MRU.
CWinApp::OnContextHelp Zpracovává nápovědu SHIFT+F1 v aplikaci.
CWinApp::OnFileNew Implementuje příkaz ID_FILE_NEW.
CWinApp::OnFileOpen Implementuje příkaz ID_FILE_OPEN.
CWinApp::OnFilePrintSetup Implementuje příkaz ID_FILE_PRINT_SETUP.
CWinApp::OnHelp Zpracovává nápovědu F1 v aplikaci (pomocí aktuálního kontextu).
CWinApp::OnHelpFinder Zpracovává příkazy ID_HELP_FINDER a ID_DEFAULT_HELP.
CWinApp::OnHelpIndex Zpracovává příkaz ID_HELP_INDEX a poskytuje výchozí téma nápovědy.
CWinApp::OnHelpUsing Zpracovává příkaz ID_HELP_USING.
CWinApp::RegisterShellFileTypes Zaregistruje všechny typy dokumentů aplikace ve Správci souborů systému Windows.
CWinApp::SetAppID Explicitně nastaví ID modelu uživatele aplikace pro aplikaci. Tato metoda by se měla volat před zobrazením uživatelského rozhraní uživateli (nejlepším místem je konstruktor aplikace).
CWinApp::SetRegistryKey Způsobí, že se nastavení aplikace uloží v registru místo . Soubory INI.
CWinApp::UnregisterShellFileTypes Zruší registraci všech typů dokumentů aplikace pomocí Správce souborů systému Windows.

Veřejné datové členy

Název Popis
CWinApp::m_bHelpMode Označuje, jestli je uživatel v režimu kontextu nápovědy (obvykle vyvolán pomocí SHIFT+F1).
CWinApp::m_eHelpType Určuje typ nápovědy používané aplikací.
CWinApp::m_hInstance Identifikuje aktuální instanci aplikace.
CWinApp::m_lpCmdLine Odkazuje na řetězec ukončený hodnotou null, který určuje příkazový řádek pro aplikaci.
CWinApp::m_nCmdShow Určuje, jak se má okno na začátku zobrazit.
CWinApp::m_pActiveWnd Ukazatel na hlavní okno aplikace kontejneru, pokud je server OLE na místě aktivní.
CWinApp::m_pszAppID ID modelu uživatele aplikace
CWinApp::m_pszAppName Určuje název aplikace.
CWinApp::m_pszExeName Název modulu aplikace.
CWinApp::m_pszHelpFilePath Cesta k souboru nápovědy aplikace.
CWinApp::m_pszProfileName Aplikace . Název souboru INI.
CWinApp::m_pszRegistryKey Slouží k určení úplného klíče registru pro ukládání nastavení profilu aplikace.

Chráněné datové členy

Název Popis
CWinApp::m_dwRestartManagerSupportFlags Příznaky, které určují chování správce restartování.
CWinApp::m_nAutosaveInterval Doba mezi automatickým ukládáním v milisekundách.
CWinApp::m_pDataRecoveryHandler Ukazatel na obslužnou rutinu obnovení dat pro aplikaci.

Poznámky

Objekt aplikace poskytuje členské funkce pro inicializaci aplikace (a každou jeho instanci) a pro spuštění aplikace.

Každá aplikace, která používá třídy Microsoft Foundation může obsahovat pouze jeden objekt odvozený z CWinApp. Tento objekt je vytvořen při vytváření jiných globálních objektů jazyka C++ a je již k dispozici, když Systém Windows volá WinMain funkci, která je poskytována knihovnou tříd Microsoft Foundation. Deklarujte odvozený CWinApp objekt na globální úrovni.

Při odvození třídy aplikace z CWinApp, přepsat InitInstance členské funkce vytvořit hlavní okno aplikace objektu.

Kromě CWinApp členských funkcí poskytuje knihovna tříd Microsoft Foundation následující globální funkce pro přístup k objektu CWinApp a dalším globálním informacím:

  • AfxGetApp získá ukazatel na CWinApp objekt.

  • AfxGetInstanceHandle Získá popisovač aktuální instance aplikace.

  • AfxGetResourceHandle Získá popisovač prostředků aplikace.

  • AfxGetAppName Získá ukazatel na řetězec obsahující název aplikace. Případně pokud máte ukazatel na CWinApp objekt, použijte m_pszExeName k získání názvu aplikace.

Viz CWinApp: Application Class for more on the CWinApp class, including an overview of the following:

  • CWinApp-odvozený kód napsaný Průvodcem aplikací.

  • CWinApprole v pořadí provádění vaší aplikace.

  • CWinAppvýchozí implementace členské funkce.

  • CWinAppKlíč je přepisovatelný.

Datový m_hPrevInstance člen již neexistuje. Pokud chcete zjistit, jestli je spuštěná jiná instance aplikace, použijte pojmenovaný mutex. Pokud se otevření mutex nezdaří, nejsou spuštěné žádné další instance aplikace.

Hierarchie dědičnosti

Objekt CObject

CCmdTarget

CWinThread

CWinApp

Požadavky

Hlavička: afxwin.h

CWinApp::AddDocTemplate

Voláním této členské funkce přidáte šablonu dokumentu do seznamu dostupných šablon dokumentů, které aplikace udržuje.

void AddDocTemplate(CDocTemplate* pTemplate);

Parametry

pTemplate
Ukazatel na CDocTemplate přidání.

Poznámky

Před voláním RegisterShellFileTypes byste měli do aplikace přidat všechny šablony dokumentů.

Příklad

// 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

Voláním této členské funkce přidejte lpszPathName do seznamu souborů MRU.

virtual void AddToRecentFileList(LPCTSTR lpszPathName);

Parametry

lpszPathName
Cesta k souboru.

Poznámky

Před použitím této členské funkce byste měli zavolat členské funkce LoadStdProfileSettings , která načte aktuální seznam souborů MRU.

Architektura volá tuto členovou funkci, když otevře soubor nebo spustí příkaz Uložit jako pro uložení souboru s novým názvem.

Příklad

// 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

Volá se rozhraním, když se aplikace neočekávaně ukončí.

virtual DWORD ApplicationRecoveryCallback(LPVOID lpvParam);

Parametry

lpvParam
[v] Vyhrazeno pro budoucí použití.

Návratová hodnota

0, pokud je tato metoda úspěšná; nenulové, pokud dojde k chybě.

Poznámky

Pokud vaše aplikace podporuje správce restartování, architektura volá tuto funkci, když se aplikace neočekávaně ukončí.

Výchozí implementace ApplicationRecoveryCallback používá CDataRecoveryHandler k uložení seznamu aktuálně otevřených dokumentů do registru. Tato metoda automaticky neukládá žádné soubory.

Chcete-li přizpůsobit chování, přepište tuto funkci v odvozené třídě CWinApp nebo předat vlastní metodu obnovení aplikace jako parametr CWinApp::RegisterWithRestartManager.

CWinApp::CloseAllDocuments

Voláním této členské funkce zavřete všechny otevřené dokumenty před ukončením.

void CloseAllDocuments(BOOL bEndSession);

Parametry

bEndSession
Určuje, jestli je relace Systému Windows ukončena nebo ne. Má hodnotu TRUE, pokud je relace ukončena; jinak NEPRAVDA.

Poznámky

Před voláním volejte CloseAllDocumentsHideApplication .

CWinApp::CreatePrinterDC

Voláním této členské funkce vytvoříte z vybrané tiskárny kontext zařízení tiskárny (DC).

BOOL CreatePrinterDC(CDC& dc);

Parametry

stejnosměrný proud
Odkaz na kontext zařízení tiskárny.

Návratová hodnota

Nenulové, pokud je kontext tiskárny úspěšně vytvořen; jinak 0.

Poznámky

CreatePrinterDC inicializuje kontext zařízení, který předáte odkazem, abyste ho mohli použít k tisku.

Pokud je funkce úspěšná, musíte po dokončení tisku zničit kontext zařízení. Destruktor objektu CDC můžete provést nebo to můžete udělat explicitně voláním CDC::D eleteDC.

CWinApp::CWinApp

CWinApp Vytvoří objekt a předá lpszAppName k uložení jako název aplikace.

CWinApp(LPCTSTR lpszAppName = NULL);

Parametry

lpszAppName
Řetězec ukončený hodnotou null, který obsahuje název aplikace, který používá Systém Windows. Pokud tento argument není zadán nebo má hodnotu NULL, CWinApp použije řetězec prostředku AFX_IDS_APP_TITLE nebo název souboru spustitelného souboru.

Poznámky

Měli byste vytvořit jeden globální objekt vaší CWinApp-odvozené třídy. V aplikaci můžete mít pouze jeden CWinApp objekt. Konstruktor uloží ukazatel na CWinApp objekt, aby WinMain mohl volat členské funkce objektu k inicializaci a spuštění aplikace.

CWinApp::D elRegTree

Odstraní konkrétní klíč registru a všechny jeho podklíče.

LONG DelRegTree(
    HKEY hParentKey,
    const CString& strKeyName);

LONG DelRegTree(
    HKEY hParentKey,
    const CString& strKeyName,
    CAtlTransactionManager* pTM = NULL);

Parametry

hParentKey
Popisovač klíče registru.

strKeyName
Název klíče registru, který se má odstranit.

pTM
Ukazatel na CAtlTransactionManager objektu.

Návratová hodnota

Pokud je funkce úspěšná, je vrácená hodnota ERROR_SUCCESS. Pokud funkce selže, návratová hodnota je nenulový kód chyby definovaný v winerror.h.

Poznámky

Voláním této funkce odstraníte zadaný klíč a jeho podklíče.

CWinApp::D oMessageBox

Architektura volá tuto členovou funkci k implementaci pole zprávy pro globální funkci AfxMessageBox.

virtual int DoMessageBox(
    LPCTSTR lpszPrompt,
    UINT nType,
    UINT nIDPrompt);

Parametry

lpszPrompt
Adresa textu v poli zprávy

nType
Styl pole se zprávou.

nIDPrompt
Index kontextového řetězce nápovědy.

Návratová hodnota

Vrátí stejné hodnoty jako AfxMessageBox.

Poznámky

Nevolejte tuto členovou funkci k otevření pole zprávy; místo toho použijte AfxMessageBox .

Přepište tuto členovou funkci tak, aby přizpůsobila zpracování volání pro AfxMessageBox celou aplikaci.

CWinApp::D oWaitCursor

Tato členová funkce je volána architekturou pro implementaci CWaitCursor, CCmdTarget::BeginWaitCursor, CCmdTarget::EndWaitCursor a CCmdTarget::RestoreWaitCursor.

virtual void DoWaitCursor(int nCode);

Parametry

nCode
Pokud je tento parametr 1, zobrazí se kurzor čekání. Pokud 0, kurzor čekání se obnoví bez zvýšení počtu odkazů. Pokud -1, kurzor čekání skončí.

Poznámky

Výchozí hodnota implementuje kurzor přesýpací hodiny. DoWaitCursor udržuje referenční počet. Pokud je pozitivní, zobrazí se kurzor přesýpacích hodin.

I když byste normálně nevolali DoWaitCursor přímo, můžete tuto členovu funkci přepsat tak, aby změnila kurzor čekání nebo aby se při zobrazení kurzoru čekání změnila další zpracování.

Pro snadnější, jednodušší způsob implementace kurzoru čekání použijte CWaitCursor.

Příklad

// 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

Je požadována sada Visual Studio 2010 SP1.

Povolí podporu D2D aplikace. Tuto metodu zavolejte před inicializaci hlavního okna.

BOOL EnableD2DSupport(
    D2D1_FACTORY_TYPE d2dFactoryType = D2D1_FACTORY_TYPE_SINGLE_THREADED,
    DWRITE_FACTORY_TYPE writeFactoryType = DWRITE_FACTORY_TYPE_SHARED);

Parametry

d2dFactoryType
Model vláken objektu pro vytváření D2D a prostředky, které vytvoří.

writeFactoryType
Hodnota, která určuje, jestli se objekt objektu pro vytváření zápisu bude sdílet nebo izolovat.

Návratová hodnota

Vrátí hodnotu TRUE, pokud byla povolena podpora D2D, NEPRAVDA – jinak

CWinApp::EnableHtmlHelp

Volání této členské funkce z konstruktoru - CWinAppodvozené třídy použít HTMLHelp pro nápovědu vaší aplikace.

void EnableHtmlHelp();

Poznámky

CWinApp::EnableShellOpen

Voláním této funkce, obvykle z přepsání InitInstance , umožníte uživatelům aplikace otevírat datové soubory, když poklikání na soubory ze Správce souborů systému Windows.

void EnableShellOpen();

Poznámky

RegisterShellFileTypes Volání členské funkce ve spojení s touto funkcí nebo poskytnutí funkce . Soubor REG s vaší aplikací pro ruční registraci typů dokumentů.

Příklad

// 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

Povolí interakci s hlavním panelem.

BOOL EnableTaskbarInteraction(BOOL bEnable = TRUE);

Parametry

bEnable
Určuje, jestli má být povolená interakce s hlavním panelem Windows 7 (TRUE) nebo zakázaná (FALSE).

Návratová hodnota

Vrátí hodnotu TRUE, pokud je možné povolit nebo zakázat interakci s hlavním panelem.

Poznámky

Tato metoda musí být volána před vytvořením hlavního okna, jinak se vytvrdí a vrátí HODNOTU FALSE.

CWinApp::ExitInstance

Volá se rozhraním z členské Run funkce pro ukončení této instance aplikace.

virtual int ExitInstance();

Návratová hodnota

Ukončovací kód aplikace; 0 značí žádné chyby a hodnoty větší než 0 označují chybu. Tato hodnota se používá jako návratová hodnota z WinMain.

Poznámky

Tuto členovu funkci nevolejte odkudkoli, ale v rámci Run členské funkce.

Výchozí implementace této funkce zapisuje možnosti architektury do aplikace . SOUBOR INI. Tuto funkci přepište, aby se po ukončení aplikace vyčistila.

Příklad

int CMyApp::ExitInstance()
{
   if (m_pMySampleMem)
      delete m_pMySampleMem;

   DoCleanup();

   return CWinApp::ExitInstance();
}

CWinApp::GetApplicationRecoveryParameter

Načte vstupní parametr pro metodu obnovení aplikace.

virtual LPVOID GetApplicationRecoveryParameter();

Návratová hodnota

Výchozí vstupní parametr pro metodu obnovení aplikace.

Poznámky

Výchozí chování této funkce vrátí hodnotu NULL.

Další informace naleznete v tématu CWinApp::ApplicationRecoveryCallback.

CWinApp::GetApplicationRecoveryPingInterval

Vrátí dobu, po kterou správce restartování čeká na vrácení funkce zpětného volání obnovení.

virtual DWORD GetApplicationRecoveryPingInterval();

Návratová hodnota

Doba v milisekundách.

Poznámky

Když se aplikace zaregistrovaná ve správci restartování neočekávaně ukončí, pokusí se aplikace uložit otevřené dokumenty a zavolá funkci zpětného volání pro obnovení. Výchozí funkce zpětného volání obnovení je CWinApp::ApplicationRecoveryCallback.

Doba, po kterou rozhraní čeká na vrácení funkce zpětného volání obnovení, je interval ping. Interval ping můžete přizpůsobit přepsáním CWinApp::GetApplicationRecoveryPingInterval nebo zadáním vlastní hodnoty .RegisterWithRestartManager

CWinApp::GetApplicationRestartFlags

Vrátí příznaky pro správce restartování.

virtual DWORD GetApplicationRestartFlags();

Návratová hodnota

Příznaky pro správce restartování. Výchozí implementace vrátí hodnotu 0.

Poznámky

Příznaky pro správce restartování nemají žádný vliv na výchozí implementaci. Jsou k dispozici pro budoucí použití.

Příznaky nastavíte při registraci aplikace ve správci restartování pomocí CWinApp::RegisterWithRestartManager.

Možné hodnoty příznaků správce restartování jsou následující:

  • RESTART_NO_CRASH

  • RESTART_NO_HANG

  • RESTART_NO_PATCH

  • RESTART_NO_REBOOT

CWinApp::GetAppRegistryKey

Vrátí klíč pro HKEY_CURRENT_USER\"Software"\RegistryKey\ProfileName.

HKEY GetAppRegistryKey(CAtlTransactionManager* pTM = NULL);

Parametry

pTM
Ukazatel na CAtlTransactionManager objekt.

Návratová hodnota

Klíč aplikace, pokud je funkce úspěšná; jinak NULL.

Poznámky

CWinApp::GetDataRecoveryHandler

Získá obslužnou rutinu obnovení dat pro tuto instanci aplikace.

virtual CDataRecoveryHandler *GetDataRecoveryHandler();

Návratová hodnota

Obslužná rutina obnovení dat pro tuto instanci aplikace.

Poznámky

Každá aplikace, která používá správce restartování, musí mít jednu instanci CDataRecoveryHandler Třídy. Tato třída zodpovídá za monitorování otevřených dokumentů a automatického ukládání souborů. CDataRecoveryHandler Chování závisí na konfiguraci správce restartování. Další informace naleznete v tématu CDataRecoveryHandler Třída.

Tato metoda vrátí hodnotu NULL v operačních systémech starších než Windows Vista. Správce restartování není podporován v operačních systémech starších než Windows Vista.

Pokud aplikace aktuálně nemá obslužnou rutinu obnovení dat, tato metoda vytvoří jednu a vrátí ukazatel na ni.

CWinApp::GetFirstDocTemplatePosition

Získá pozici první šablony dokumentu v aplikaci.

POSITION GetFirstDocTemplatePosition() const;

Návratová hodnota

Hodnota POSITION, kterou lze použít pro iteraci nebo načtení ukazatele objektu; Hodnota NULL, pokud je seznam prázdný.

Poznámky

Použijte hodnotu POSITION vrácenou ve volání GetNextDocTemplate získat první CDocTemplate objektu.

CWinApp::GetHelpMode

Načte typ nápovědy používané aplikací.

AFX_HELP_TYPE GetHelpMode();

Návratová hodnota

Typ nápovědy používaný aplikací. Další informace najdete v tématu CWinApp::m_eHelpType .

CWinApp::GetNextDocTemplate

Získá šablonu dokumentu identifikovanou pos a pak nastaví pos na hodnotu POSITION.

CDocTemplate* GetNextDocTemplate(POSITION& pos) const;

Parametry

Pos
Odkaz na hodnotu POSITION vrácenou předchozím voláním nebo GetNextDocTemplate GetFirstDocTemplatePosition. Tato volání aktualizuje hodnotu na další pozici.

Návratová hodnota

Ukazatel na objekt CDocTemplate .

Poznámky

Můžete použít GetNextDocTemplate ve smyčce přesměrování iterace, pokud vytvoříte počáteční pozici s voláním GetFirstDocTemplatePosition.

Je nutné zajistit, aby hodnota POSITION byla platná. Pokud je neplatná, pak ladicí verze knihovny tříd Microsoft Foundation asserts.

Pokud je načtená šablona dokumentu poslední dostupnou, je nová hodnota pos nastavená na hodnotu NULL.

CWinApp::GetPrinterDeviceDefaults

Voláním této členské funkce připravte kontext zařízení tiskárny pro tisk.

BOOL GetPrinterDeviceDefaults(struct tagPDA* pPrintDlg);

Parametry

pPrintDlg
Ukazatel na strukturu PRINTDLG .

Návratová hodnota

Nenulové, pokud je úspěšné; jinak 0.

Poznámky

Načte aktuální výchozí hodnoty tiskárny ze systému Windows . Podle potřeby používá soubor INI nebo používá poslední konfiguraci tiskárny nastavenou uživatelem v nastavení tisku.

Příklad

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

Voláním této členské funkce načtěte binární data z položky v zadané části registru aplikace nebo . SOUBOR INI.

BOOL GetProfileBinary(
    LPCTSTR lpszSection,
    LPCTSTR lpszEntry,
    LPBYTE* ppData,
    UINT* pBytes);

Parametry

lpszSection
Odkazuje na řetězec zakončený hodnotou null, který určuje oddíl obsahující položku.

lpszEntry
Odkazuje na řetězec zakončený hodnotou null, který obsahuje položku, jejíž hodnota má být načtena.

ppData
Odkazuje na ukazatel, který obdrží adresu dat.

pBytes
Odkazuje na UINT, který obdrží velikost dat (v bajtech).

Návratová hodnota

Nenulové, pokud je úspěšné; jinak 0.

Poznámky

Tato členová funkce nerozlišuje malá a velká písmena, takže řetězce v parametrech lpszSection a lpszEntry se můžou v případě lišit.

Poznámka:

GetProfileBinary přidělí vyrovnávací paměť a vrátí její adresu v * ppData. Volající zodpovídá za uvolnění vyrovnávací paměti pomocí delete []..

Důležité

Data vrácená touto funkcí nemusí být nutně ukončena hodnotou null a volající musí provést ověření. Další informace naleznete v tématu Zabránění přetečení vyrovnávací paměti.

Příklad

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

Další příklad najdete v tématu CWinApp::WriteProfileBinary.

CWinApp::GetProfileInt

Voláním této členské funkce lze získat hodnotu celého čísla z položky v určitém oddíle registru aplikace nebo souboru .INI.

UINT GetProfileInt(
    LPCTSTR lpszSection,
    LPCTSTR lpszEntry,
    int nDefault);

Parametry

lpszSection
Odkazuje na řetězec zakončený hodnotou null, který určuje oddíl obsahující položku.

lpszEntry
Odkazuje na řetězec zakončený hodnotou null, který obsahuje položku, jejíž hodnota má být načtena.

nDefault
Určuje výchozí vrácenou hodnotu, pokud rozhraní položku nemůže najít.

Návratová hodnota

Celočíselná hodnota řetězce, který následuje zadanou položku, pokud je funkce úspěšná. Návratová hodnota je hodnota parametru nDefault , pokud funkce nenajde položku. Vrácená hodnota je 0, pokud hodnota, která odpovídá zadané položce, není celé číslo.

Tato členská funkce podporuje šestnáctkovou notaci hodnot v souboru .INI. Když načtete celé číslo se signedem, měli byste hodnotu přetypovat na hodnotu int.

Poznámky

Tato členová funkce nerozlišuje malá a velká písmena, takže řetězce v parametrech lpszSection a lpszEntry se můžou v případě lišit.

Důležité

Data vrácená touto funkcí nemusí být nutně ukončena hodnotou null a volající musí provést ověření. Další informace naleznete v tématu Zabránění přetečení vyrovnávací paměti.

Příklad

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);

Další příklad najdete v tématu CWinApp::WriteProfileInt.

CWinApp::GetProfileString

Voláním této členské funkce načtěte řetězec přidružený k položce v zadané části v registru aplikace nebo . SOUBOR INI.

CString GetProfileString(
    LPCTSTR lpszSection,
    LPCTSTR lpszEntry,
    LPCTSTR lpszDefault = NULL);

Parametry

lpszSection
Odkazuje na řetězec zakončený hodnotou null, který určuje oddíl obsahující položku.

lpszEntry
Odkazuje na řetězec ukončený hodnotou null, který obsahuje položku, jejíž řetězec se má načíst. Tato hodnota nesmí být NULL.

lpszDefault
Odkazuje na výchozí hodnotu řetězce pro danou položku, pokud položku nelze najít v inicializačním souboru.

Návratová hodnota

Vrácená hodnota je řetězec z aplikace . Soubor INI nebo lpszDefault , pokud nebyl nalezen řetězec. Maximální délka řetězce podporovaná architekturou je _MAX_PATH. Pokud je lpszDefault NULL, návratová hodnota je prázdný řetězec.

Poznámky

Důležité

Data vrácená touto funkcí nemusí být nutně ukončena hodnotou null a volající musí provést ověření. Další informace naleznete v tématu Zabránění přetečení vyrovnávací paměti.

Příklad

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);

Další příklad najdete v příkladu pro CWinApp::GetProfileInt.

CWinApp::GetSectionKey

Vrátí klíč pro HKEY_CURRENT_USER\"Software"\RegistryKey\AppName\lpszSection.

HKEY GetSectionKey(
    LPCTSTR lpszSection,
    CAtlTransactionManager* pTM = NULL);

Parametry

lpszSection
Název klíče, který se má získat.

pTM
Ukazatel na CAtlTransactionManager objekt.

Návratová hodnota

Klíč oddílu, pokud je funkce úspěšná; jinak NULL.

Poznámky

CWinApp::HideApplication

Voláním této členské funkce před zavřením otevřených dokumentů skryjete aplikaci.

void HideApplication();

CWinApp::HtmlHelp

Voláním této členské funkce vyvoláte aplikaci HTMLHelp.

virtual void HtmlHelp(
    DWORD_PTR dwData,
    UINT nCmd = 0x000F);

Parametry

dwData
Určuje další data. Použitá hodnota závisí na hodnotě parametru nCmd . Výchozí hodnota 0x000F znamená HH_HELP_CONTEXT.

nCmd
Určuje typ požadované nápovědy. Seznam možných hodnot a jejich vliv na parametr dwData naleznete v parametru uCommand popsaném ve funkcích rozhraní HTMLHelpW nebo HtmlHelpA API v sadě Windows SDK.

Poznámky

Architektura také volá tuto funkci k vyvolání aplikace HTMLHelp.

Architektura automaticky zavře aplikaci HTMLHelp po ukončení aplikace.

CWinApp::InitInstance

Systém Windows umožňuje spuštění několika kopií stejného programu ve stejnou dobu.

virtual BOOL InitInstance();

Návratová hodnota

Nenulové, pokud je inicializace úspěšná; jinak 0.

Poznámky

Inicializace aplikace je koncepčně rozdělena do dvou částí: jednorázová inicializace aplikace, která se provádí při prvním spuštění programu, a inicializace instance, která se spustí pokaždé, když se spustí kopie programu, včetně prvního spuštění. Implementace architektury WinMain volá tuto funkci.

Přepsání InitInstance pro inicializaci každé nové instance vaší aplikace spuštěné v systému Windows. Obvykle přepíšete InitInstance sestavení hlavního objektu okna a nastavíte CWinThread::m_pMainWnd datový člen tak, aby odkaz na toto okno. Další informace o přepsání této členské funkce naleznete v tématu CWinApp: The Application Class.

Poznámka:

Aplikace MFC musí být inicializovány jako jednovláknový objekt apartment (STA). Pokud v InitInstance přepsání zavoláte CoInitializeEx, zadejte COINIT_APARTMENTTHREADED (místo COINIT_MULTITHREADED).

Příklad

// 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

Určuje, jestli je povolená interakce hlavního panelu Windows 7.

virtual BOOL IsTaskbarInteractionEnabled();

Návratová hodnota

Vrátí hodnotu TRUE, pokud EnableTaskbarInteraction byla volána a operační systém je Windows 7 nebo vyšší.

Poznámky

Interakce na hlavním panelu znamená, že aplikace MDI zobrazuje obsah podřízených položek MDI v samostatných miniaturách s kartami, které se zobrazí, když je ukazatel myši na tlačítko hlavního panelu aplikace.

CWinApp::LoadCursor

Načte prostředek kurzoru s názvem lpszResourceName nebo zadaný parametrem nIDResource z aktuálního spustitelného souboru.

HCURSOR LoadCursor(LPCTSTR lpszResourceName) const;  HCURSOR LoadCursor(UINT nIDResource) const;

Parametry

lpszResourceName
Odkazuje na řetězec ukončený hodnotou null, který obsahuje název prostředku kurzoru. Pro tento argument můžete použít CString argument.

nIDResource
ID prostředku kurzoru. Seznam prostředků naleznete v tématu LoadCursor v sadě Windows SDK.

Návratová hodnota

Úchyt kurzoru v případě úspěchu; jinak NULL.

Poznámky

LoadCursor načte kurzor do paměti pouze v případě, že nebyl dříve načten; v opačném případě načte popisovač existujícího prostředku.

Pro přístup k předdefinovaným kurzorům Windows použijte členské funkce LoadStandardCursor nebo LoadOEMCursor.

Příklad

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

Načte prostředek ikony s názvem lpszResourceName nebo zadaný parametrem nIDResource ze spustitelného souboru.

HICON LoadIcon(LPCTSTR lpszResourceName) const;  HICON LoadIcon(UINT nIDResource) const;

Parametry

lpszResourceName
Odkazuje na řetězec ukončený hodnotou null, který obsahuje název prostředku ikony. Pro tento argument můžete použít CString také argument.

nIDResource
Číslo ID prostředku ikony.

Návratová hodnota

Popisovač ikony v případě úspěchu; jinak NULL.

Poznámky

LoadIcon načte ikonu pouze v případě, že nebyla dříve načtena; v opačném případě načte popisovač existujícího prostředku.

K přístupu k předdefinovaným ikoně Windows můžete použít členské funkce LoadStandardIcon nebo LoadOEMIcon .

Poznámka:

Tato členová funkce volá funkci Rozhraní API Win32 LoadIcon, která může načíst pouze ikonu, jejíž velikost odpovídá hodnotám SM_CXICON a SM_CYICON systémových metrik.

CWinApp::LoadOEMCursor

Načte předdefinovaný prostředek kurzoru windows určený nIDCursor.

HCURSOR LoadOEMCursor(UINT nIDCursor) const;

Parametry

nIDCursor
Identifikátor konstanty manifestu OCR_ , který určuje předdefinovaný kurzor windows. Před získáním přístupu k konstantám OCR_ ve Windows.H musíte mít #define OEMRESOURCE #include \<afxwin.h> přístup.

Návratová hodnota

Úchyt kurzoru v případě úspěchu; jinak NULL.

Poznámky

LoadOEMCursor Pomocí členské funkce LoadStandardCursor můžete přistupovat k předdefinovaným kurzorům Windows.

Příklad

// 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

Načte předdefinovaný prostředek ikony Windows určený hodnotou nIDIcon.

HICON LoadOEMIcon(UINT nIDIcon) const;

Parametry

nIDIcon
Identifikátor konstanty manifestu OIC_ , který určuje předdefinovanou ikonu Windows. Před přístupem k konstantám OIC_ ve WINDOWS.H musíte mít #define OEMRESOURCE #include \<afxwin.h> přístup.

Návratová hodnota

Popisovač ikony v případě úspěchu; jinak NULL.

Poznámky

LoadOEMIcon Pomocí členské funkce LoadStandardIcon můžete přistupovat k předdefinovaným ikoně Windows.

CWinApp::LoadStandardCursor

Načte předdefinovaný prostředek kurzoru systému Windows, který určuje lpszCursorName .

HCURSOR LoadStandardCursor(LPCTSTR lpszCursorName) const;

Parametry

lpszCursorName
Identifikátor konstanty manifestu IDC_ , který určuje předdefinovaný kurzor windows. Tyto identifikátory jsou definovány ve Windows.H. Následující seznam ukazuje možné předdefinované hodnoty a významy pro lpszCursorName:

  • IDC_ARROW kurzor standardní šipky

  • IDC_IBEAM standardní kurzor pro vložení textu

  • IDC_WAIT kurzor přesýpací hodiny použitý při provádění časově náročné úlohy ve Windows

  • IDC_CROSS křížového kurzoru pro výběr

  • IDC_UPARROW šipka, která ukazuje přímo nahoru

  • IDC_SIZE zastaralé a nepodporované; použití IDC_SIZEALL

  • IDC_SIZEALL Čtyřcípá šipka. Kurzor, který chcete použít ke změně velikosti okna.

  • IDC_ICON zastaralé a nepodporované. Použijte IDC_ARROW.

  • IDC_SIZENWSE obousměrná šipka s konci v levém horním a pravém dolním rohu

  • IDC_SIZENESW obousměrné šipky s konci v pravém horním a dolním rohu

  • IDC_SIZEWE Vodorovná obousměrná šipka

  • IDC_SIZENS Svislá obousměrná šipka

Návratová hodnota

Úchyt kurzoru v případě úspěchu; jinak NULL.

Poznámky

LoadStandardCursor Pomocí členské funkce LoadOEMCursor můžete přistupovat k předdefinovaným kurzorům Windows.

Příklad

HCURSOR hCursor;

// Load the predefined Windows "up arrow" cursor.
hCursor = AfxGetApp()->LoadStandardCursor(IDC_UPARROW);

CWinApp::LoadStandardIcon

Načte předdefinovaný prostředek ikony Systému Windows, který určuje lpszIconName .

HICON LoadStandardIcon(LPCTSTR lpszIconName) const;

Parametry

lpszIconName
Identifikátor konstanty manifestu, který určuje předdefinovanou ikonu Windows. Tyto identifikátory jsou definovány ve Windows.H. Seznam možných předdefinovaných hodnot a jejich popisů najdete v parametru lpIconName v LoadIcon v sadě Windows SDK.

Návratová hodnota

Popisovač ikony v případě úspěchu; jinak NULL.

Poznámky

LoadStandardIcon Pomocí členské funkce LoadOEMIcon můžete získat přístup k předdefinovaným ikoně Windows.

CWinApp::LoadStdProfileSettings

Voláním této členské funkce v rámci členské funkce InitInstance povolíte a načtete seznam naposledy použitých souborů (MRU) a posledního stavu náhledu.

void LoadStdProfileSettings(UINT nMaxMRU = _AFX_MRU_COUNT);

Parametry

nMaxMRU
Počet naposledy použitých souborů ke sledování.

Poznámky

Pokud je nMaxMRU 0, nebude zachován žádný seznam MRU.

CWinApp::m_bHelpMode

TRUE, pokud je aplikace v režimu kontextu nápovědy (konvenčně vyvolána pomocí SHIFT + F1); jinak NEPRAVDA.

BOOL m_bHelpMode;

Poznámky

V režimu kontextu nápovědy se kurzor změní na otazník a uživatel ho může přesunout o obrazovku. Pokud chcete implementovat speciální zpracování v režimu nápovědy, zkontrolujte tento příznak. m_bHelpMode je veřejná proměnná typu BOOL.

CWinApp::m_dwRestartManagerSupportFlags

Příznaky, které určují chování správce restartování.

DWORD m_dwRestartManagerSupportFlags;

Poznámky

Pokud chcete povolit správce restartování, nastavte m_dwRestartManagerSupportFlags požadované chování. V následující tabulce jsou uvedeny příznaky, které jsou k dispozici.

Příznak Popis
AFX_RESTART_MANAGER_SUPPORT_RESTART Aplikace je zaregistrovaná pomocí CWinApp::RegisterWithRestartManager. Správce restartování zodpovídá za restartování aplikace, pokud se neočekávaně ukončí.
- AFX_RESTART_MANAGER_SUPPORT_RECOVERY Aplikace je zaregistrovaná ve správci restartování a správce restartování volá funkci zpětného volání obnovení při restartování aplikace. Výchozí funkce zpětného volání obnovení je CWinApp::ApplicationRecoveryCallback.
- AFX_RESTART_MANAGER_AUTOSAVE_AT_RESTART Automatické ukládání je povolené a správce restartování automaticky shromažďuje všechny otevřené dokumenty při restartování aplikace.
- AFX_RESTART_MANAGER_AUTOSAVE_AT_INTERVAL Automatické ukládání je povolené a správce restartování automaticky shromažďuje všechny otevřené dokumenty v pravidelných intervalech. Interval je definován CWinApp ::m_nAutosaveInterval.
- AFX_RESTART_MANAGER_REOPEN_PREVIOUS_FILES Správce restartování otevře dříve otevřené dokumenty po restartování aplikace z neočekávaného ukončení. Třída CDataRecoveryHandler zpracovává ukládání seznamu otevřených dokumentů a jejich obnovení.
- AFX_RESTART_MANAGER_RESTORE_AUTOSAVED_FILES Správce restartování vyzve uživatele, aby po restartování aplikace obnovil automaticky uložené soubory. Třída CDataRecoveryHandler se dotazuje uživatele.
- AFX_RESTART_MANAGER_SUPPORT_NO_AUTOSAVE Sjednocení AFX_RESTART_MANAGER_SUPPORT_RESTART, AFX_RESTART_MANAGER_SUPPORT_RECOVER a AFX_RESTART_MANAGER_REOPEN_PREVIOUS_FILES.
- AFX_RESTART_MANAGER_SUPPORT_ALL_ASPECTS Sjednocení AFX_RESTART_MANAGER_SUPPORT_NO_AUTOSAVE, AFX_RESTART_MANAGER_AUTOSAVE_AT_RESTART, AFX_RESTART_MANAGER_AUTOSAVE_AT_INTERVAL a AFX_RESTART_MANAGER_RESTORE_AUTOSAVED_FILES.
- AFX_RESTART_MANAGER_SUPPORT_RESTART_ASPECTS Sjednocení AFX_RESTART_MANAGER_SUPPORT_RESTART, AFX_RESTART_MANAGER_AUTOSAVE_AT_RESTART, AFX_RESTART_MANAGER_REOPEN_PREVIOUS_FILES a AFX_RESTART_MANAGER_RESTORE_AUTOSAVED_FILES.
- AFX_RESTART_MANAGER_SUPPORT_RECOVERY_ASPECTS Sjednocení ofAFX_RESTART_MANAGER_SUPPORT_RECOVERY, AFX_RESTART_MANAGER_AUTOSAVE_AT_INTERVAL, AFX_RESTART_MANAGER_REOPEN_PREVIOUS_FILES a AFX_RESTART_MANAGER_RESTORE_AUTOSAVED_FILES.

CWinApp::m_eHelpType

Typ tohoto datového členu je výčtový typ AFX_HELP_TYPE, který je definován v rámci CWinApp třídy.

AFX_HELP_TYPE m_eHelpType;

Poznámky

Výčet AFX_HELP_TYPE je definován takto:

enum AFX_HELP_TYPE {
    afxWinHelp = 0,
    afxHTMLHelp = 1
    };
  • Chcete-li nastavit nápovědu aplikace na nápovědu HTML, zavolejte SetHelpMode a zadejte afxHTMLHelp.

  • Chcete-li nastavit nápovědu aplikace winHelp, zavolejte SetHelpMode a zadejte afxWinHelp.

CWinApp::m_hInstance

Odpovídá parametru hInstance předaným systémem Windows do WinMain.

HINSTANCE m_hInstance;

Poznámky

Datový m_hInstance člen je popisovač aktuální instance aplikace spuštěné v systému Windows. Tato funkce je vrácena globální funkcí AfxGetInstanceHandle. m_hInstance je veřejná proměnná typu HINSTANCE.

Příklad

// 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

Odpovídá parametru lpCmdLine předaného systémem Windows do WinMain.

LPTSTR m_lpCmdLine;

Poznámky

Odkazuje na řetězec ukončený hodnotou null, který určuje příkazový řádek pro aplikaci. Umožňuje m_lpCmdLine přístup k jakýmkoli argumentům příkazového řádku, které uživatel zadal při spuštění aplikace. m_lpCmdLine je veřejná proměnná typu LPTSTR.

Příklad

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

Doba mezi automatickým ukládáním v milisekundách.

int m_nAutosaveInterval;

Poznámky

Správce restartování můžete nakonfigurovat tak, aby automaticky ukládaly otevřené dokumenty v nastavených intervalech. Pokud vaše aplikace automaticky neukládá soubory, nemá tento parametr žádný vliv.

CWinApp::m_nCmdShow

Odpovídá nCmdShow parametr předaný windows do WinMain.

int m_nCmdShow;

Poznámky

Při volání CWnd::ShowWindow pro hlavní okno aplikace byste měli předat m_nCmdShow jako argument. m_nCmdShow je veřejná proměnná typu int.

Příklad

// 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

Tento datový člen slouží k uložení ukazatele na hlavní okno aplikace kontejneru OLE, která má místní serverovou aplikaci OLE.

Poznámky

Pokud má tento datový člen hodnotu NULL, aplikace není aktivní.

Architektura nastaví tuto členovou proměnnou, když je okno rámce aktivováno aplikací kontejneru OLE.

CWinApp::m_pDataRecoveryHandler

Ukazatel na obslužnou rutinu obnovení dat pro aplikaci.

CDataRecoveryHandler* m_pDataRecoveryHandler;

Poznámky

Obslužná rutina obnovení dat aplikace monitoruje otevřené dokumenty a automaticky je ukládá. Rozhraní používá obslužnou rutinu obnovení dat k obnovení automaticky uložených souborů, když se aplikace restartuje po neočekávaném ukončení. Další informace naleznete v tématu CDataRecoveryHandler Třída.

CWinApp::m_pszAppName

Určuje název aplikace.

LPCTSTR m_pszAppName;

Poznámky

Název aplikace může pocházet z parametru předaného konstruktoru CWinApp , nebo pokud není zadaný, do řetězce prostředku s ID AFX_IDS_APP_TITLE. Pokud se název aplikace v prostředku nenajde, pochází z názvu souboru .EXE programu.

Vrácena globální funkcí AfxGetAppName. m_pszAppName je veřejná proměnná typu const char*.

Poznámka:

Pokud přiřadíte hodnotu m_pszAppName, musí být dynamicky přidělena na haldě. Destruktor CWinApp volá free( ) s tímto ukazatelem. K přidělování chcete použít _tcsdupfunkci knihovny runtime () () . Před přiřazením nové hodnoty uvolněte paměť přidruženou k aktuálnímu ukazateli. Příklad:

//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"));

Příklad

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

Obsahuje název spustitelného souboru aplikace bez přípony.

LPCTSTR m_pszExeName;

Poznámky

Na rozdíl od m_pszAppName nemůže tento název obsahovat prázdné hodnoty. m_pszExeName je veřejná proměnná typu const char*.

Poznámka:

Pokud přiřadíte hodnotu m_pszExeName, musí být dynamicky přidělena na haldě. Destruktor CWinApp volá free( ) s tímto ukazatelem. K přidělování chcete použít _tcsdupfunkci knihovny runtime () () . Před přiřazením nové hodnoty uvolněte paměť přidruženou k aktuálnímu ukazateli. Příklad:

//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

Obsahuje cestu k souboru nápovědy aplikace.

LPCTSTR m_pszHelpFilePath;

Poznámky

Ve výchozím nastavení se architektura inicializuje m_pszHelpFilePath na název aplikace pomocí ". Připojeno "HLP". Pokud chcete změnit název souboru nápovědy, nastavte m_pszHelpFilePath ukazatel na řetězec, který obsahuje úplný název požadovaného souboru nápovědy. Vhodné místo k tomu je ve funkci InitInstance aplikace. m_pszHelpFilePath je veřejná proměnná typu const char*.

Poznámka:

Pokud přiřadíte hodnotu m_pszHelpFilePath, musí být dynamicky přidělena na haldě. Destruktor CWinApp volá free( ) s tímto ukazatelem. K přidělování chcete použít _tcsdupfunkci knihovny runtime () () . Před přiřazením nové hodnoty uvolněte paměť přidruženou k aktuálnímu ukazateli. Příklad:

//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

Obsahuje název aplikace . SOUBOR INI.

LPCTSTR m_pszProfileName;

Poznámky

m_pszProfileName je veřejná proměnná typu const char*.

Poznámka:

Pokud přiřadíte hodnotu m_pszProfileName, musí být dynamicky přidělena na haldě. Destruktor CWinApp volá free( ) s tímto ukazatelem. K přidělování chcete použít _tcsdupfunkci knihovny runtime () () . Před přiřazením nové hodnoty uvolněte paměť přidruženou k aktuálnímu ukazateli. Příklad:

//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

Slouží k určení, kde se v registru nebo souboru INI ukládají nastavení profilu aplikace.

LPCTSTR m_pszRegistryKey;

Poznámky

Za normálních okolností se tento datový člen považuje za jen pro čtení.

  • Hodnota se uloží do klíče registru. Název nastavení profilu aplikace se připojí k následujícímu klíči registru: HKEY_CURRENT_USER/Software/LocalAppWizard-Generated/.

Pokud přiřadíte hodnotu m_pszRegistryKey, musí být dynamicky přidělena na haldě. Destruktor CWinApp volá free( ) s tímto ukazatelem. K přidělování chcete použít _tcsdupfunkci knihovny runtime () () . Před přiřazením nové hodnoty uvolněte paměť přidruženou k aktuálnímu ukazateli. Příklad:

//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 modelu uživatele aplikace

LPCTSTR m_pszAppID;

Poznámky

CWinApp::OnContextHelp

Zpracovává nápovědu SHIFT+F1 v aplikaci.

afx_msg void OnContextHelp();

Poznámky

Chcete-li povolit tuto členovou funkci, musíte do mapy zpráv třídy přidat ON_COMMAND( ID_CONTEXT_HELP, OnContextHelp ) příkaz CWinApp a přidat také položku tabulky akcelerátoru, obvykle SHIFT+F1.

OnContextHelp umístí aplikaci do režimu nápovědy. Kurzor se změní na šipku a otazník a uživatel pak může ukazatel myši přesunout a stisknutím levého tlačítka myši vybrat dialogové okno, okno, nabídku nebo příkazové tlačítko. Tato členová funkce načte kontext nápovědy objektu pod kurzorem a volá funkci Windows WinHelp s tímto kontextem nápovědy.

CWinApp::OnDDECommand

Volá se rozhraním, když okno hlavního rámce obdrží zprávu o spuštění DDE.

virtual BOOL OnDDECommand(LPTSTR lpszCommand);

Parametry

lpszCommand
Odkazuje na řetězec příkazu DDE přijatý aplikací.

Návratová hodnota

Nenulové, pokud je příkaz zpracován; jinak 0.

Poznámky

Výchozí implementace zkontroluje, jestli je příkazem požadavek na otevření dokumentu, a pokud ano, otevře zadaný dokument. Správce souborů systému Windows obvykle odesílá takové řetězce příkazů DDE, když uživatel dvakrát klikne na datový soubor. Tuto funkci přepište tak, aby zpracovávala další příkazy pro spuštění DDE, například příkaz k tisku.

Příklad

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

Implementuje příkaz ID_FILE_NEW.

afx_msg void OnFileNew();

Poznámky

Chcete-li povolit tuto členovou funkci, musíte do CWinApp mapy zpráv třídy přidat ON_COMMAND( ID_FILE_NEW, OnFileNew ) příkaz. Pokud je tato funkce povolená, zpracovává spuštění příkazu File New.

Informace o výchozím chování a pokyny k přepsání této členské funkce najdete v technické poznámce 22 .

Příklad

// 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

Implementuje příkaz ID_FILE_OPEN.

afx_msg void OnFileOpen();

Poznámky

Chcete-li povolit tuto členovou funkci, musíte do CWinApp mapy zpráv třídy přidat ON_COMMAND( ID_FILE_OPEN, OnFileOpen ) příkaz. Pokud je tato funkce povolená, zpracovává spuštění příkazu Otevřít soubor.

Informace o výchozím chování a pokyny k přepsání této členské funkce naleznete v technické poznámce 22.

Příklad

// 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

Implementuje příkaz ID_FILE_PRINT_SETUP.

afx_msg void OnFilePrintSetup();

Poznámky

Chcete-li povolit tuto členovou funkci, musíte do CWinApp mapy zpráv třídy přidat ON_COMMAND( ID_FILE_PRINT_SETUP, OnFilePrintSetup ) příkaz. Pokud je tato funkce povolená, zpracovává spuštění příkazu Tisk souboru.

Informace o výchozím chování a pokyny k přepsání této členské funkce naleznete v technické poznámce 22.

Příklad

// 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

Zpracovává nápovědu F1 v aplikaci (pomocí aktuálního kontextu).

afx_msg void OnHelp();

Poznámky

Obvykle přidáte také položku akcelerátoru a klíče pro klávesu F1. Povolení klíče F1 je pouze konvence, nikoli požadavek.

Chcete-li povolit tuto členovou funkci, musíte do CWinApp mapy zpráv třídy přidat ON_COMMAND( ID_HELP, OnHelp ) příkaz. Pokud je tato možnost povolená, volá se rozhraním, když uživatel stiskne klávesu F1.

Výchozí implementace této funkce obslužné rutiny zpráv určuje kontext nápovědy, který odpovídá aktuálnímu okně, dialogovému okně nebo položce nabídky a potom volá WINHELP.EXE. Pokud není aktuálně k dispozici žádný kontext, funkce použije výchozí kontext.

Přepište tuto členovou funkci tak, aby kontext nápovědy nastavil na něco jiného, než je okno, dialogové okno, položka nabídky nebo tlačítko panelu nástrojů, které aktuálně obsahuje fokus. Volání WinHelp s požadovaným ID kontextu nápovědy

CWinApp::OnHelpFinder

Zpracovává příkazy ID_HELP_FINDER a ID_DEFAULT_HELP.

afx_msg void OnHelpFinder();

Poznámky

Chcete-li povolit tuto členovou funkci, musíte do CWinApp mapy zpráv třídy přidat ON_COMMAND( ID_HELP_FINDER, OnHelpFinder ) příkaz. Pokud je povoleno, rozhraní volá tuto funkci obslužné rutiny zpráv, když uživatel vaší aplikace vybere příkaz Help Finder k vyvolání WinHelp se standardním tématem HELP_FINDER .

CWinApp::OnHelpIndex

Zpracovává příkaz ID_HELP_INDEX a poskytuje výchozí téma nápovědy.

afx_msg void OnHelpIndex();

Poznámky

Chcete-li povolit tuto členovou funkci, musíte do CWinApp mapy zpráv třídy přidat ON_COMMAND( ID_HELP_INDEX, OnHelpIndex ) příkaz. Pokud je povoleno, rozhraní volá tuto funkci obslužné rutiny zpráv, když uživatel vaší aplikace vybere příkaz Index nápovědy k vyvolání WinHelp se standardním tématem HELP_INDEX .

CWinApp::OnHelpUsing

Zpracovává příkaz ID_HELP_USING.

afx_msg void OnHelpUsing();

Poznámky

Chcete-li povolit tuto členovou funkci, musíte do CWinApp mapy zpráv třídy přidat ON_COMMAND( ID_HELP_USING, OnHelpUsing ) příkaz. Architektura volá tuto funkci obslužné rutiny zpráv, když uživatel vaší aplikace vybere příkaz Použít k vyvolání WinHelp aplikace se standardním tématem HELP_HELPONHELP .

CWinApp::Onidle

Přepište tuto členovou funkci tak, aby prováděla zpracování nečinnosti.

virtual BOOL OnIdle(LONG lCount);

Parametry

LCount
Čítač se při každém OnIdle vyvolání, když je fronta zpráv aplikace prázdná. Tento počet se při každém zpracování nové zprávy resetuje na 0. Pomocí parametru lCount můžete určit relativní dobu nečinnosti aplikace bez zpracování zprávy.

Návratová hodnota

Nenulové pro příjem více doby zpracování nečinnosti; 0, pokud už není potřeba doba nečinnosti.

Poznámky

OnIdle je volána ve výchozí smyčce zpráv, pokud je fronta zpráv aplikace prázdná. Pomocí přepsání můžete volat vlastní úlohy obslužné rutiny nečinnosti na pozadí.

OnIdle by mělo vrátit hodnotu 0, aby bylo uvedeno, že není vyžadována doba nečinnosti zpracování. Parametr lCount se při každém OnIdle zavolání, když je fronta zpráv prázdná a při každém zpracování nové zprávy se resetuje na 0. Na základě tohoto počtu můžete volat různé nečinné rutiny.

Následující shrnutí shrnuje zpracování nečinných smyček:

  1. Pokud smyčka zpráv v knihovně tříd Microsoft Foundation zkontroluje frontu zpráv a nenajde žádné čekající zprávy, volá OnIdle objekt aplikace a poskytuje hodnotu 0 jako argument lCount .

  2. OnIdle provede určité zpracování a vrátí nenulovou hodnotu, která označuje, že by se měla znovu volat, aby bylo možné provést další zpracování.

  3. Smyčka zpráv znovu zkontroluje frontu zpráv. Pokud nejsou žádné zprávy čekají na vyřízení, zavolá OnIdle se znovu a zvýší se argument lCount .

  4. OnIdle Nakonec dokončí zpracování všech nečinných úloh a vrátí hodnotu 0. To říká smyčce zpráv, aby přestala volat OnIdle , dokud se z fronty zpráv neobdrží další zpráva. V tomto okamžiku se nečinný cyklus restartuje s argumentem nastaveným na hodnotu 0.

Během této doby neprovádějte zdlouhavé úlohy OnIdle , protože aplikace nemůže zpracovat vstup uživatele, dokud OnIdle se nevrátí.

Poznámka:

Výchozí implementace OnIdle aktualizací příkazů objekty uživatelského rozhraní, jako jsou položky nabídky a tlačítka panelu nástrojů, a provádí interní vyčištění datové struktury. Proto pokud přepíšete OnIdle, musíte volat CWinApp::OnIdle s lCount v přepsáné verzi. Nejprve zavolejte všechna nečinná zpracování základní třídy (tj. dokud základní třída OnIdle nevrátí hodnotu 0). Pokud potřebujete provést práci před dokončením zpracování základní třídy, zkontrolujte implementaci základní třídy a vyberte správný počet lCount , během kterého chcete pracovat.

Pokud nechcete OnIdle , aby se volala při každém načtení zprávy z fronty zpráv, můžete přepsat CWinThreadIsIsIdleMessage. Pokud aplikace nastavila velmi krátký časovač nebo pokud systém odesílá WM_SYSTIMER zprávu, OnIdle bude volána opakovaně a snižuje výkon.

Příklad

Následující dva příklady ukazují, jak používat OnIdle. První příklad zpracovává dvě nečinné úlohy pomocí argumentu lCount k určení priority úkolů. První úkol má vysokou prioritu a měli byste ho udělat, kdykoli je to možné. Druhý úkol je méně důležitý a měl by být proveden pouze v případě, že je uživatelský vstup dlouhý. Všimněte si volání verze základní třídy OnIdle. Druhý příklad spravuje skupinu nečinných úkolů s různými prioritami.

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

Architektura volá tuto metodu k otevření pojmenovaného souboru CDocument pro aplikaci.

virtual CDocument* OpenDocumentFile(
    LPCTSTR lpszFileName
    BOOL bAddToMRU = TRUE);

Parametry

lpszFileName
[v] Název souboru, který se má otevřít.

bAddToMRU
[v] PRAVDA označuje, že dokument je jedním z nejnovějších souborů; NEPRAVDA označuje, že dokument není jedním z nejnovějších souborů.

Návratová hodnota

Ukazatel na CDocument úspěšné, jinak NULL.

Poznámky

Pokud je dokument s tímto názvem již otevřený, zobrazí se fokus v prvním okně rámečku, které tento dokument obsahuje. Pokud aplikace podporuje více šablon dokumentů, architektura pomocí přípony názvu souboru najde příslušnou šablonu dokumentu k pokusu o načtení dokumentu. V případě úspěchu šablona dokumentu pak vytvoří okno rámečku a zobrazí dokument.

Příklad

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

Voláním této členské funkce parsujete příkazový řádek a po jednom odešlete parametry do CCommandLineInfo::P arseParam.

void ParseCommandLine(CCommandLineInfo& rCmdInfo);

Parametry

rCmdInfo
Odkaz na CCommandLineInfo objektu.

Poznámky

Když spustíte nový projekt MFC pomocí Průvodce aplikací, Průvodce aplikací vytvoří místní instanci CCommandLineInfoa potom zavolá ProcessShellCommand a ParseCommandLine v členské funkci InitInstance . Příkazový řádek se řídí trasou popsanou níže:

  1. Po vytvoření v InitInstanceobjektu CCommandLineInfo se objekt předá ParseCommandLine.

  2. ParseCommandLine pak pro každý parametr volá CCommandLineInfo::ParseParam opakovaně.

  3. ParseParamCCommandLineInfo vyplní objekt, který se pak předá ProcessShellCommand.

  4. ProcessShellCommand zpracovává argumenty a příznaky příkazového řádku.

Všimněte si, že podle potřeby můžete volat ParseCommandLine přímo.

Popis příznaků příkazového řádku najdete v tématu CCommandLineInfo::m_nShellCommand.

CWinApp::P reTranslateMessage

Tuto funkci přepište tak, aby filtrovala zprávy okna před jejich odesláním do funkcí Windows TranslateMessage a DispatchMessage Výchozí implementace provádí překlad akcelerátor-klíč, takže je nutné volat CWinApp::PreTranslateMessage členské funkce ve vaší přepsáné verzi.

virtual BOOL PreTranslateMessage(MSG* pMsg);

Parametry

pMsg
Ukazatel na strukturu MSG , která obsahuje zprávu ke zpracování.

Návratová hodnota

Nenulové, pokud byla zpráva plně zpracována PreTranslateMessage a neměla by být zpracována dále. Nula, pokud by zpráva měla být zpracována normálním způsobem.

CWinApp::P rocessMessageFilter

Funkce háku architektury volá tuto členskou funkci k filtrování a odpovídání na určité zprávy systému Windows.

virtual BOOL ProcessMessageFilter(
    int code,
    LPMSG lpMsg);

Parametry

kód
Určuje kód háku. Tato členová funkce používá kód k určení způsobu zpracování lpMsg.

lpMsg
Ukazatel na tructure msgsystému Windows.

Návratová hodnota

Nenulové, pokud je zpráva zpracována; jinak 0.

Poznámky

Funkce hook zpracovává události před jejich odesláním do normálního zpracování zpráv aplikace.

Pokud tuto pokročilou funkci přepíšete, nezapomeňte volat verzi základní třídy, aby se zachovalo zpracování háku architektury.

CWinApp::P rocessShellCommand

Tato členová funkce je volána initInstance přijmout parametry předané z objektu CCommandLineInfo identifikované rCmdInfo a provést uvedenou akci.

BOOL ProcessShellCommand(CCommandLineInfo& rCmdInfo);

Parametry

rCmdInfo
Odkaz na CCommandLineInfo objektu.

Návratová hodnota

Nenulové, pokud se příkaz prostředí úspěšně zpracuje. Pokud 0, vrátí hodnotu FALSE z instance InitInstance.

Poznámky

Když spustíte nový projekt MFC pomocí Průvodce aplikací, Průvodce aplikací vytvoří místní instanci CCommandLineInfoa pak zavolá ProcessShellCommand a ParseCommandLine ve InitInstance členské funkci. Příkazový řádek se řídí trasou popsanou níže:

  1. Po vytvoření v InitInstanceobjektu CCommandLineInfo se objekt předá ParseCommandLine.

  2. ParseCommandLine potom volá CCommandLineInfo::P arseParam opakovaně, jednou pro každý parametr.

  3. ParseParamCCommandLineInfo vyplní objekt, který se pak předá ProcessShellCommand.

  4. ProcessShellCommand zpracovává argumenty a příznaky příkazového řádku.

Datové členy objektu CCommandLineInfo , identifikované CCommandLineInfo::m_nShellCommand, jsou následující výčtový typ, který je definován v rámci CCommandLineInfo třídy.

enum {
    FileNew,
    FileOpen,
    FilePrint,
    FilePrintTo,
    FileDDE
    };

Stručný popis každé z těchto hodnot najdete v tématu CCommandLineInfo::m_nShellCommand.

CWinApp::P rocessWndProcException

Architektura volá tuto členskou funkci pokaždé, když obslužná rutina nezachytí výjimku vyvolanou v jedné ze zpráv nebo obslužných rutin příkazů vaší aplikace.

virtual LRESULT ProcessWndProcException(
    CException* e,
    const MSG* pMsg);

Parametry

e
Ukazatel na nezachycenou výjimku.

pMsg
Tructure MSG, která obsahuje informace o zprávě windows, která způsobila rozhraní vyvolat výjimku.

Návratová hodnota

Hodnota, která by se měla vrátit do Windows. Obvykle se jedná o 0L pro zprávy windows, 1L (TRUE) pro zprávy příkazů.

Poznámky

Tuto členovu funkci nevolejte přímo.

Výchozí implementace této členské funkce vytvoří okno se zprávou. Pokud nezachycená výjimka pochází z nabídky, panelu nástrojů nebo selhání příkazu akcelerátoru, zobrazí se v okně se zprávou zpráva " Příkaz selhal"; v opačném případě se zobrazí zpráva "Vnitřní chyba aplikace".

Přepište tuto členovou funkci tak, aby poskytovala globální zpracování výjimek. Základní funkce volejte pouze v případě, že chcete, aby se zobrazilo okno se zprávou.

CWinApp::Register

Provádí všechny úlohy registrace, které RegisterShellFileTypesnezpracovává .

virtual BOOL Register();

Návratová hodnota

Nenulové při úspěchu; jinak 0.

Poznámky

Výchozí implementace jednoduše vrátí hodnotu TRUE. Tuto funkci přepište tak, aby poskytovala všechny přizpůsobené kroky registrace.

CWinApp::RegisterShellFileTypes

Voláním této členské funkce zaregistrujte všechny typy dokumentů vaší aplikace ve Správci souborů systému Windows.

void RegisterShellFileTypes(BOOL bCompat = FALSE);

Parametry

bCompat
[v] Pravda přidá položky registrace pro příkazy prostředí Tisk a Tisk do, což uživateli umožňuje tisknout soubory přímo z prostředí nebo přetažením souboru do objektu tiskárny. Přidá také klíč DefaultIcon. Ve výchozím nastavení má tento parametr hodnotu FALSE pro zpětnou kompatibilitu.

Poznámky

To umožňuje uživateli otevřít datový soubor vytvořený vaší aplikací tak, že na něj poklikáním v rámci Správce souborů. Volání RegisterShellFileTypes po volání AddDocTemplate pro každou šablony dokumentů v aplikaci. Při volání volejte RegisterShellFileTypestaké funkci EnableShellOpen člen .

RegisterShellFileTypes iteruje prostřednictvím seznamu CDocTemplate objektů, které aplikace udržuje a pro každou šablonu dokumentu přidá položky do registrační databáze, kterou Systém Windows udržuje pro přidružení souborů. Správce souborů tyto položky používá k otevření datového souboru, když na něj uživatel poklikne. Tím se eliminuje nutnost expedovat . REG soubor s vaší aplikací.

Poznámka:

RegisterShellFileTypes funguje pouze v případě, že uživatel spustí program s právy správce. Pokud program nemá oprávnění správce, nemůže změnit klíče registru.

Pokud registrační databáze již přidruží danou příponu souboru k jinému typu souboru, není vytvořeno žádné nové přidružení. CDocTemplate Prohlédněte si třídu pro formát řetězců potřebných k registraci těchto informací.

CWinApp::RegisterWithRestartManager

Zaregistruje aplikaci ve správci restartování.

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);

Parametry

bRegisterRecoveryCallback
[v] PRAVDA označuje, že tato instance aplikace používá funkci zpětného volání obnovení; NEPRAVDA označuje, že ne. Architektura volá funkci zpětného volání obnovení, když aplikace neočekávaně ukončí. Další informace naleznete v tématu CWinApp::ApplicationRecoveryCallback.

strRestartIdentifier
[v] Jedinečný řetězec, který identifikuje tuto instanci správce restartování. Identifikátor správce restartování je jedinečný pro každou instanci aplikace.

pwzCommandLineArgs
[v] Řetězec, který obsahuje další argumenty z příkazového řádku.

dwRestartFlags
[v] Volitelné příznaky pro správce restartování. Další informace najdete v části Poznámky.

pRecoveryCallback
[v] Funkce zpětného volání obnovení. Tato funkce musí jako vstup převzít parametr LPVOID a vrátit DWORD. Výchozí funkce zpětného volání obnovení je CWinApp::ApplicationRecoveryCallback.

lpvParam
[v] Vstupní parametr pro funkci zpětného volání obnovení. Další informace naleznete v tématu CWinApp::ApplicationRecoveryCallback.

dwPingInterval
[v] Doba, po kterou správce restartování čeká na vrácení funkce zpětného volání obnovení. Tento parametr je v milisekundách.

dwCallbackFlags
[v] Příznaky předané funkci zpětného volání obnovení. Vyhrazeno pro budoucí použití.

Návratová hodnota

S_OK, pokud je metoda úspěšná; jinak kód chyby.

Poznámky

Pokud vaše aplikace používá výchozí implementaci MFC pro automatické ukládání souborů, měli byste použít jednoduchou verzi RegisterWithRestartManager. Pokud chcete přizpůsobit chování automatického ukládání aplikace, použijte složitou verzi RegisterWithRestartManager .

Pokud tuto metodu zavoláte s prázdným řetězcem pro strRestartIdentifier, RegisterWithRestartManager vytvoří jedinečný řetězec identifikátoru pro tuto instanci správce restartování.

Když se aplikace neočekávaně ukončí, správce restartování restartuje aplikaci z příkazového řádku a poskytne jedinečný identifikátor restartování jako volitelný argument. V tomto scénáři architektura volá RegisterWithRestartManager dvakrát. První volání pochází z CWinApp::InitInstance s prázdným řetězcem pro identifikátor řetězce. Pak metoda CWinApp::P rocessShellCommand volání RegisterWithRestartManager s jedinečným identifikátorem restartování.

Po registraci aplikace ve správci restartování monitoruje správce restartování aplikaci. Pokud se aplikace neočekávaně ukončí, správce restartování volá funkci zpětného volání obnovení během procesu vypnutí. Správce restartování čeká dwPingInterval na odpověď z funkce zpětného volání obnovení. Pokud funkce zpětného volání obnovení během této doby nereaguje, aplikace se ukončí bez spuštění funkce zpětného volání obnovení.

Ve výchozím nastavení se dwRestartFlags nepodporují, ale jsou k dispozici pro budoucí použití. Možné hodnoty dwRestartFlags jsou následující:

  • RESTART_NO_CRASH

  • RESTART_NO_HANG

  • RESTART_NO_PATCH

  • RESTART_NO_REBOOT

CWinApp::ReopenPreviousFilesAtRestart

Určuje, zda správce restartování znovu otevře soubory, které byly otevřeny při neočekávaném ukončení aplikace.

virtual BOOL ReopenPreviousFilesAtRestart() const;

Návratová hodnota

PRAVDA označuje, že správce restartování znovu otevře dříve otevřené soubory; NEPRAVDA označuje, že správce restartování ne.

CWinApp::RestartInstance

Zpracovává restartování aplikace iniciované správcem restartování.

virtual BOOL CWinApp::RestartInstance();

Návratová hodnota

TRUE, pokud obslužná rutina obnovení dat otevře dříve otevřené dokumenty; NEPRAVDA, pokud obslužná rutina obnovení dat obsahuje chybu nebo pokud neexistují žádné dříve otevřené dokumenty.

Poznámky

Když správce restartování restartuje aplikaci, architektura volá tuto metodu. Tato metoda načte obslužnou rutinu obnovení dat a obnoví automaticky uložené soubory. Tato metoda volá CDataRecoveryHandler::RestoreAutosavedDocuments k určení, zda chce uživatel obnovit automaticky uložené soubory.

Tato metoda vrátí hodnotu FALSE, pokud CDataRecoveryHandler určuje, že neexistují žádné otevřené dokumenty. Pokud nebyly otevřené dokumenty, aplikace se spustí obvykle.

CWinApp::RestoreAutosavedFilesAtRestart

Určuje, zda správce restartování obnoví automaticky uložené soubory při restartování aplikace.

virtual BOOL RestoreAutosavedFilesAtRestart() const;

Návratová hodnota

TRUE označuje, že správce restartování obnoví automaticky uložené soubory; NEPRAVDA označuje, že správce restartování ne.

CWinApp::Run

Poskytuje výchozí smyčku zpráv.

virtual int Run();

Návratová hodnota

Hodnota vrácená int WinMainhodnotou .

Poznámky

Run získá a odešle zprávy systému Windows, dokud aplikace neobdrží WM_QUIT zprávu. Pokud fronta zpráv aplikace aktuálně neobsahuje žádné zprávy, Run zavolá OnIdle , aby prováděl zpracování nečinnosti. Příchozí zprávy přejdou do členské funkce PreTranslateMessage pro speciální zpracování a potom do funkce TranslateMessage Windows pro standardní překlad klávesnice; nakonec se DispatchMessage volá funkce Windows.

Run zřídka se přepisuje, ale můžete ji přepsat tak, aby poskytovala zvláštní chování.

CWinApp::RunAutomated

Voláním této funkce určíte, jestli je k dispozici možnost /Automation nebo -Automation, která označuje, jestli byla serverová aplikace spuštěna klientskou aplikací.

BOOL RunAutomated();

Návratová hodnota

Nenulové, pokud byla nalezena možnost; jinak 0.

Poznámky

Pokud je tato možnost k dispozici, odebere se z příkazového řádku. Další informace o automatizaci OLE naleznete v článku Automatizační servery.

CWinApp::RunEmbedded

Voláním této funkce určíte, zda je k dispozici možnost /Embedding nebo -Embedding, která označuje, zda byla serverová aplikace spuštěna klientskou aplikací.

BOOL RunEmbedded();

Návratová hodnota

Nenulové, pokud byla nalezena možnost; jinak 0.

Poznámky

Pokud je tato možnost k dispozici, odebere se z příkazového řádku. Další informace o vkládání najdete v článku Servery: Implementace serveru.

CWinApp::SaveAllModified

Volá se rozhraním pro uložení všech dokumentů, když je okno hlavního rámce aplikace zavřené nebo prostřednictvím WM_QUERYENDSESSION zprávy.

virtual BOOL SaveAllModified();

Návratová hodnota

Nenulové, pokud je bezpečné ukončit aplikaci; 0, pokud není bezpečné ukončit aplikaci.

Poznámky

Výchozí implementace této členské funkce volá členské funkce CDocument::SaveModified zase pro všechny změněné dokumenty v aplikaci.

CWinApp::SelectPrinter

Voláním této členské funkce vyberte konkrétní tiskárnu a uvolněte tiskárnu, která byla dříve vybrána v dialogovém okně Tisk.

void SelectPrinter(
    HANDLE hDevNames,
    HANDLE hDevMode,
    BOOL bFreeOld = TRUE);

Parametry

hDevNames
Popisovač tructure DEVNAMES, který identifikuje názvy ovladačů, zařízení a výstupních portů konkrétní tiskárny.

hDevMode
Popisovač struktury DEVMODE , která určuje informace o inicializaci zařízení a prostředí tiskárny.

bFreeOld
Uvolní dříve vybranou tiskárnu.

Poznámky

Pokud jsou hodnoty hDevMode i hDevNames null, SelectPrinter použije aktuální výchozí tiskárnu.

CWinApp::SetHelpMode

Nastaví typ nápovědy aplikace.

void SetHelpMode(AFX_HELP_TYPE eHelpType);

Parametry

eHelpType
Určuje typ nápovědy, která se má použít. Další informace najdete v tématu CWinApp::m_eHelpType .

Poznámky

Nastaví typ nápovědy aplikace.

Chcete-li nastavit typ nápovědy aplikace na HTMLHelp, můžete volat EnableHTMLHelp. Po volání EnableHTMLHelpaplikace musí jako aplikaci nápovědy použít HTMLHelp. Pokud chcete změnit použití WinHelp, můžete volat SetHelpMode a nastavit eHelpType na afxWinHelp.

CWinApp::SetRegistryKey

Způsobí, že se nastavení aplikace uloží v registru místo souborů INI.

void SetRegistryKey(LPCTSTR lpszRegistryKey);
void SetRegistryKey(UINT nIDRegistryKey);

Parametry

lpszRegistryKey
Ukazatel na řetězec obsahující název klíče.

nIDRegistryKey
ID prostředku řetězce obsahujícího název klíče registru.

Poznámky

Tato funkce nastaví m_pszRegistryKey, který pak používá GetProfileIntfunkce , GetProfileString, WriteProfileInta WriteProfileString členské funkce CWinApp. Pokud byla tato funkce volána, seznam naposledy použitých souborů (MRU) je také uložen v registru. Klíč registru je obvykle název společnosti. Je uložen v klíči následujícího formuláře: HKEY_CURRENT_USER\Software\<název>_společnosti\<název>_aplikace\<název>_oddílu\název>_<hodnoty.

CWinApp::SupportsApplicationRecovery

Určuje, zda správce restartování obnoví aplikaci, která se neočekávaně ukončila.

virtual BOOL SupportsApplicationRecovery() const;

Návratová hodnota

TRUE označuje, že správce restartování obnoví aplikaci; NEPRAVDA označuje, že správce restartování ne.

CWinApp::SupportsAutosaveAtInterval

Určuje, zda správce restartování automaticky ukládat dokumenty v pravidelných intervalech.

virtual BOOL SupportsAutosaveAtInterval() const;

Návratová hodnota

PRAVDA označuje, že správce restartování automaticky ukládat otevřené dokumenty; NEPRAVDA označuje, že správce restartování ne.

CWinApp::SupportsAutosaveAtRestart

Určuje, zda správce restartování automaticky ukládat všechny otevřené dokumenty při restartování aplikace.

virtual BOOL SupportsAutosaveAtRestart() const;

Návratová hodnota

TRUE označuje, že správce restartování automaticky ukládat dokumenty při restartování aplikace; NEPRAVDA označuje, že správce restartování ne.

CWinApp::SupportsRestartManager

Určuje, zda aplikace podporuje správce restartování.

virtual BOOL SupportsRestartManager() const;

Návratová hodnota

PRAVDA označuje, že aplikace podporuje správce restartování; NEPRAVDA označuje, že aplikace ne.

CWinApp::Unregister

Zruší registraci všech souborů registrovaných objektem aplikace.

virtual BOOL Unregister();

Návratová hodnota

Nenulové při úspěchu; jinak 0.

Poznámky

Funkce Unregister vrátí zpět registraci provedenou objektem aplikace a funkcí Register . Za normálníchokolnostch

Přepište tuto funkci tak, aby prováděla vlastní kroky zrušení registrace.

CWinApp::UnregisterShellFileTypes

Voláním této členské funkce zrušíte registraci všech typů dokumentů aplikace pomocí Správce souborů systému Windows.

void UnregisterShellFileTypes();

CWinApp::WinHelp

Voláním této členské funkce vyvoláte aplikaci WinHelp.

virtual void WinHelp(
    DWORD_PTR dwData,
    UINT nCmd = HELP_CONTEXT);

Parametry

dwData
Určuje další data. Použitá hodnota závisí na hodnotě parametru nCmd .

nCmd
Určuje typ požadované nápovědy. Seznammožnýchch

Poznámky

Architektura také volá tuto funkci k vyvolání aplikace WinHelp.

Architektura automaticky zavře aplikaci WinHelp při ukončení vaší aplikace.

Příklad

// 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

Voláním této členské funkce zapíšete binární data do zadané části registru aplikace nebo . SOUBOR INI.

BOOL WriteProfileBinary(
    LPCTSTR lpszSection,
    LPCTSTR lpszEntry,
    LPBYTE pData,
    UINT nBytes);

Parametry

lpszSection
Odkazuje na řetězec zakončený hodnotou null, který určuje oddíl obsahující položku. Pokud oddíl neexistuje, vytvoří se. Název oddílu je nezávislý na velikosti písmen; řetězec může být libovolná kombinace velkých a malých písmen.

lpszEntry
Odkazuje na řetězec ukončený hodnotou null, který obsahuje položku, do které se má zapsat hodnota. Pokud položka v zadané části neexistuje, vytvoří se.

pData
Odkazuje na data, která se mají zapsat.

nBajty
Obsahuje počet bajtů, které se mají zapsat.

Návratová hodnota

Nenulové, pokud je úspěšné; jinak 0.

Příklad

Tento příklad používá CWinApp* pApp = AfxGetApp(); k získání v CWinApp třídy ilustrující způsob, který WriteProfileBinary lze GetProfileBinary použít z jakékoli funkce v aplikaci 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

Další příklad najdete v příkladu pro CWinApp::GetProfileBinary.

CWinApp::WriteProfileInt

Voláním této členské funkce zapíšete zadanou hodnotu do zadané části registru aplikace nebo . SOUBOR INI.

BOOL WriteProfileInt(
    LPCTSTR lpszSection,
    LPCTSTR lpszEntry,
    int nValue);

Parametry

lpszSection
Odkazuje na řetězec zakončený hodnotou null, který určuje oddíl obsahující položku. Pokud oddíl neexistuje, vytvoří se. Název oddílu je nezávislý na velikosti písmen; řetězec může být libovolná kombinace velkých a malých písmen.

lpszEntry
Odkazuje na řetězec ukončený hodnotou null, který obsahuje položku, do které se má zapsat hodnota. Pokud položka v zadané části neexistuje, vytvoří se.

nValue
Obsahuje hodnotu, která se má zapsat.

Návratová hodnota

Nenulové, pokud je úspěšné; jinak 0.

Příklad

Tento příklad používá CWinApp* pApp = AfxGetApp(); k získání v CWinApp třídy ilustrující způsob WriteProfileString, WriteProfileInt, GetProfileStringa GetProfileInt lze použít z libovolné funkce v aplikaci 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);

Další příklad najdete v příkladu pro CWinApp::GetProfileInt.

CWinApp::WriteProfileString

Voláním této členské funkce zapíšete zadaný řetězec do zadané části registru aplikace nebo . SOUBOR INI.

BOOL WriteProfileString(
    LPCTSTR lpszSection,
    LPCTSTR lpszEntry,
    LPCTSTR lpszValue);

Parametry

lpszSection
Odkazuje na řetězec zakončený hodnotou null, který určuje oddíl obsahující položku. Pokud oddíl neexistuje, vytvoří se. Název oddílu je nezávislý na velikosti písmen; řetězec může být libovolná kombinace velkých a malých písmen.

lpszEntry
Odkazuje na řetězec ukončený hodnotou null, který obsahuje položku, do které se má zapsat hodnota. Pokud položka v zadané části neexistuje, vytvoří se. Pokud je tento parametr NULL, oddíl určený lpszSection se odstraní.

lpszValue
Odkazuje na řetězec, který se má zapsat. Pokud je tento parametr NULL, položka zadaná parametrem lpszEntry se odstraní.

Návratová hodnota

Nenulové, pokud je úspěšné; jinak 0.

Příklad

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);

Další příklad najdete v příkladu pro CWinApp::GetProfileInt.

CWinApp::SetAppID

Explicitně nastaví ID modelu uživatele aplikace pro aplikaci. Tato metoda by měla být volána před zobrazením uživatelského rozhraní uživateli (nejlepším místem je konstruktor aplikace).

void SetAppID(LPCTSTR lpcszAppID);

Parametry

lpcszAppID
Určuje ID modelu uživatele aplikace.

Poznámky

Viz také

CWinThread – třída
Graf hierarchie
Postupy: Přidání podpory správce restartování