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žijtem_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í.CWinApp
role v pořadí provádění vaší aplikace.CWinApp
výchozí implementace členské funkce.CWinApp
Klíč 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
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 CloseAllDocuments
HideApplication .
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
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 - CWinApp
odvozené 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 zadejteafxWinHelp
.
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 _tcsdup
funkci 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 _tcsdup
funkci 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 _tcsdup
funkci 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 _tcsdup
funkci 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 _tcsdup
funkci 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:
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 .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í.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 .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 volatOnIdle
, 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 CCommandLineInfo
a potom zavolá ProcessShellCommand
a ParseCommandLine
v členské funkci InitInstance . Příkazový řádek se řídí trasou popsanou níže:
Po vytvoření v
InitInstance
objektuCCommandLineInfo
se objekt předáParseCommandLine
.ParseCommandLine
pak pro každý parametr voláCCommandLineInfo::ParseParam
opakovaně.ParseParam
CCommandLineInfo
vyplní objekt, který se pak předá ProcessShellCommand.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 CCommandLineInfo
a pak zavolá ProcessShellCommand
a ParseCommandLine ve InitInstance
členské funkci. Příkazový řádek se řídí trasou popsanou níže:
Po vytvoření v
InitInstance
objektuCCommandLineInfo
se objekt předáParseCommandLine
.ParseCommandLine
potom volá CCommandLineInfo::P arseParam opakovaně, jednou pro každý parametr.ParseParam
CCommandLineInfo
vyplní objekt, který se pak předáProcessShellCommand
.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é RegisterShellFileTypes
nezpracová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 RegisterShellFileTypes
také 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
WinMain
hodnotou .
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í EnableHTMLHelp
aplikace 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á GetProfileInt
funkce , GetProfileString
, WriteProfileInt
a 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
, GetProfileString
a 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í