CWinApp-klass
Basklassen som du härleder ett Windows-programobjekt från.
Syntax
class CWinApp : public CWinThread
Medlemmar
Offentliga konstruktorer
Namn | Beskrivning |
---|---|
CWinApp::CWinApp | Konstruerar ett CWinApp objekt. |
Offentliga metoder
Namn | Beskrivning |
---|---|
CWinApp::AddDocTemplate | Lägger till en dokumentmall i programmets lista över tillgängliga dokumentmallar. |
CWinApp::AddToRecentFileList | Lägger till ett filnamn i den senast använda fillistan (MRU). |
CWinApp::ApplicationRecoveryCallback | Anropas av ramverket när programmet oväntat avslutas. |
CWinApp::CloseAllDocuments | Stänger alla öppna dokument. |
CWinApp::CreatePrinterDC | Skapar en skrivarenhetskontext. |
CWinApp::D elRegTree | Tar bort en angiven nyckel och alla dess undernycklar. |
CWinApp::D oMessageBox | Implementerar AfxMessageBox- för programmet. |
CWinApp::D oWaitCursor | Aktiverar och inaktiverar väntemarkören. |
CWinApp::EnableD2DSupport | Aktiverar program-D2D-stöd. Anropa den här metoden innan huvudfönstret initieras. |
CWinApp::EnableHtmlHelp | Implementerar HTMLHjälp för programmet i stället för WinHelp. |
CWinApp::EnableTaskbarInteraction | Aktiverar interaktion med aktivitetsfältet. |
CWinApp::ExitInstance | Åsidosätt för att rensa när programmet avslutas. |
CWinApp::GetApplicationRecoveryParameter | Hämtar indataparametern för programåterställningsmetoden. |
CWinApp::GetApplicationRecoveryPingInterval | Returnerar hur lång tid omstartshanteraren väntar på att återställningsåteranropsfunktionen ska returneras. |
CWinApp::GetApplicationRestartFlags | Returnerar flaggorna för omstartshanteraren. |
CWinApp::GetAppRegistryKey | Returnerar nyckeln för HKEY_CURRENT_USER\"Software"\RegistryKey\ProfileName. |
CWinApp::GetDataRecoveryHandler | Hämtar dataåterställningshanteraren för den här instansen av programmet. |
CWinApp::GetFirstDocTemplatePosition | Hämtar positionen för den första dokumentmallen. |
CWinApp::GetHelpMode | Hämtar den typ av hjälp som används av programmet. |
CWinApp::GetNextDocTemplate | Hämtar positionen för en dokumentmall. Kan användas rekursivt. |
CWinApp::GetPrinterDeviceDefaults | Hämtar standardinställningarna för skrivarenheten. |
CWinApp::GetProfileBinary | Hämtar binära data från en post i programmets . INI-fil. |
CWinApp::GetProfileInt | Hämtar ett heltal från en post i programmets . INI-fil. |
CWinApp::GetProfileString | Hämtar en sträng från en post i programmets . INI-fil. |
CWinApp::GetSectionKey | Returnerar nyckeln för HKEY_CURRENT_USER\"Software"\RegistryKey\AppName\lpszSection. |
CWinApp::HideApplication | Döljer programmet innan du stänger alla dokument. |
CWinApp::HtmlHelp | Anropar funktionen HTMLHelp Windows. |
CWinApp::InitInstance | Åsidosätt för att utföra initiering av Windows-instanser, till exempel att skapa dina fönsterobjekt. |
CWinApp::IsTaskbarInteractionEnabled | Anger om interaktion med Aktivitetsfältet i Windows 7 är aktiverat. |
CWinApp::LoadCursor | Läser in en markörresurs. |
CWinApp::LoadIcon | Läser in en ikonresurs. |
CWinApp::LoadOEMCursor | Läser in en fördefinierad Windows OEM-markör som OCR_ konstanter anger i WINDOWS.H. |
CWinApp::LoadOEMIcon | Läser in en fördefinierad Windows OEM-ikon som OIC_ konstanter anger i WINDOWS.H. |
CWinApp::LoadStandardCursor | Läser in en fördefinierad Windows-markör som IDC_ konstanter anger i WINDOWS.H. |
CWinApp::LoadStandardIcon | Läser in en fördefinierad Windows-ikon som IDI_ konstanter anger i WINDOWS.H. |
CWinApp::OnDDECommand | Anropas av ramverket som svar på ett DDE-körningskommando (Dynamic Data Exchange). |
CWinApp::OnIdle | Åsidosätt för att utföra programspecifik bearbetning av inaktivitetstid. |
CWinApp::OpenDocumentFile | Anropas av ramverket för att öppna ett dokument från en fil. |
CWinApp::P arseCommandLine | Parsar enskilda parametrar och flaggor på kommandoraden. |
CWinApp::P reTranslateMessage | Filtrerar meddelanden innan de skickas till Windows-funktionerna TranslateMessage och DispatchMessage. |
CWinApp::P rocessMessageFilter | Fångar upp vissa meddelanden innan de når programmet. |
CWinApp::P rocessShellCommand | Hanterar kommandoradsargument och flaggor. |
CWinApp::P rocessWndProcException | Fångar upp alla ohanterade undantag som genereras av programmets meddelande- och kommandohanterare. |
CWinApp::Registrera | Utför anpassad registrering. |
CWinApp::RegisterWithRestartManager | Registrerar programmet med omstartshanteraren. |
CWinApp::ReopenPreviousFilesAtRestart | Avgör om omstartshanteraren öppnar filerna som var öppna när programmet avslutades oväntat. |
CWinApp::RestartInstance | Hanterar en omstart av programmet som initieras av omstartshanteraren. |
CWinApp::RestoreAutosavedFilesAtRestart | Avgör om omstartshanteraren återställer filer som sparats automatiskt när programmet startas om. |
CWinApp::Kör | Kör standardmeddelandeloopen. Åsidosätt för att anpassa meddelandeloopen. |
CWinApp::RunAutomated | Testar programmets kommandorad för alternativet /Automation. Föråldrad. Använd i stället värdet i CCommandLineInfo::m_bRunAutomated efter att ha anropat ParseCommandLine. |
CWinApp::RunEmbedded | Testar programmets kommandorad för alternativet /Embedding. Föråldrad. Använd i stället värdet i CCommandLineInfo::m_bRunEmbedded efter att ha anropat ParseCommandLine. |
CWinApp::SaveAllModified | Uppmanar användaren att spara alla ändrade dokument. |
CWinApp::SelectPrinter | Väljer en skrivare som tidigare angetts av en användare via en utskriftsdialogruta. |
CWinApp::SetHelpMode | Anger och initierar den typ av hjälp som används av programmet. |
CWinApp::SupportsApplicationRecovery | Avgör om omstartshanteraren återställer ett program som oväntat avslutades. |
CWinApp::SupportsAutosaveAtInterval | Avgör om omstartshanteraren automatiskt ska spara öppna dokument med jämna mellanrum. |
CWinApp::SupportsAutosaveAtRestart | Avgör om omstartshanteraren automatiskt ska spara öppna dokument när programmet startas om. |
CWinApp::SupportsRestartManager | Avgör om programmet stöder omstartshanteraren. |
CWinApp::Avregistrera | Avregistrerar allt som är känt för att registreras av CWinApp -objektet. |
CWinApp::WinHelp | Anropar funktionen WinHelp Windows. |
CWinApp::WriteProfileBinary | Skriver binära data till en post i programmets . INI-fil. |
CWinApp::WriteProfileInt | Skriver ett heltal till en post i programmets . INI-fil. |
CWinApp::WriteProfileString | Skriver en sträng till en post i programmets . INI-fil. |
Skyddade metoder
Namn | Beskrivning |
---|---|
CWinApp::EnableShellOpen | Tillåter att användaren öppnar datafiler från Windows-filhanteraren. |
CWinApp::LoadStdProfileSettings | Läser in standard . INI-filinställningar och aktiverar funktionen FÖR MRU-fillista. |
CWinApp::OnContextHelp | Hanterar SKIFT+F1-hjälpen i programmet. |
CWinApp::OnFileNy | Implementerar kommandot ID_FILE_NEW. |
CWinApp::OnFileOpen | Implementerar kommandot ID_FILE_OPEN. |
CWinApp::OnFilePrintSetup | Implementerar kommandot ID_FILE_PRINT_SETUP. |
CWinApp::OnHelp | Hanterar F1-hjälpen i programmet (med den aktuella kontexten). |
CWinApp::OnHelpFinder | Hanterar kommandona ID_HELP_FINDER och ID_DEFAULT_HELP. |
CWinApp::OnHelpIndex | Hanterar kommandot ID_HELP_INDEX och innehåller ett standardavsnitt för hjälp. |
CWinApp::OnHelpUsing | Hanterar kommandot ID_HELP_USING. |
CWinApp::RegisterShellFileTypes | Registrerar alla programdokumenttyper med Windows-filhanteraren. |
CWinApp::SetAppID | Anger uttryckligen programanvändarmodell-ID för programmet. Den här metoden bör anropas innan något användargränssnitt visas för användaren (det bästa stället är programkonstruktorn). |
CWinApp::SetRegistryKey | Gör att programinställningarna lagras i registret i stället för . INI-filer. |
CWinApp::AvregistreraShellFileTypes | Avregistrerar alla programdokumenttyper med Windows-filhanteraren. |
Medlemmar i offentliga data
Namn | Beskrivning |
---|---|
CWinApp::m_bHelpMode | Anger om användaren är i hjälpkontextläge (anropas vanligtvis med SKIFT+F1). |
CWinApp::m_eHelpType | Anger vilken typ av hjälp som används av programmet. |
CWinApp::m_hInstance | Identifierar den aktuella instansen av programmet. |
CWinApp::m_lpCmdLine | Pekar på en null-avslutad sträng som anger kommandoraden för programmet. |
CWinApp::m_nCmdShow | Anger hur fönstret ska visas från början. |
CWinApp::m_pActiveWnd | Pekare till huvudfönstret i containerprogrammet när en OLE-server är aktiv på plats. |
CWinApp::m_pszAppID | Programanvändarmodell-ID. |
CWinApp::m_pszAppName | Anger namnet på programmet. |
CWinApp::m_pszExeName | Programmets modulnamn. |
CWinApp::m_pszHelpFilePath | Sökvägen till programmets hjälpfil. |
CWinApp::m_pszProfileName | Programmets . INI-filnamn. |
CWinApp::m_pszRegistryKey | Används för att fastställa den fullständiga registernyckeln för lagring av programprofilinställningar. |
Skyddade datamedlemmar
Namn | Beskrivning |
---|---|
CWinApp::m_dwRestartManagerSupportFlags | Flaggor som avgör hur omstartshanteraren fungerar. |
CWinApp::m_nAutosaveInterval | Längden på tiden i millisekunder mellan autospar. |
CWinApp::m_pDataRecoveryHandler | Pekare till dataåterställningshanteraren för programmet. |
Anmärkningar
Ett programobjekt innehåller medlemsfunktioner för att initiera ditt program (och varje instans av det) och för att köra programmet.
Varje program som använder Microsoft Foundation-klasserna kan bara innehålla ett objekt som härleds från CWinApp
. Det här objektet konstrueras när andra globala C++-objekt konstrueras och redan är tillgängligt när Windows anropar funktionen WinMain
, som tillhandahålls av Microsoft Foundation-klassbiblioteket. Deklarera ditt härledda CWinApp
objekt på global nivå.
När du härleder en programklass från CWinApp
åsidosätter du funktionen InitInstance medlem för att skapa programmets huvudfönsterobjekt.
Förutom de CWinApp
medlemsfunktionerna tillhandahåller Microsoft Foundation-klassbiblioteket följande globala funktioner för att få åtkomst till ditt CWinApp
-objekt och annan global information:
AfxGetApp Hämtar en pekare till
CWinApp
-objektet.AfxGetInstanceHandle Hämtar ett handtag till den aktuella programinstansen.
AfxGetResourceHandle Hämtar ett handtag till programmets resurser.
AfxGetAppName Hämtar en pekare till en sträng som innehåller programmets namn. Om du har en pekare till
CWinApp
-objektet kan du också användam_pszExeName
för att hämta programmets namn.
Mer information om klassen CWinApp
finns i CWinApp: Application Class, inklusive en översikt över följande:
CWinApp
-härledd kod som skrivits av programguiden.CWinApp
roll i körningssekvensen för ditt program.CWinApp
standardimplementeringar för medlemsfunktioner.CWinApp
viktigaste overridables.
Den m_hPrevInstance
datamedlemmen finns inte längre. Om du vill ta reda på om en annan instans av programmet körs använder du en namngiven mutex. Om det inte går att öppna mutex finns det inga andra instanser av programmet som körs.
Arvshierarki
CWinApp
Krav
rubrik: afxwin.h
CWinApp::AddDocTemplate
Anropa den här medlemsfunktionen för att lägga till en dokumentmall i listan över tillgängliga dokumentmallar som programmet underhåller.
void AddDocTemplate(CDocTemplate* pTemplate);
Parametrar
pTemplate
En pekare till CDocTemplate
som ska läggas till.
Anmärkningar
Du bör lägga till alla dokumentmallar i ett program innan du anropar RegisterShellFileTypes.
Exempel
// 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
Anropa den här medlemsfunktionen för att lägga till lpszPathName- i MRU-fillistan.
virtual void AddToRecentFileList(LPCTSTR lpszPathName);
Parametrar
lpszPathName
Sökvägen till filen.
Anmärkningar
Du bör anropa funktionen LoadStdProfileSettings medlem för att läsa in den aktuella MRU-fillistan innan du använder den här medlemsfunktionen.
Ramverket anropar den här medlemsfunktionen när den öppnar en fil eller kör kommandot Spara som för att spara en fil med ett nytt namn.
Exempel
// 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
Anropas av ramverket när programmet oväntat avslutas.
virtual DWORD ApplicationRecoveryCallback(LPVOID lpvParam);
Parametrar
lpvParam
[i] Reserverad för framtida användning.
Returvärde
0 om den här metoden lyckas; nonzero om ett fel inträffar.
Anmärkningar
Om programmet stöder omstartshanteraren anropar ramverket den här funktionen när programmet oväntat avslutas.
Standardimplementeringen av ApplicationRecoveryCallback
använder CDataRecoveryHandler
för att spara listan över öppna dokument i registret. Den här metoden sparar inga filer automatiskt.
Om du vill anpassa beteendet åsidosätter du den här funktionen i en härledd CWinApp Class- eller skickar din egen programåterställningsmetod som en parameter för att CWinApp::RegisterWithRestartManager.
CWinApp::CloseAllDocuments
Anropa den här medlemsfunktionen för att stänga alla öppna dokument innan du avslutar.
void CloseAllDocuments(BOOL bEndSession);
Parametrar
bEndSession
Anger om Windows-sessionen avslutas eller inte. Det är SANT om sessionen avslutas. annars FALSKT.
Anmärkningar
Anropa HideApplication- innan du anropar CloseAllDocuments
.
CWinApp::CreatePrinterDC
Anropa den här medlemsfunktionen för att skapa en skrivarenhetskontext (DC) från den valda skrivaren.
BOOL CreatePrinterDC(CDC& dc);
Parametrar
dc
En referens till en skrivarenhetskontext.
Returvärde
Nonzero om skrivarenhetens kontext har skapats. annars 0.
Anmärkningar
CreatePrinterDC
initierar enhetskontexten som du skickar in med referens, så att du kan använda den för att skriva ut.
Om funktionen lyckas måste du förstöra enhetskontexten när du är klar med utskriften. Du kan låta destruktor för CDC- objekt göra det, eller så kan du göra det explicit genom att anropa CDC::D eleteDC.
CWinApp::CWinApp
Konstruerar ett CWinApp
objekt och skickar lpszAppName- som ska lagras som programnamn.
CWinApp(LPCTSTR lpszAppName = NULL);
Parametrar
lpszAppName
En null-avslutad sträng som innehåller programnamnet som Windows använder. Om det här argumentet inte anges eller är NULL använder CWinApp
resurssträngen AFX_IDS_APP_TITLE eller filnamnet för den körbara filen.
Anmärkningar
Du bör skapa ett globalt objekt i klassen CWinApp
-derived. Du kan bara ha ett CWinApp
objekt i ditt program. Konstruktorn lagrar en pekare till CWinApp
-objektet så att WinMain
kan anropa objektets medlemsfunktioner för att initiera och köra programmet.
CWinApp::D elRegTree
Tar bort en specifik registernyckel och alla dess undernycklar.
LONG DelRegTree(
HKEY hParentKey,
const CString& strKeyName);
LONG DelRegTree(
HKEY hParentKey,
const CString& strKeyName,
CAtlTransactionManager* pTM = NULL);
Parametrar
hParentKey
Hantera till en registernyckel.
strKeyName
Namnet på registernyckeln som ska tas bort.
pTM-
Pekare till CAtlTransactionManager-objekt.
Returvärde
Om funktionen lyckas är returvärdet ERROR_SUCCESS. Om funktionen misslyckas är returvärdet en felkod som inte är noll som definierats i Winerror.h.
Anmärkningar
Anropa den här funktionen för att ta bort den angivna nyckeln och dess undernycklar.
CWinApp::D oMessageBox
Ramverket anropar den här medlemsfunktionen för att implementera en meddelanderuta för den globala funktionen AfxMessageBox.
virtual int DoMessageBox(
LPCTSTR lpszPrompt,
UINT nType,
UINT nIDPrompt);
Parametrar
lpszPrompt
Textadress i meddelanderutan.
nType
Meddelanderutan formatmallen.
nIDPrompt
Ett index till en hjälpkontextsträng.
Returvärde
Returnerar samma värden som AfxMessageBox
.
Anmärkningar
Anropa inte den här medlemsfunktionen för att öppna en meddelanderuta. använd AfxMessageBox
i stället.
Åsidosätt den här medlemsfunktionen för att anpassa din programomfattande bearbetning av AfxMessageBox
-anrop.
CWinApp::D oWaitCursor
Den här medlemsfunktionen anropas av ramverket för att implementera CWaitCursor, CCmdTarget::BeginWaitCursor, CCmdTarget::EndWaitCursoroch CCmdTarget::RestoreWaitCursor.
virtual void DoWaitCursor(int nCode);
Parametrar
nCode
Om den här parametern är 1 visas en väntemarkör. Om 0 återställs väntemarkören utan att öka referensantalet. Om -1 slutar väntemarkören.
Anmärkningar
Standardinställningen implementerar en timglasmarkör.
DoWaitCursor
upprätthåller ett referensantal. När det är positivt visas timglasmarkören.
Även om du normalt inte anropar DoWaitCursor
direkt kan du åsidosätta den här medlemsfunktionen för att ändra väntemarkören eller utföra ytterligare bearbetning medan väntemarkören visas.
Använd CWaitCursor
för ett enklare och effektivare sätt att implementera en väntemarkör.
Exempel
// 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
Visual Studio 2010 SP1 krävs.
Aktiverar program-D2D-stöd. Anropa den här metoden innan huvudfönstret initieras.
BOOL EnableD2DSupport(
D2D1_FACTORY_TYPE d2dFactoryType = D2D1_FACTORY_TYPE_SINGLE_THREADED,
DWRITE_FACTORY_TYPE writeFactoryType = DWRITE_FACTORY_TYPE_SHARED);
Parametrar
d2dFactoryType
Trådningsmodellen för D2D-fabriken och de resurser som skapas.
writeFactoryType
Ett värde som anger om skrivfabriksobjektet ska delas eller isoleras
Returvärde
Returnerar TRUE om D2D-stöd har aktiverats, FALSE – annars
CWinApp::EnableHtmlHelp
Anropa den här medlemsfunktionen inifrån konstruktorn för din CWinApp
-derived-klass för att använda HTMLHjälp för programmets hjälp.
void EnableHtmlHelp();
Anmärkningar
CWinApp::EnableShellOpen
Anropa den här funktionen, vanligtvis från din InitInstance
åsidosättning, för att göra det möjligt för programmets användare att öppna datafiler när de dubbelklickar på filerna från Windows-filhanteraren.
void EnableShellOpen();
Anmärkningar
Anropa funktionen RegisterShellFileTypes
medlem tillsammans med den här funktionen eller ange en . REG-fil med ditt program för manuell registrering av dokumenttyper.
Exempel
// 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
Aktiverar interaktion med aktivitetsfältet.
BOOL EnableTaskbarInteraction(BOOL bEnable = TRUE);
Parametrar
bEnable
Anger om interaktion med Aktivitetsfältet i Windows 7 ska vara aktiverat (TRUE) eller inaktiverat (FALSE).
Returvärde
Returnerar TRUE om interaktion med aktivitetsfältet kan aktiveras eller inaktiveras.
Anmärkningar
Den här metoden måste anropas innan huvudfönstret skapas, annars bekräftas och returneras FALSE.
CWinApp::ExitInstance
Anropas av ramverket inifrån funktionen Run
medlem för att avsluta den här instansen av programmet.
virtual int ExitInstance();
Returvärde
Programmets slutkod; 0 anger inga fel och värden större än 0 indikerar ett fel. Det här värdet används som returvärde från WinMain
.
Anmärkningar
Anropa inte den här medlemsfunktionen var som helst, men i funktionen Run
medlem.
Standardimplementeringen av den här funktionen skriver ramverksalternativ till programmets . INI-fil. Åsidosätt den här funktionen för att rensa när programmet avslutas.
Exempel
int CMyApp::ExitInstance()
{
if (m_pMySampleMem)
delete m_pMySampleMem;
DoCleanup();
return CWinApp::ExitInstance();
}
CWinApp::GetApplicationRecoveryParameter
Hämtar indataparametern för programåterställningsmetoden.
virtual LPVOID GetApplicationRecoveryParameter();
Returvärde
Standardindataparametern för programåterställningsmetoden.
Anmärkningar
Standardbeteendet för den här funktionen returnerar NULL.
Mer information finns i CWinApp::ApplicationRecoveryCallback.
CWinApp::GetApplicationRecoveryPingInterval
Returnerar hur lång tid omstartshanteraren väntar på att återställningsåteranropsfunktionen ska returneras.
virtual DWORD GetApplicationRecoveryPingInterval();
Returvärde
Längden på tiden i millisekunder.
Anmärkningar
När ett program som är registrerat med omstartshanteraren avslutas oväntat försöker programmet spara öppna dokument och anropar återanropsfunktionen för återställning. Standardåteranropsfunktionen för återställning är CWinApp::ApplicationRecoveryCallback.
Hur lång tid ramverket väntar på att återställningsåteranropsfunktionen ska returnera är pingintervallet. Du kan anpassa pingintervallet genom att åsidosätta CWinApp::GetApplicationRecoveryPingInterval
eller genom att ange ett anpassat värde för att RegisterWithRestartManager
.
CWinApp::GetApplicationRestartFlags
Returnerar flaggorna för omstartshanteraren.
virtual DWORD GetApplicationRestartFlags();
Returvärde
Flaggorna för omstartshanteraren. Standardimplementeringen returnerar 0.
Anmärkningar
Flaggorna för omstartshanteraren har ingen effekt med standardimplementeringen. De tillhandahålls för framtida användning.
Du anger flaggorna när du registrerar programmet med omstartshanteraren med hjälp av CWinApp::RegisterWithRestartManager.
Möjliga värden för omstartshanterarens flaggor är följande:
RESTART_NO_CRASH
RESTART_NO_HANG
RESTART_NO_PATCH
RESTART_NO_REBOOT
CWinApp::GetAppRegistryKey
Returnerar nyckeln för HKEY_CURRENT_USER\"Software"\RegistryKey\ProfileName.
HKEY GetAppRegistryKey(CAtlTransactionManager* pTM = NULL);
Parametrar
pTM-
Pekare till ett CAtlTransactionManager
objekt.
Returvärde
Programnyckel om funktionen lyckas; annars NULL.
Anmärkningar
CWinApp::GetDataRecoveryHandler
Hämtar dataåterställningshanteraren för den här instansen av programmet.
virtual CDataRecoveryHandler *GetDataRecoveryHandler();
Returvärde
Dataåterställningshanteraren för den här instansen av programmet.
Anmärkningar
Varje program som använder omstartshanteraren måste ha en instans av CDataRecoveryHandler Class. Den här klassen ansvarar för att övervaka öppna dokument och spara filer automatiskt. Beteendet för CDataRecoveryHandler
beror på konfigurationen av omstartshanteraren. Mer information finns i CDataRecoveryHandler Class.
Den här metoden returnerar NULL på operativsystem som är tidigare än Windows Vista. Omstartshanteraren stöds inte på tidigare operativsystem än Windows Vista.
Om programmet för närvarande inte har någon dataåterställningshanterare skapar den här metoden en och returnerar en pekare till den.
CWinApp::GetFirstDocTemplatePosition
Hämtar positionen för den första dokumentmallen i programmet.
POSITION GetFirstDocTemplatePosition() const;
Returvärde
Ett POSITION-värde som kan användas för iteration eller hämtning av objektpekare. NULL om listan är tom.
Anmärkningar
Använd värdet POSITION som returneras i ett anrop för att GetNextDocTemplate för att hämta det första CDocTemplate--objektet.
CWinApp::GetHelpMode
Hämtar den typ av hjälp som används av programmet.
AFX_HELP_TYPE GetHelpMode();
Returvärde
Hjälptypen som används av programmet. Mer information finns i CWinApp::m_eHelpType.
CWinApp::GetNextDocTemplate
Hämtar dokumentmallen som identifieras av posoch anger sedan pos till VÄRDET POSITION.
CDocTemplate* GetNextDocTemplate(POSITION& pos) const;
Parametrar
pos
En referens till ett POSITION-värde som returnerades av ett tidigare anrop till GetNextDocTemplate
eller GetFirstDocTemplatePosition. Värdet uppdateras till nästa position av det här anropet.
Returvärde
En pekare till ett CDocTemplate-objekt.
Anmärkningar
Du kan använda GetNextDocTemplate
i en iterationsloop om du upprättar den första positionen med ett anrop till GetFirstDocTemplatePosition
.
Du måste se till att ditt POSITION-värde är giltigt. Om den är ogiltig hävdar felsökningsversionen av Microsoft Foundation-klassbiblioteket.
Om den hämtade dokumentmallen är den senast tillgängliga anges det nya värdet för pos till NULL.
CWinApp::GetPrinterDeviceDefaults
Anropa den här medlemsfunktionen för att förbereda en skrivarenhetskontext för utskrift.
BOOL GetPrinterDeviceDefaults(struct tagPDA* pPrintDlg);
Parametrar
pPrintDlg
En pekare till en PRINTDLG- struktur.
Returvärde
Nonzero om det lyckas; annars 0.
Anmärkningar
Hämtar den aktuella skrivarens standardvärden från Windows . INI-fil efter behov eller använder den senaste skrivarkonfigurationen som angetts av användaren i utskriftsinstallationen.
Exempel
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
Anropa den här medlemsfunktionen för att hämta binära data från en post i ett angivet avsnitt i programmets register eller . INI-fil.
BOOL GetProfileBinary(
LPCTSTR lpszSection,
LPCTSTR lpszEntry,
LPBYTE* ppData,
UINT* pBytes);
Parametrar
lpszSection
Pekar på en null-avslutad sträng som anger avsnittet som innehåller posten.
lpszEntry
Pekar på en null-avslutad sträng som innehåller posten vars värde ska hämtas.
ppData
Pekar på en pekare som tar emot dataadressen.
pBytes
Pekar på en UINT som tar emot datastorleken (i byte).
Returvärde
Nonzero om det lyckas; annars 0.
Anmärkningar
Den här medlemsfunktionen är inte skiftlägeskänslig, så strängarna i lpszSection och lpszEntry parametrar kan skilja sig åt om det gäller.
Not
GetProfileBinary
allokerar en buffert och returnerar adressen i * ppData. Anroparen ansvarar för att frigöra bufferten med ta bort [].
Viktig
Data som returneras av den här funktionen är inte nödvändigtvis NULL avslutade och anroparen måste utföra verifiering. Mer information finns i Undvika buffertöverskridningar.
Exempel
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
Ett annat exempel finns i CWinApp::WriteProfileBinary.
CWinApp::GetProfileInt
Anropa den här medlemsfunktionen för att hämta värdet för ett heltal från en post i ett angivet avsnitt i programmets register eller . INI-fil.
UINT GetProfileInt(
LPCTSTR lpszSection,
LPCTSTR lpszEntry,
int nDefault);
Parametrar
lpszSection
Pekar på en null-avslutad sträng som anger avsnittet som innehåller posten.
lpszEntry
Pekar på en null-avslutad sträng som innehåller posten vars värde ska hämtas.
nDefault
Anger standardvärdet som ska returneras om ramverket inte kan hitta posten.
Returvärde
Heltalsvärdet för strängen som följer den angivna posten om funktionen lyckas. Returvärdet är värdet för parametern nDefault om funktionen inte hittar posten. Returvärdet är 0 om värdet som motsvarar den angivna posten inte är ett heltal.
Den här medlemsfunktionen stöder hexadecimal notation för värdet i . INI-fil. När du hämtar ett signerat heltal bör du omvandla värdet till en int
.
Anmärkningar
Den här medlemsfunktionen är inte skiftlägeskänslig, så strängarna i lpszSection och lpszEntry parametrar kan skilja sig åt om det gäller.
Viktig
Data som returneras av den här funktionen är inte nödvändigtvis NULL avslutade och anroparen måste utföra verifiering. Mer information finns i Undvika buffertöverskridningar.
Exempel
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);
Ett annat exempel finns i CWinApp::WriteProfileInt.
CWinApp::GetProfileString
Anropa den här medlemsfunktionen för att hämta strängen som är associerad med en post i det angivna avsnittet i programmets register eller . INI-fil.
CString GetProfileString(
LPCTSTR lpszSection,
LPCTSTR lpszEntry,
LPCTSTR lpszDefault = NULL);
Parametrar
lpszSection
Pekar på en null-avslutad sträng som anger avsnittet som innehåller posten.
lpszEntry
Pekar på en null-avslutad sträng som innehåller posten vars sträng ska hämtas. Det här värdet får inte vara NULL.
lpszDefault
Pekar på standardsträngvärdet för den angivna posten om posten inte kan hittas i initieringsfilen.
Returvärde
Returvärdet är strängen från programmets . INI-fil eller lpszDefault om strängen inte kan hittas. Den maximala stränglängden som stöds av ramverket är _MAX_PATH. Om lpszDefault är NULL är returvärdet en tom sträng.
Anmärkningar
Viktig
Data som returneras av den här funktionen är inte nödvändigtvis NULL avslutade och anroparen måste utföra verifiering. Mer information finns i Undvika buffertöverskridningar.
Exempel
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);
Ett annat exempel finns i exemplet för CWinApp::GetProfileInt.
CWinApp::GetSectionKey
Returnerar nyckeln för HKEY_CURRENT_USER\"Software"\RegistryKey\AppName\lpszSection.
HKEY GetSectionKey(
LPCTSTR lpszSection,
CAtlTransactionManager* pTM = NULL);
Parametrar
lpszSection
Namnet på den nyckel som ska hämtas.
pTM-
Pekare till ett CAtlTransactionManager
objekt.
Returvärde
Avsnittsnyckel om funktionen lyckas; annars NULL.
Anmärkningar
CWinApp::HideApplication
Anropa den här medlemsfunktionen för att dölja ett program innan du stänger de öppna dokumenten.
void HideApplication();
CWinApp::HtmlHelp
Anropa den här medlemsfunktionen för att anropa HTMLHelp-programmet.
virtual void HtmlHelp(
DWORD_PTR dwData,
UINT nCmd = 0x000F);
Parametrar
dwData
Anger ytterligare data. Värdet som används beror på värdet för parametern nCmd. Standardvärdet är 0x000F
vilket innebär HH_HELP_CONTEXT.
nCmd
Anger vilken typ av hjälp som begärs. En lista över möjliga värden och hur de påverkar parametern dwData finns i parametern uCommand som beskrivs i parametern HtmlHelpW eller HTMLHelpA API-funktioner i Windows SDK.
Anmärkningar
Ramverket anropar också den här funktionen för att anropa HTMLHelp-programmet.
Ramverket stänger automatiskt HTMLHelp-programmet när programmet avslutas.
CWinApp::InitInstance
Med Windows kan flera kopior av samma program köras samtidigt.
virtual BOOL InitInstance();
Returvärde
Nonzero om initieringen lyckas. annars 0.
Anmärkningar
Programinitiering är konceptuellt indelad i två avsnitt: en gång programinitiering som görs första gången programmet körs och instansinitiering som körs varje gång en kopia av programmet körs, inklusive första gången. Ramverkets implementering av WinMain
anropar den här funktionen.
Åsidosätt InitInstance
för att initiera varje ny instans av ditt program som körs under Windows. Vanligtvis åsidosätter du InitInstance
för att konstruera huvudfönsterobjektet och ställa in CWinThread::m_pMainWnd
datamedlemmen så att den pekar på det fönstret. Mer information om hur du åsidosätter den här medlemsfunktionen finns i CWinApp: Application Class.
Not
MFC-program måste initieras som en trådad lägenhet (STA). Om du anropar CoInitializeEx i åsidosättningen av InitInstance
anger du COINIT_APARTMENTTHREADED (i stället för COINIT_MULTITHREADED).
Exempel
// 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
Anger om interaktion med Aktivitetsfältet i Windows 7 är aktiverat.
virtual BOOL IsTaskbarInteractionEnabled();
Returvärde
Returnerar TRUE om EnableTaskbarInteraction
har anropats och operativsystemet är Windows 7 eller senare.
Anmärkningar
Interaktion med aktivitetsfältet innebär att MDI-programmet visar innehållet i MDI-underordnade objekt i separata miniatyrbilder med flikar som visas när muspekaren är över knappen i aktivitetsfältet för programmet.
CWinApp::LoadCursor
Läser in markörresursen med namnet av lpszResourceName eller anges av nIDResource- från den aktuella körbara filen.
HCURSOR LoadCursor(LPCTSTR lpszResourceName) const; HCURSOR LoadCursor(UINT nIDResource) const;
Parametrar
lpszResourceName
Pekar på en null-avslutad sträng som innehåller namnet på markörresursen. Du kan använda en CString
för det här argumentet.
nIDResource
ID för markörresursen. En lista över resurser finns i LoadCursor i Windows SDK.
Returvärde
Ett handtag till en markör om det lyckas. annars NULL.
Anmärkningar
LoadCursor
läser bara in markören i minnet om den inte har lästs in tidigare. Annars hämtar den ett handtag för den befintliga resursen.
Använd funktionen LoadStandardCursor eller LoadOEMCursor medlem för att få åtkomst till fördefinierade Windows-markörer.
Exempel
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
Läser in ikonresursen med namnet av lpszResourceName eller anges av nIDResource från den körbara filen.
HICON LoadIcon(LPCTSTR lpszResourceName) const; HICON LoadIcon(UINT nIDResource) const;
Parametrar
lpszResourceName
Pekar på en null-avslutad sträng som innehåller namnet på ikonresursen. Du kan också använda en CString
för det här argumentet.
nIDResource
ID-nummer för ikonresursen.
Returvärde
Ett handtag till en ikon om det lyckas. annars NULL.
Anmärkningar
LoadIcon
läser bara in ikonen om den inte har lästs in tidigare. Annars hämtar den ett handtag för den befintliga resursen.
Du kan använda funktionen LoadStandardIcon eller LoadOEMIcon medlem för att få åtkomst till de fördefinierade Windows-ikonerna.
Not
Den här medlemsfunktionen anropar funktionen Win32 API LoadIcon, som bara kan läsa in en ikon vars storlek överensstämmer med SM_CXICON och SM_CYICON systemmåttvärden.
CWinApp::LoadOEMCursor
Läser in den fördefinierade markörresursen i Windows som anges av nIDCursor.
HCURSOR LoadOEMCursor(UINT nIDCursor) const;
Parametrar
nIDCursor
En OCR_ manifestkonstantidentifierare som anger en fördefinierad Windows-markör. Du måste ha #define OEMRESOURCE
innan #include \<afxwin.h>
för att få åtkomst till OCR_ konstanterna i WINDOWS.H.
Returvärde
Ett handtag till en markör om det lyckas. annars NULL.
Anmärkningar
Använd funktionen LoadOEMCursor
eller LoadStandardCursor medlem för att komma åt de fördefinierade Windows-markörer.
Exempel
// 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
Läser in den fördefinierade ikonresursen i Windows som anges av nIDIcon.
HICON LoadOEMIcon(UINT nIDIcon) const;
Parametrar
nIDIcon
En OIC_ manifestkonstantidentifierare som anger en fördefinierad Windows-ikon. Du måste ha #define OEMRESOURCE
innan #include \<afxwin.h>
för att komma åt OIC_ konstanterna i WINDOWS.H.
Returvärde
Ett handtag till en ikon om det lyckas. annars NULL.
Anmärkningar
Använd funktionen LoadOEMIcon
eller LoadStandardIcon medlem för att få åtkomst till de fördefinierade Windows-ikonerna.
CWinApp::LoadStandardCursor
Läser in den fördefinierade markörresursen i Windows som lpszCursorName anger.
HCURSOR LoadStandardCursor(LPCTSTR lpszCursorName) const;
Parametrar
lpszCursorName
En IDC_ manifestkonstantidentifierare som anger en fördefinierad Windows-markör. Dessa identifierare definieras i WINDOWS.H. I följande lista visas möjliga fördefinierade värden och betydelser för lpszCursorName:
IDC_ARROW standardpilmarkör
IDC_IBEAM standardmarkör för textinfogning
IDC_WAIT Timglasmarkör som används när Windows utför en tidskrävande uppgift
IDC_CROSS hårkorsmarkör för val
IDC_UPARROW pil som pekar rakt upp
IDC_SIZE föråldrad och stöds inte; använd IDC_SIZEALL
IDC_SIZEALL En fyruddig pil. Markören som ska användas för att ändra storlek på ett fönster.
IDC_ICON föråldrad och stöds inte. Använd IDC_ARROW.
IDC_SIZENWSE tvåhövdad pil med ändar uppe till vänster och längst ned till höger
IDC_SIZENESW tvåhövdad pil med ändar i övre högra och nedre vänstra hörnet
IDC_SIZEWE vågrät dubbelriktad pil
IDC_SIZENS lodrät dubbelriktad pil
Returvärde
Ett handtag till en markör om det lyckas. annars NULL.
Anmärkningar
Använd funktionen LoadStandardCursor
eller LoadOEMCursor medlem för att komma åt de fördefinierade Windows-markörer.
Exempel
HCURSOR hCursor;
// Load the predefined Windows "up arrow" cursor.
hCursor = AfxGetApp()->LoadStandardCursor(IDC_UPARROW);
CWinApp::LoadStandardIcon
Läser in den fördefinierade ikonresursen i Windows som lpszIconName anger.
HICON LoadStandardIcon(LPCTSTR lpszIconName) const;
Parametrar
lpszIconName
En konstant manifestidentifierare som anger en fördefinierad Windows-ikon. Dessa identifierare definieras i WINDOWS.H. En lista över möjliga fördefinierade värden och deras beskrivningar finns i parametern lpIconName i LoadIcon i Windows SDK.
Returvärde
Ett handtag till en ikon om det lyckas. annars NULL.
Anmärkningar
Använd funktionen LoadStandardIcon
eller LoadOEMIcon medlem för att få åtkomst till de fördefinierade Windows-ikonerna.
CWinApp::LoadStdProfileSettings
Anropa den här medlemsfunktionen inifrån funktionen InitInstance medlem för att aktivera och läsa in listan över senast använda filer (MRU) och senaste förhandsversionstillstånd.
void LoadStdProfileSettings(UINT nMaxMRU = _AFX_MRU_COUNT);
Parametrar
nMaxMRU
Antalet nyligen använda filer att spåra.
Anmärkningar
Om nMaxMRU är 0 behålls ingen MRU-lista.
CWinApp::m_bHelpMode
SANT om programmet är i hjälpkontextläge (anropas konventionellt med SKIFT + F1); annars FALSKT.
BOOL m_bHelpMode;
Anmärkningar
I hjälpkontextläge blir markören ett frågetecken och användaren kan flytta den om skärmen. Granska den här flaggan om du vill implementera särskild hantering i hjälpläget.
m_bHelpMode
är en offentlig variabel av typen BOOL.
CWinApp::m_dwRestartManagerSupportFlags
Flaggor som avgör hur omstartshanteraren fungerar.
DWORD m_dwRestartManagerSupportFlags;
Anmärkningar
Om du vill aktivera omstartshanteraren anger du m_dwRestartManagerSupportFlags
till det beteende som du vill använda. I följande tabell visas de flaggor som är tillgängliga.
Flagga | Beskrivning |
---|---|
AFX_RESTART_MANAGER_SUPPORT_RESTART | Programmet registreras med hjälp av CWinApp::RegisterWithRestartManager. Omstartshanteraren ansvarar för att starta om programmet om det oväntat avslutas. |
- AFX_RESTART_MANAGER_SUPPORT_RECOVERY | Programmet är registrerat med omstartshanteraren och omstartshanteraren anropar återställningsåteranropsfunktionen när programmet startas om. Standardåteranropsfunktionen för återställning är CWinApp::ApplicationRecoveryCallback. |
- AFX_RESTART_MANAGER_AUTOSAVE_AT_RESTART | Spara automatiskt är aktiverat och omstartshanteraren sparas automatiskt i alla öppna dokument när programmet startas om. |
- AFX_RESTART_MANAGER_AUTOSAVE_AT_INTERVAL | Spara automatiskt är aktiverat och omstartshanteraren sparas automatiskt i alla öppna dokument med jämna mellanrum. Intervallet definieras av CWinApp::m_nAutosaveInterval. |
- AFX_RESTART_MANAGER_REOPEN_PREVIOUS_FILES | Omstartshanteraren öppnar tidigare öppna dokument efter att programmet startats om från en oväntad avslutning. CDataRecoveryHandler Class hanterar lagring av listan över öppna dokument och återställning av dem. |
- AFX_RESTART_MANAGER_RESTORE_AUTOSAVED_FILES | Omstartshanteraren uppmanar användaren att återställa filer som sparats automatiskt när programmet har startats om.
CDataRecoveryHandler -klassen frågar användaren. |
- AFX_RESTART_MANAGER_SUPPORT_NO_AUTOSAVE | Unionen mellan AFX_RESTART_MANAGER_SUPPORT_RESTART, AFX_RESTART_MANAGER_SUPPORT_RECOVER och AFX_RESTART_MANAGER_REOPEN_PREVIOUS_FILES. |
- AFX_RESTART_MANAGER_SUPPORT_ALL_ASPECTS | Unionen mellan AFX_RESTART_MANAGER_SUPPORT_NO_AUTOSAVE, AFX_RESTART_MANAGER_AUTOSAVE_AT_RESTART, AFX_RESTART_MANAGER_AUTOSAVE_AT_INTERVAL och AFX_RESTART_MANAGER_RESTORE_AUTOSAVED_FILES. |
- AFX_RESTART_MANAGER_SUPPORT_RESTART_ASPECTS | Unionen mellan AFX_RESTART_MANAGER_SUPPORT_RESTART, AFX_RESTART_MANAGER_AUTOSAVE_AT_RESTART, AFX_RESTART_MANAGER_REOPEN_PREVIOUS_FILES och AFX_RESTART_MANAGER_RESTORE_AUTOSAVED_FILES. |
- AFX_RESTART_MANAGER_SUPPORT_RECOVERY_ASPECTS | Facket ofAFX_RESTART_MANAGER_SUPPORT_RECOVERY, AFX_RESTART_MANAGER_AUTOSAVE_AT_INTERVAL, AFX_RESTART_MANAGER_REOPEN_PREVIOUS_FILES och AFX_RESTART_MANAGER_RESTORE_AUTOSAVED_FILES. |
CWinApp::m_eHelpType
Typen av den här datamedlemmen är den uppräknade typen AFX_HELP_TYPE, som definieras i klassen CWinApp
.
AFX_HELP_TYPE m_eHelpType;
Anmärkningar
Den AFX_HELP_TYPE uppräkningen definieras på följande sätt:
enum AFX_HELP_TYPE {
afxWinHelp = 0,
afxHTMLHelp = 1
};
Om du vill ställa in programmets hjälp på HTML-hjälpen anropar du SetHelpMode och anger
afxHTMLHelp
.Om du vill ange programmets hjälp till WinHelp anropar du
SetHelpMode
och angerafxWinHelp
.
CWinApp::m_hInstance
Motsvarar parametern hInstance som skickas av Windows till WinMain
.
HINSTANCE m_hInstance;
Anmärkningar
Den m_hInstance
datamedlemmen är en referens till den aktuella instansen av programmet som körs under Windows. Detta returneras av den globala funktionen AfxGetInstanceHandle.
m_hInstance
är en offentlig variabel av typen HINSTANCE.
Exempel
// 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
Motsvarar parametern lpCmdLine som skickas av Windows till WinMain
.
LPTSTR m_lpCmdLine;
Anmärkningar
Pekar på en null-avslutad sträng som anger kommandoraden för programmet. Använd m_lpCmdLine
för att komma åt kommandoradsargument som användaren angav när programmet startades.
m_lpCmdLine
är en offentlig variabel av typen LPTSTR.
Exempel
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
Längden på tiden i millisekunder mellan autospar.
int m_nAutosaveInterval;
Anmärkningar
Du kan konfigurera omstartshanteraren så att öppna dokument sparas automatiskt med angivna intervall. Om programmet inte sparar filer automatiskt har den här parametern ingen effekt.
CWinApp::m_nCmdShow
Motsvarar parametern nCmdShow som skickas av Windows till WinMain
.
int m_nCmdShow;
Anmärkningar
Du bör skicka m_nCmdShow
som ett argument när du anropar CWnd::ShowWindow för programmets huvudfönster.
m_nCmdShow
är en offentlig variabel av typen int
.
Exempel
// 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
Använd den här datamedlemmen för att lagra en pekare till huvudfönstret i OLE-containerprogrammet som har ole-serverprogrammet aktiverat på plats.
Anmärkningar
Om den här datamedlemmen är NULL är programmet inte aktivt på plats.
Ramverket anger den här medlemsvariabeln när ramfönstret aktiveras på plats av ett OLE-containerprogram.
CWinApp::m_pDataRecoveryHandler
Pekare till dataåterställningshanteraren för programmet.
CDataRecoveryHandler* m_pDataRecoveryHandler;
Anmärkningar
Dataåterställningshanteraren för ett program övervakar öppna dokument och arkiverar dem automatiskt. Ramverket använder dataåterställningshanteraren för att återställa filer som sparats automatiskt när ett program startas om när det oväntat avslutas. Mer information finns i CDataRecoveryHandler Class.
CWinApp::m_pszAppName
Anger namnet på programmet.
LPCTSTR m_pszAppName;
Anmärkningar
Programnamnet kan komma från parametern som skickas till CWinApp konstruktor, eller, om det inte anges, till resurssträngen med ID:t för AFX_IDS_APP_TITLE. Om programnamnet inte hittas i resursen kommer det från programmets .EXE filnamn.
Returneras av den globala funktionen AfxGetAppName.
m_pszAppName
är en offentlig variabel av typen const char*.
Not
Om du tilldelar ett värde till m_pszAppName
måste det tilldelas dynamiskt på heapen.
CWinApp
-destructor anropar kostnadsfri( ) med den här pekaren. Många vill använda funktionen _tcsdup
( ) run-time library för att allokera. Frigör också det minne som är associerat med den aktuella pekaren innan du tilldelar ett nytt värde. Till exempel:
//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"));
Exempel
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
Innehåller namnet på programmets körbara fil utan tillägg.
LPCTSTR m_pszExeName;
Anmärkningar
Till skillnad från m_pszAppNamefår det här namnet inte innehålla blanksteg.
m_pszExeName
är en offentlig variabel av typen const char*.
Not
Om du tilldelar ett värde till m_pszExeName
måste det tilldelas dynamiskt på heapen.
CWinApp
-destructor anropar kostnadsfri( ) med den här pekaren. Många vill använda funktionen _tcsdup
( ) run-time library för att allokera. Frigör också det minne som är associerat med den aktuella pekaren innan du tilldelar ett nytt värde. Till exempel:
//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
Innehåller sökvägen till programmets hjälpfil.
LPCTSTR m_pszHelpFilePath;
Anmärkningar
Som standard initierar ramverket m_pszHelpFilePath
till namnet på programmet med ". HLP" läggs till. Om du vill ändra namnet på hjälpfilen anger du m_pszHelpFilePath
så att den pekar på en sträng som innehåller det fullständiga namnet på den önskade hjälpfilen. En praktisk plats att göra detta på finns i programmets InitInstance- funktion.
m_pszHelpFilePath
är en offentlig variabel av typen const char*.
Not
Om du tilldelar ett värde till m_pszHelpFilePath
måste det tilldelas dynamiskt på heapen.
CWinApp
-destructor anropar kostnadsfri( ) med den här pekaren. Många vill använda funktionen _tcsdup
( ) run-time library för att allokera. Frigör också det minne som är associerat med den aktuella pekaren innan du tilldelar ett nytt värde. Till exempel:
//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
Innehåller namnet på programmets . INI-fil.
LPCTSTR m_pszProfileName;
Anmärkningar
m_pszProfileName
är en offentlig variabel av typen const char*.
Not
Om du tilldelar ett värde till m_pszProfileName
måste det tilldelas dynamiskt på heapen.
CWinApp
-destructor anropar kostnadsfri( ) med den här pekaren. Många vill använda funktionen _tcsdup
( ) run-time library för att allokera. Frigör också det minne som är associerat med den aktuella pekaren innan du tilldelar ett nytt värde. Till exempel:
//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
Används för att avgöra var, i registret eller INI-filen, programprofilinställningar lagras.
LPCTSTR m_pszRegistryKey;
Anmärkningar
Normalt behandlas den här datamedlemmen som skrivskyddad.
- Värdet lagras i en registernyckel. Namnet på inställningen programprofil läggs till i följande registernyckel: HKEY_CURRENT_USER/Software/LocalAppWizard-Generated/.
Om du tilldelar ett värde till m_pszRegistryKey
måste det tilldelas dynamiskt på heapen.
CWinApp
-destructor anropar kostnadsfri( ) med den här pekaren. Många vill använda funktionen _tcsdup
( ) run-time library för att allokera. Frigör också det minne som är associerat med den aktuella pekaren innan du tilldelar ett nytt värde. Till exempel:
//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
Programanvändarmodell-ID.
LPCTSTR m_pszAppID;
Anmärkningar
CWinApp::OnContextHelp
Hanterar SKIFT+F1-hjälpen i programmet.
afx_msg void OnContextHelp();
Anmärkningar
Du måste lägga till en ON_COMMAND( ID_CONTEXT_HELP, OnContextHelp )
-instruktion i din CWinApp
-klassmeddelandekarta och även lägga till en post i en acceleratortabell, vanligtvis SKIFT+F1, för att aktivera den här medlemsfunktionen.
OnContextHelp
placerar programmet i hjälpläge. Markören ändras till en pil och ett frågetecken, och användaren kan sedan flytta muspekaren och trycka på den vänstra musknappen för att välja en dialogruta, ett fönster, en meny eller en kommandoknapp. Den här medlemsfunktionen hämtar hjälpkontexten för objektet under markören och anropar Windows-funktionen WinHelp med hjälpkontexten.
CWinApp::OnDDECommand
Anropas av ramverket när huvudramfönstret tar emot ett DDE-körningsmeddelande.
virtual BOOL OnDDECommand(LPTSTR lpszCommand);
Parametrar
lpszCommand
Pekar på en DDE-kommandosträng som tas emot av programmet.
Returvärde
Nonzero om kommandot hanteras; annars 0.
Anmärkningar
Standardimplementeringen kontrollerar om kommandot är en begäran om att öppna ett dokument och öppnar i så fall det angivna dokumentet. Windows File Manager skickar vanligtvis sådana DDE-kommandosträngar när användaren dubbelklickar på en datafil. Åsidosätt den här funktionen för att hantera andra DDE-körningskommandon, till exempel kommandot som ska skrivas ut.
Exempel
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::OnFileNy
Implementerar kommandot ID_FILE_NEW.
afx_msg void OnFileNew();
Anmärkningar
Du måste lägga till en ON_COMMAND( ID_FILE_NEW, OnFileNew )
-instruktion i din CWinApp
-klassmeddelandekarta för att aktivera den här medlemsfunktionen. Om den här funktionen är aktiverad hanterar den körningen av kommandot Arkiv ny.
Mer information om standardbeteende och vägledning om hur du åsidosätter den här medlemsfunktionen finns i Technical Note 22.
Exempel
// 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
Implementerar kommandot ID_FILE_OPEN.
afx_msg void OnFileOpen();
Anmärkningar
Du måste lägga till en ON_COMMAND( ID_FILE_OPEN, OnFileOpen )
-instruktion i din CWinApp
-klassmeddelandekarta för att aktivera den här medlemsfunktionen. Om den här funktionen är aktiverad hanterar den körningen av kommandot Öppna fil.
Information om standardbeteende och vägledning om hur du åsidosätter den här medlemsfunktionen finns i Technical Note 22.
Exempel
// 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
Implementerar kommandot ID_FILE_PRINT_SETUP.
afx_msg void OnFilePrintSetup();
Anmärkningar
Du måste lägga till en ON_COMMAND( ID_FILE_PRINT_SETUP, OnFilePrintSetup )
-instruktion i din CWinApp
-klassmeddelandekarta för att aktivera den här medlemsfunktionen. Om den här funktionen är aktiverad hanterar den körningen av kommandot File Print.
Information om standardbeteende och vägledning om hur du åsidosätter den här medlemsfunktionen finns i Technical Note 22.
Exempel
// 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
Hanterar F1-hjälpen i programmet (med den aktuella kontexten).
afx_msg void OnHelp();
Anmärkningar
Vanligtvis lägger du också till en acceleratornyckelpost för F1-nyckeln. Att aktivera F1-nyckeln är bara en konvention, inte ett krav.
Du måste lägga till en ON_COMMAND( ID_HELP, OnHelp )
-instruktion i din CWinApp
-klassmeddelandekarta för att aktivera den här medlemsfunktionen. Om aktiverad anropas av ramverket när användaren trycker på F1-tangenten.
Standardimplementeringen av den här meddelandehanterarfunktionen avgör hjälpkontexten som motsvarar det aktuella fönstret, dialogrutan eller menyalternativet och anropar sedan WINHELP.EXE. Om ingen kontext är tillgänglig för närvarande använder funktionen standardkontexten.
Åsidosätt den här medlemsfunktionen för att ange hjälpkontexten till något annat än fönstret, dialogrutan, menyalternativet eller verktygsfältsknappen som för närvarande har fokus. Anropa WinHelp
med önskat hjälpkontext-ID.
CWinApp::OnHelpFinder
Hanterar kommandona ID_HELP_FINDER och ID_DEFAULT_HELP.
afx_msg void OnHelpFinder();
Anmärkningar
Du måste lägga till en ON_COMMAND( ID_HELP_FINDER, OnHelpFinder )
-instruktion i din CWinApp
-klassmeddelandekarta för att aktivera den här medlemsfunktionen. Om det är aktiverat anropar ramverket den här meddelandehanterarfunktionen när användaren av ditt program väljer kommandot Hjälpsökare för att anropa WinHelp
med standardavsnittet HELP_FINDER.
CWinApp::OnHelpIndex
Hanterar kommandot ID_HELP_INDEX och innehåller ett standardavsnitt för hjälp.
afx_msg void OnHelpIndex();
Anmärkningar
Du måste lägga till en ON_COMMAND( ID_HELP_INDEX, OnHelpIndex )
-instruktion i din CWinApp
-klassmeddelandekarta för att aktivera den här medlemsfunktionen. Om det är aktiverat anropar ramverket den här meddelandehanterarfunktionen när användaren av ditt program väljer kommandot Hjälpindex för att anropa WinHelp
med standardavsnittet HELP_INDEX.
CWinApp::OnHelpUsing
Hanterar kommandot ID_HELP_USING.
afx_msg void OnHelpUsing();
Anmärkningar
Du måste lägga till en ON_COMMAND( ID_HELP_USING, OnHelpUsing )
-instruktion i din CWinApp
-klassmeddelandekarta för att aktivera den här medlemsfunktionen. Ramverket anropar den här meddelandehanterarfunktionen när användaren av ditt program väljer kommandot Hjälp med att använda för att anropa WinHelp
-programmet med standardavsnittet HELP_HELPONHELP.
CWinApp::OnIdle
Åsidosätt den här medlemsfunktionen för att utföra bearbetning av inaktiv tid.
virtual BOOL OnIdle(LONG lCount);
Parametrar
lCount
En räknare ökas varje gång OnIdle
anropas när programmets meddelandekö är tom. Det här antalet återställs till 0 varje gång ett nytt meddelande bearbetas. Du kan använda parametern lCount för att fastställa hur lång tid programmet har varit inaktivt utan att bearbeta ett meddelande.
Returvärde
Nonzero för att ta emot mer inaktiv bearbetningstid; 0 om ingen mer inaktivitetstid behövs.
Anmärkningar
OnIdle
anropas i standardmeddelandeloopen när programmets meddelandekö är tom. Använd åsidosättningen för att anropa dina egna uppgifter för inaktivitetshanterare i bakgrunden.
OnIdle
bör returnera 0 för att indikera att ingen inaktiv bearbetningstid krävs. Parametern lCount ökas varje gång OnIdle
anropas när meddelandekön är tom och återställs till 0 varje gång ett nytt meddelande bearbetas. Du kan anropa dina olika inaktiva rutiner baserat på det här antalet.
Följande sammanfattar bearbetning av inaktiva loopar:
Om meddelandeloopen i Microsoft Foundation-klassbiblioteket kontrollerar meddelandekön och inte hittar några väntande meddelanden anropas
OnIdle
för programobjektet och tillhandahåller 0 som argumentet lCount.OnIdle
utför viss bearbetning och returnerar ett icke-nollvärde för att indikera att det ska anropas igen för att utföra ytterligare bearbetning.Meddelandeloopen kontrollerar meddelandekön igen. Om inga meddelanden väntar anropas
OnIdle
igen, vilket ökar argumentet lCount.Slutligen slutför
OnIdle
bearbetningen av alla inaktiva uppgifter och returnerar 0. Detta instruerar meddelandeloopen att sluta anropaOnIdle
tills nästa meddelande tas emot från meddelandekön, då inaktivitetscykeln startas om med argumentet inställt på 0.
Utför inte långa uppgifter under OnIdle
eftersom programmet inte kan bearbeta användarindata förrän OnIdle
returnerar.
Not
Standardimplementeringen av OnIdle
uppdaterar kommandoobjekt i användargränssnittet, till exempel menyalternativ och verktygsfältsknappar, och den utför intern rensning av datastrukturen. Om du åsidosätter OnIdle
måste du därför anropa CWinApp::OnIdle
med lCount
i den åsidosatta versionen. Anropa först all inaktiv bearbetning av basklassen (det vill säga tills basklassen OnIdle
returnerar 0). Om du behöver utföra arbete innan basklassbearbetningen slutförs granskar du basklassimplementeringen för att välja rätt lCount under vilken du ska utföra ditt arbete.
Om du inte vill att OnIdle
ska anropas när ett meddelande hämtas från meddelandekön kan du åsidosätta CWinThreadIsIdleMessage. Om ett program har angett en mycket kort timer, eller om systemet skickar WM_SYSTIMER meddelande, anropas OnIdle
upprepade gånger och försämrar prestanda.
Exempel
Följande två exempel visar hur du använder OnIdle
. I det första exemplet bearbetas två inaktiva aktiviteter med argumentet lCount för att prioritera aktiviteterna. Den första uppgiften har hög prioritet och du bör göra det när det är möjligt. Den andra uppgiften är mindre viktig och bör endast utföras när det finns en lång paus i användarindata. Observera anropet till basklassversionen av OnIdle
. Det andra exemplet hanterar en grupp inaktiva uppgifter med olika prioriteringar.
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
Ramverket anropar den här metoden för att öppna filen med namnet CDocument för programmet.
virtual CDocument* OpenDocumentFile(
LPCTSTR lpszFileName,
BOOL bAddToMRU = TRUE);
Parametrar
lpszFileName
[i] Namnet på filen som ska öppnas.
bAddToMRU
[i] TRUE anger att dokumentet är en av de senaste filerna. FALSE anger att dokumentet inte är en av de senaste filerna.
Returvärde
En pekare till en CDocument
om den lyckas. annars NULL.
Anmärkningar
Om ett dokument med det namnet redan är öppet kommer det första ramfönstret som innehåller dokumentet att fokusera. Om ett program stöder flera dokumentmallar använder ramverket filnamnstillägget för att hitta rätt dokumentmall för att försöka läsa in dokumentet. Om det lyckas skapar dokumentmallen sedan ett ramfönster och en vy för dokumentet.
Exempel
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
Anropa den här medlemsfunktionen för att parsa kommandoraden och skicka parametrarna, en i taget, för att CCommandLineInfo::P arseParam.
void ParseCommandLine(CCommandLineInfo& rCmdInfo);
Parametrar
rCmdInfo
En referens till ett CCommandLineInfo- objekt.
Anmärkningar
När du startar ett nytt MFC-projekt med hjälp av programguiden skapar programguiden en lokal instans av CCommandLineInfo
och anropar sedan ProcessShellCommand
och ParseCommandLine
i funktionen InitInstance medlem. En kommandorad följer den väg som beskrivs nedan:
När
CCommandLineInfo
-objektet har skapats iInitInstance
skickas det tillParseCommandLine
.ParseCommandLine
anropar sedanCCommandLineInfo::ParseParam
upprepade gånger, en gång för varje parameter.ParseParam
fyller detCCommandLineInfo
objektet som sedan skickas till ProcessShellCommand.ProcessShellCommand
hanterar kommandoradsargumenten och flaggorna.
Observera att du kan anropa ParseCommandLine
direkt efter behov.
En beskrivning av kommandoradsflaggor finns i CCommandLineInfo::m_nShellCommand.
CWinApp::P reTranslateMessage
Åsidosätt den här funktionen för att filtrera fönstermeddelanden innan de skickas till Windows-funktionerna TranslateMessage och DispatchMessage Standardimplementeringen utför acceleratornyckelöversättning, så du måste anropa funktionen CWinApp::PreTranslateMessage
medlem i den åsidosatta versionen.
virtual BOOL PreTranslateMessage(MSG* pMsg);
Parametrar
pMsg
En pekare till en MSG struktur som innehåller meddelandet som ska bearbetas.
Returvärde
Nonzero om meddelandet har bearbetats fullständigt i PreTranslateMessage
och inte bör bearbetas ytterligare. Noll om meddelandet ska bearbetas på vanligt sätt.
CWinApp::P rocessMessageFilter
Ramverkets hook-funktion anropar den här medlemsfunktionen för att filtrera och svara på vissa Windows-meddelanden.
virtual BOOL ProcessMessageFilter(
int code,
LPMSG lpMsg);
Parametrar
kod
Anger en hook-kod. Den här medlemsfunktionen använder koden för att avgöra hur lpMsg ska bearbetas.
lpMsg
En pekare till en Windows-MSGtructure.
Returvärde
Nonzero om meddelandet bearbetas; annars 0.
Anmärkningar
En hook-funktion bearbetar händelser innan de skickas till programmets normala meddelandebearbetning.
Om du åsidosätter den här avancerade funktionen måste du anropa basklassversionen för att underhålla ramverkets krokbearbetning.
CWinApp::P rocessShellCommand
Den här medlemsfunktionen anropas av InitInstance för att acceptera parametrarna som skickas från det CCommandLineInfo
objekt som identifieras av rCmdInfooch utföra den angivna åtgärden.
BOOL ProcessShellCommand(CCommandLineInfo& rCmdInfo);
Parametrar
rCmdInfo
En referens till ett CCommandLineInfo- objekt.
Returvärde
Nonzero om shell-kommandot bearbetas korrekt. Om 0 returnerar du FALSE från InitInstance.
Anmärkningar
När du startar ett nytt MFC-projekt med hjälp av programguiden skapar programguiden en lokal instans av CCommandLineInfo
och anropar sedan ProcessShellCommand
och ParseCommandLine- i funktionen InitInstance
medlem. En kommandorad följer den väg som beskrivs nedan:
När
CCommandLineInfo
-objektet har skapats iInitInstance
skickas det tillParseCommandLine
.ParseCommandLine
anropar sedan CCommandLineInfo::P arseParam upprepade gånger, en gång för varje parameter.ParseParam
fyller detCCommandLineInfo
objektet, som sedan skickas tillProcessShellCommand
.ProcessShellCommand
hanterar kommandoradsargumenten och flaggorna.
Datamedlemmarna i CCommandLineInfo
-objektet, som identifieras av CCommandLineInfo::m_nShellCommand, är av följande uppräknade typ, som definieras i klassen CCommandLineInfo
.
enum {
FileNew,
FileOpen,
FilePrint,
FilePrintTo,
FileDDE
};
En kort beskrivning av vart och ett av dessa värden finns i CCommandLineInfo::m_nShellCommand
.
CWinApp::P rocessWndProcException
Ramverket anropar den här medlemsfunktionen när hanteraren inte får ett undantag som genereras i ett av programmets meddelande- eller kommandohanterare.
virtual LRESULT ProcessWndProcException(
CException* e,
const MSG* pMsg);
Parametrar
e
En pekare till ett ohanterade undantag.
pMsg
En MSGtructure som innehåller information om windows-meddelandet som gjorde att ramverket utlöste ett undantag.
Returvärde
Värdet som ska returneras till Windows. Normalt är detta 0L för Windows-meddelanden, 1L ( TRUE) för kommandomeddelanden.
Anmärkningar
Anropa inte den här medlemsfunktionen direkt.
Standardimplementeringen av den här medlemsfunktionen skapar en meddelanderuta. Om det ohanterade undantaget kommer från en meny, ett kommandofel i verktygsfältet eller acceleratorn visas meddelandet "Kommandot misslyckades" i meddelanderutan. annars visas meddelandet "Internt programfel".
Åsidosätt den här medlemsfunktionen för att tillhandahålla global hantering av dina undantag. Anropa endast basfunktionen om du vill att meddelanderutan ska visas.
CWinApp::Registrera
Utför registreringsuppgifter som inte hanteras av RegisterShellFileTypes
.
virtual BOOL Register();
Returvärde
Nonzero på framgång; annars 0.
Anmärkningar
Standardimplementeringen returnerar helt enkelt TRUE. Åsidosätt den här funktionen för att tillhandahålla anpassade registreringssteg.
CWinApp::RegisterShellFileTypes
Anropa den här medlemsfunktionen för att registrera alla programdokumenttyper med Windows-filhanteraren.
void RegisterShellFileTypes(BOOL bCompat = FALSE);
Parametrar
bCompat
[i] TRUE lägger till registreringsposter för gränssnittskommandon Skriv ut och skriv ut till, så att en användare kan skriva ut filer direkt från gränssnittet eller genom att dra filen till ett skrivarobjekt. Den lägger också till en DefaultIcon-nyckel. Som standard är den här parametern FALSE för bakåtkompatibilitet.
Anmärkningar
På så sätt kan användaren öppna en datafil som skapats av ditt program genom att dubbelklicka på den från Filhanteraren. Anropa RegisterShellFileTypes
när du anropar AddDocTemplate för var och en av dokumentmallarna i ditt program. Anropa även funktionen EnableShellOpen medlem när du anropar RegisterShellFileTypes
.
RegisterShellFileTypes
itererar genom listan över CDocTemplate objekt som programmet underhåller och för varje dokumentmall lägger till poster i registreringsdatabasen som Windows underhåller för filassociationer. Filhanteraren använder dessa poster för att öppna en datafil när användaren dubbelklickar på den. Detta eliminerar behovet av att skicka en . REG-fil med ditt program.
Not
RegisterShellFileTypes
fungerar bara om användaren kör programmet med administratörsbehörighet. Om programmet inte har administratörsbehörighet kan det inte ändra registernycklar.
Om registreringsdatabasen redan associerar ett angivet filnamnstillägg med en annan filtyp skapas ingen ny association. Se klassen CDocTemplate
för det format av strängar som krävs för att registrera den här informationen.
CWinApp::RegisterWithRestartManager
Registrerar programmet med omstartshanteraren.
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);
Parametrar
bRegisterRecoveryCallback
[i] TRUE anger att den här instansen av programmet använder en återställningsåteranropsfunktion. FALSE anger att det inte gör det. Ramverket anropar återanropsfunktionen för återställning när programmet oväntat avslutas. Mer information finns i CWinApp::ApplicationRecoveryCallback.
strRestartIdentifier
[i] Den unika sträng som identifierar den här instansen av omstartshanteraren. Identifieraren för omstartshanteraren är unik för varje instans av ett program.
pwzCommandLineArgs
[i] En sträng som innehåller eventuella extra argument från kommandoraden.
dwRestartFlags
[i] Valfria flaggor för omstartshanteraren. Mer information finns i avsnittet Anmärkningar.
pRecoveryCallback
[i] Återanropsfunktionen för återställning. Den här funktionen måste ta en LPVOID-parameter som indata och returnera ett DWORD. Standardåteranropsfunktionen för återställning är CWinApp::ApplicationRecoveryCallback
.
lpvParam
[i] Indataparametern för återställningsåteranropsfunktionen. Mer information finns i CWinApp::ApplicationRecoveryCallback.
dwPingInterval
[i] Hur lång tid omstartshanteraren väntar på att återställningsåteranropsfunktionen ska returneras. Den här parametern är i millisekunder.
dwCallbackFlags
[i] Flaggor som skickas till återanropsfunktionen för återställning. Reserverad för framtida användning.
Returvärde
S_OK om metoden lyckas. annars en felkod.
Anmärkningar
Om ditt program använder MFC-standardimplementeringen för automatisk lagring av filer bör du använda den enkla versionen av RegisterWithRestartManager
. Använd den komplexa versionen av RegisterWithRestartManager
om du vill anpassa programmets beteende för spara automatiskt.
Om du anropar den här metoden med en tom sträng för strRestartIdentifierskapar RegisterWithRestartManager
en unik identifierarsträng för den här instansen av omstartshanteraren.
När ett program avslutas oväntat startar omstartshanteraren om programmet från kommandoraden och tillhandahåller den unika omstartsidentifieraren som ett valfritt argument. I det här scenariot anropar ramverket RegisterWithRestartManager
två gånger. Det första anropet kommer från CWinApp::InitInstance med en tom sträng för strängidentifieraren. Sedan anropar metoden CWinApp::P rocessShellCommandRegisterWithRestartManager
med den unika omstartsidentifieraren.
När du har registrerat ett program med omstartshanteraren övervakar omstartshanteraren programmet. Om programmet avslutas oväntat anropar omstartshanteraren återanropsfunktionen under avstängningsprocessen. Omstartshanteraren väntar dwPingInterval- på ett svar från återställningsåteranropsfunktionen. Om återanropsfunktionen för återställning inte svarar inom den här tiden avslutas programmet utan att återställningsåteranropsfunktionen körs.
Som standard stöds inte dwRestartFlags men tillhandahålls för framtida användning. Möjliga värden för dwRestartFlags är följande:
RESTART_NO_CRASH
RESTART_NO_HANG
RESTART_NO_PATCH
RESTART_NO_REBOOT
CWinApp::ReopenPreviousFilesAtRestart
Avgör om omstartshanteraren öppnar filerna som var öppna när programmet avslutades oväntat.
virtual BOOL ReopenPreviousFilesAtRestart() const;
Returvärde
TRUE anger att omstartshanteraren öppnar de tidigare öppna filerna igen. FALSE anger att omstartshanteraren inte gör det.
CWinApp::RestartInstance
Hanterar en omstart av programmet som initieras av omstartshanteraren.
virtual BOOL CWinApp::RestartInstance();
Returvärde
SANT om dataåterställningshanteraren öppnar tidigare öppna dokument. FALSE om dataåterställningshanteraren har ett fel eller om det inte finns några tidigare öppna dokument.
Anmärkningar
När omstartshanteraren startar om ett program anropar ramverket den här metoden. Den här metoden hämtar dataåterställningshanteraren och återställer filerna som sparats automatiskt. Den här metoden anropar CDataRecoveryHandler::RestoreAutosavedDocuments för att avgöra om användaren vill återställa filer som sparats automatiskt.
Den här metoden returnerar FALSE om CDataRecoveryHandler fastställer att det inte fanns några öppna dokument. Om det inte fanns några öppna dokument startar programmet normalt.
CWinApp::RestoreAutosavedFilesAtRestart
Avgör om omstartshanteraren återställer filer som sparats automatiskt när programmet startas om.
virtual BOOL RestoreAutosavedFilesAtRestart() const;
Returvärde
TRUE anger att omstartshanteraren återställer filer som sparats automatiskt. FALSE anger att omstartshanteraren inte gör det.
CWinApp::Kör
Tillhandahåller en standardmeddelandeloop.
virtual int Run();
Returvärde
Ett int
värde som returneras av WinMain
.
Anmärkningar
Run
hämtar och skickar Windows-meddelanden tills programmet tar emot ett WM_QUIT meddelande. Om programmets meddelandekö för närvarande inte innehåller några meddelanden anropar Run
OnIdle för att utföra bearbetning av inaktivitetstid. Inkommande meddelanden går till PreTranslateMessage medlemsfunktion för särskild bearbetning och sedan till Windows-funktionen TranslateMessage
för standardöversättning av tangentbord. slutligen anropas funktionen DispatchMessage
Windows.
Run
åsidosätts sällan, men du kan åsidosätta det för att ge ett särskilt beteende.
CWinApp::RunAutomated
Anropa den här funktionen för att avgöra om alternativet " /Automation" eller " -Automation" finns, vilket anger om serverprogrammet startades av ett klientprogram.
BOOL RunAutomated();
Returvärde
Nonzero om alternativet hittades; annars 0.
Anmärkningar
Om det finns tas alternativet bort från kommandoraden. Mer information om OLE Automation finns i artikeln Automation-servrar.
CWinApp::RunEmbedded
Anropa den här funktionen för att avgöra om alternativet " /Embedding" eller " -Embedding" finns, vilket anger om serverprogrammet startades av ett klientprogram.
BOOL RunEmbedded();
Returvärde
Nonzero om alternativet hittades; annars 0.
Anmärkningar
Om det finns tas alternativet bort från kommandoraden. Mer information om inbäddning finns i artikeln Servers: Implementing a Server.
CWinApp::SaveAllModified
Anropas av ramverket för att spara alla dokument när programmets huvudramfönster ska stängas eller via ett WM_QUERYENDSESSION meddelande.
virtual BOOL SaveAllModified();
Returvärde
Nonzero om det är säkert att avsluta programmet; 0 om det inte är säkert att avsluta programmet.
Anmärkningar
Standardimplementeringen av den här medlemsfunktionen anropar funktionen CDocument::SaveModified medlem i tur och ordning för alla ändrade dokument i programmet.
CWinApp::SelectPrinter
Anropa den här medlemsfunktionen för att välja en specifik skrivare och släpp den skrivare som tidigare har valts i dialogrutan Skriv ut.
void SelectPrinter(
HANDLE hDevNames,
HANDLE hDevMode,
BOOL bFreeOld = TRUE);
Parametrar
hDevNames
Ett handtag till en DEVNAMES-trunkering som identifierar drivrutins-, enhets- och utdataportnamnen för en specifik skrivare.
hDevMode
Ett handtag till en DEVMODE- struktur som anger information om enhetens initiering och miljö för en skrivare.
bFreeOld
Frigör den tidigare valda skrivaren.
Anmärkningar
Om både hDevMode och hDevNames är NULL använder SelectPrinter
den aktuella standardskrivaren.
CWinApp::SetHelpMode
Anger programmets hjälptyp.
void SetHelpMode(AFX_HELP_TYPE eHelpType);
Parametrar
eHelpType
Anger vilken typ av hjälp som ska användas. Mer information finns i CWinApp::m_eHelpType.
Anmärkningar
Anger programmets hjälptyp.
Om du vill ställa in programmets hjälptyp på HTMLHelp kan du anropa EnableHTMLHelp. När du anropar EnableHTMLHelp
måste programmet använda HTMLHelp som hjälpprogram. Om du vill ändra för att använda WinHelp kan du anropa SetHelpMode
och ange eHelpType- till afxWinHelp
.
CWinApp::SetRegistryKey
Gör att programinställningarna lagras i registret i stället för INI-filer.
void SetRegistryKey(LPCTSTR lpszRegistryKey);
void SetRegistryKey(UINT nIDRegistryKey);
Parametrar
lpszRegistryKey
Pekare till en sträng som innehåller namnet på nyckeln.
nIDRegistryKey
ID för en strängresurs som innehåller namnet på registernyckeln.
Anmärkningar
Den här funktionen anger m_pszRegistryKey, som sedan används av GetProfileInt
, GetProfileString
, WriteProfileInt
och WriteProfileString
medlemsfunktioner i CWinApp
. Om den här funktionen har anropats lagras även listan över senast använda filer (MRU) i registret. Registernyckeln är vanligtvis namnet på ett företag. Den lagras i en nyckel i följande formulär: HKEY_CURRENT_USER\Software\<företagsnamn>\<programnamn>\<avsnittsnamn>\<värdenamn>.
CWinApp::SupportsApplicationRecovery
Avgör om omstartshanteraren återställer ett program som oväntat avslutades.
virtual BOOL SupportsApplicationRecovery() const;
Returvärde
TRUE anger att omstartshanteraren återställer programmet. FALSE anger att omstartshanteraren inte gör det.
CWinApp::SupportsAutosaveAtInterval
Avgör om omstartshanteraren automatiskt ska spara öppna dokument med jämna mellanrum.
virtual BOOL SupportsAutosaveAtInterval() const;
Returvärde
TRUE anger att omstartshanteraren automatiskt sparar öppna dokument. FALSE anger att omstartshanteraren inte gör det.
CWinApp::SupportsAutosaveAtRestart
Avgör om omstartshanteraren automatiskt ska spara öppna dokument när programmet startas om.
virtual BOOL SupportsAutosaveAtRestart() const;
Returvärde
TRUE anger att omstartshanteraren automatiskt sparar öppna dokument när programmet startas om. FALSE anger att omstartshanteraren inte gör det.
CWinApp::SupportsRestartManager
Avgör om programmet stöder omstartshanteraren.
virtual BOOL SupportsRestartManager() const;
Returvärde
TRUE anger att programmet stöder omstartshanteraren. FALSE anger att programmet inte gör det.
CWinApp::Avregistrera
Avregistrerar alla filer som registrerats av programobjektet.
virtual BOOL Unregister();
Returvärde
Nonzero på framgång; annars 0.
Anmärkningar
Funktionen Unregister
återställer registreringen som utförs av programobjektet och funktionen Registrera. Normalt anropas båda funktionerna implicit av MFC och visas därför inte i koden.
Åsidosätt den här funktionen för att utföra anpassade avregistreringssteg.
CWinApp::UnregisterShellFileTypes
Anropa den här medlemsfunktionen för att avregistrera alla programdokumenttyper med Windows-filhanteraren.
void UnregisterShellFileTypes();
CWinApp::WinHelp
Anropa den här medlemsfunktionen för att anropa WinHelp-programmet.
virtual void WinHelp(
DWORD_PTR dwData,
UINT nCmd = HELP_CONTEXT);
Parametrar
dwData
Anger ytterligare data. Värdet som används beror på värdet för parametern nCmd.
nCmd
Anger vilken typ av hjälp som begärs. En lista över möjliga värden och hur de påverkar parametern dwData finns i funktionen WinHelp Windows.
Anmärkningar
Ramverket anropar också den här funktionen för att anropa WinHelp-programmet.
Ramverket stänger automatiskt WinHelp-programmet när programmet avslutas.
Exempel
// 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
Anropa den här medlemsfunktionen för att skriva binära data till det angivna avsnittet i programmets register eller . INI-fil.
BOOL WriteProfileBinary(
LPCTSTR lpszSection,
LPCTSTR lpszEntry,
LPBYTE pData,
UINT nBytes);
Parametrar
lpszSection
Pekar på en null-avslutad sträng som anger avsnittet som innehåller posten. Om avsnittet inte finns skapas det. Avsnittets namn är skiftlägesoberoende. strängen kan vara valfri kombination av versaler och gemener.
lpszEntry
Pekar på en null-avslutad sträng som innehåller posten som värdet ska skrivas till. Om posten inte finns i det angivna avsnittet skapas den.
pData
Pekar på de data som ska skrivas.
nBytes
Innehåller antalet byte som ska skrivas.
Returvärde
Nonzero om det lyckas; annars 0.
Exempel
I det här exemplet används CWinApp* pApp = AfxGetApp();
för att komma till klassen CWinApp som illustrerar ett sätt som WriteProfileBinary
och GetProfileBinary
kan användas från valfri funktion i ett MFC-program.
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
Ett annat exempel finns i exemplet för CWinApp::GetProfileBinary.
CWinApp::WriteProfileInt
Anropa den här medlemsfunktionen för att skriva det angivna värdet till det angivna avsnittet i programmets register eller . INI-fil.
BOOL WriteProfileInt(
LPCTSTR lpszSection,
LPCTSTR lpszEntry,
int nValue);
Parametrar
lpszSection
Pekar på en null-avslutad sträng som anger avsnittet som innehåller posten. Om avsnittet inte finns skapas det. Avsnittets namn är skiftlägesoberoende. strängen kan vara valfri kombination av versaler och gemener.
lpszEntry
Pekar på en null-avslutad sträng som innehåller posten som värdet ska skrivas till. Om posten inte finns i det angivna avsnittet skapas den.
nValue
Innehåller värdet som ska skrivas.
Returvärde
Nonzero om det lyckas; annars 0.
Exempel
I det här exemplet används CWinApp* pApp = AfxGetApp();
för att komma till klassen CWinApp som illustrerar ett sätt som WriteProfileString
, WriteProfileInt
, GetProfileString
och GetProfileInt
kan användas från valfri funktion i ett MFC-program.
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);
Ett annat exempel finns i exemplet för CWinApp::GetProfileInt.
CWinApp::WriteProfileString
Anropa den här medlemsfunktionen för att skriva den angivna strängen till det angivna avsnittet i programmets register eller . INI-fil.
BOOL WriteProfileString(
LPCTSTR lpszSection,
LPCTSTR lpszEntry,
LPCTSTR lpszValue);
Parametrar
lpszSection
Pekar på en null-avslutad sträng som anger avsnittet som innehåller posten. Om avsnittet inte finns skapas det. Avsnittets namn är skiftlägesoberoende. strängen kan vara valfri kombination av versaler och gemener.
lpszEntry
Pekar på en null-avslutad sträng som innehåller posten som värdet ska skrivas till. Om posten inte finns i det angivna avsnittet skapas den. Om den här parametern är NULL tas avsnittet som anges av lpszSection bort.
lpszValue
Pekar på strängen som ska skrivas. Om den här parametern är NULL tas posten som anges av parametern lpszEntry bort.
Returvärde
Nonzero om det lyckas; annars 0.
Exempel
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);
Ett annat exempel finns i exemplet för CWinApp::GetProfileInt.
CWinApp::SetAppID
Anger uttryckligen programanvändarmodell-ID för programmet. Den här metoden bör anropas innan något användargränssnitt visas för användaren (det bästa stället är programkonstruktorn).
void SetAppID(LPCTSTR lpcszAppID);
Parametrar
lpcszAppID
Anger programanvändarens modell-ID.
Anmärkningar
Se även
CWinThread Class
hierarkidiagram
Så här lägger du till stöd för Restart Manager