CWinApp-klasse
De basisklasse waaruit u een Windows-toepassingsobject afleiden.
Syntaxis
class CWinApp : public CWinThread
Leden
Openbare constructors
Naam | Beschrijving |
---|---|
CWinApp::CWinApp | Maakt een CWinApp -object. |
Openbare methoden
Naam | Beschrijving |
---|---|
CWinApp::AddDocTemplate- | Hiermee voegt u een documentsjabloon toe aan de lijst met beschikbare documentsjablonen van de toepassing. |
CWinApp::AddToRecentFileList | Voegt een bestandsnaam toe aan de meest recent gebruikte (MRU)-bestandslijst. |
CWinApp::ApplicationRecoveryCallback- | Aangeroepen door het framework wanneer de toepassing onverwacht wordt afgesloten. |
CWinApp::CloseAllDocuments | Hiermee sluit u alle geopende documenten. |
CWinApp::CreatePrinterDC- | Hiermee maakt u een printerapparaatcontext. |
CWinApp::D elRegTree | Hiermee verwijdert u een opgegeven sleutel en alle bijbehorende subsleutels. |
CWinApp::D oMessageBox | Implementeert AfxMessageBox- voor de toepassing. |
CWinApp::D oWaitCursor | Hiermee schakelt u de wachtcursor in en uit. |
CWinApp::EnableD2DSupport | Hiermee schakelt u D2D-ondersteuning voor toepassingen in. Roep deze methode aan voordat het hoofdvenster wordt geïnitialiseerd. |
CWinApp::EnableHtmlHelp- | Implementeert HTMLHelp voor de toepassing in plaats van WinHelp. |
CWinApp::EnableTaskbarInteraction | Hiermee schakelt u interactie op de taakbalk in. |
CWinApp::ExitInstance | Overschrijven om op te schonen wanneer uw toepassing wordt beëindigd. |
CWinApp::GetApplicationRecoveryParameter | Haalt de invoerparameter voor de toepassingsherstelmethode op. |
CWinApp::GetApplicationRecoveryPingInterval | Retourneert de tijdsduur die de manager voor opnieuw opstarten wacht totdat de functie herstelaanroep wordt geretourneerd. |
CWinApp::GetApplicationRestartFlags | Retourneert de vlaggen voor de manager voor opnieuw opstarten. |
CWinApp::GetAppRegistryKey | Retourneert de sleutel voor HKEY_CURRENT_USER\"Software"\RegistryKey\ProfileName. |
CWinApp::GetDataRecoveryHandler | Hiermee haalt u de handler voor gegevensherstel op voor dit exemplaar van de toepassing. |
CWinApp::GetFirstDocTemplatePosition | Haalt de positie van de eerste documentsjabloon op. |
CWinApp::GetHelpMode | Hiermee haalt u het type hulp op dat door de toepassing wordt gebruikt. |
CWinApp::GetNextDocTemplate | Hiermee haalt u de positie van een documentsjabloon op. Kan recursief worden gebruikt. |
CWinApp::GetPrinterDeviceDefaults | Hiermee haalt u de standaardinstellingen voor het printerapparaat op. |
CWinApp::GetProfileBinary | Haalt binaire gegevens op uit een vermelding in de toepassing. INI-bestand. |
CWinApp::GetProfileInt | Haalt een geheel getal op uit een vermelding in de toepassing. INI-bestand. |
CWinApp::GetProfileString | Haalt een tekenreeks op uit een vermelding in de toepassing. INI-bestand. |
CWinApp::GetSectionKey | Retourneert de sleutel voor HKEY_CURRENT_USER\"Software"\RegistryKey\AppName\lpszSection. |
CWinApp::HideApplication- | Hiermee verbergt u de toepassing voordat u alle documenten sluit. |
CWinApp::HtmlHelp | Roept de HTMLHelp Windows-functie aan. |
CWinApp::InitInstance | Overschrijven om initialisatie van Windows-exemplaren uit te voeren, zoals het maken van uw vensterobjecten. |
CWinApp::IsTaskbarInteractionEnabled | Hiermee wordt aangegeven of interactie met de taakbalk van Windows 7 is ingeschakeld. |
CWinApp::LoadCursor- | Hiermee wordt een cursorresource geladen. |
CWinApp::LoadIcon | Hiermee wordt een pictogramresource geladen. |
CWinApp::LoadOEMCursor | Hiermee wordt een vooraf gedefinieerde Windows OEM-cursor geladen die door de OCR_ constanten wordt opgegeven in WINDOWS.H. |
CWinApp::LoadOEMIcon | Laadt een vooraf gedefinieerd Windows OEM-pictogram dat de OIC_ constanten opgeven in WINDOWS.H. |
CWinApp::LoadStandardCursor | Hiermee wordt een vooraf gedefinieerde Windows-cursor geladen die door de IDC_ constanten wordt opgegeven in WINDOWS.H. |
CWinApp::LoadStandardIcon | Hiermee wordt een vooraf gedefinieerd Windows-pictogram geladen dat door de IDI_ constanten wordt opgegeven in WINDOWS.H. |
CWinApp::OnDDECommand- | Aangeroepen door het framework als reactie op een DDE -opdracht (Dynamic Data Exchange). |
CWinApp::OnIdle- | Overschrijven om toepassingsspecifieke niet-actieve tijdverwerking uit te voeren. |
CWinApp::OpenDocumentFile | Aangeroepen door het framework om een document te openen vanuit een bestand. |
CWinApp::P arseCommandLine | Parseert afzonderlijke parameters en vlaggen in de opdrachtregel. |
CWinApp::P reTranslateMessage | Filtert berichten voordat ze worden verzonden naar de Windows-functies TranslateMessage- en DispatchMessage-. |
CWinApp::P rocessMessageFilter | Onderschept bepaalde berichten voordat ze de toepassing bereiken. |
CWinApp::P rocessShellCommand- | Hiermee worden opdrachtregelargumenten en vlaggen verwerkt. |
CWinApp::P rocessWndProcException | Onderschept alle niet-verwerkte uitzonderingen die worden gegenereerd door de bericht- en opdrachthandlers van de toepassing. |
CWinApp:: registreren | Voert aangepaste registratie uit. |
CWinApp::RegisterWithRestartManager | Registreert de toepassing bij de manager voor opnieuw opstarten. |
CWinApp::ReopenPreviousFilesAtRestart | Bepaalt of de manager voor opnieuw opstarten de geopende bestanden opnieuw opent wanneer de toepassing onverwacht werd afgesloten. |
CWinApp::RestartInstance | Hiermee wordt het opnieuw opstarten van een toepassing verwerkt, geïnitieerd door de manager voor opnieuw opstarten. |
CWinApp::RestoreAutosavedFilesAtRestart | Bepaalt of de manager voor opnieuw opstarten de automatisch opgeslagen bestanden herstelt wanneer de toepassing opnieuw wordt opgestart. |
CWinApp::Run | Hiermee wordt de standaardberichtlus uitgevoerd. Overschrijven om de berichtenlus aan te passen. |
CWinApp::RunAutomated | Test de opdrachtregel van de toepassing voor de optie /Automation. Verouderd. Gebruik in plaats daarvan de waarde in CCommandLineInfo::m_bRunAutomated na het aanroepen van ParseCommandLine-. |
CWinApp::RunEmbedded | Test de opdrachtregel van de toepassing voor de optie /Embedding. Verouderd. Gebruik in plaats daarvan de waarde in CCommandLineInfo::m_bRunEmbedded nadat u ParseCommandLine-hebt aangeroepen. |
CWinApp::SaveAllModified | Vraagt de gebruiker om alle gewijzigde documenten op te slaan. |
CWinApp::SelectPrinter | Hiermee selecteert u een printer die eerder door een gebruiker is aangegeven via een afdrukdialoogvenster. |
CWinApp::SetHelpMode | Hiermee stelt u het type help in dat door de toepassing wordt gebruikt en initialiseert. |
CWinApp::SupportsApplicationRecovery | Bepaalt of de manager voor opnieuw opstarten een toepassing herstelt die onverwacht is afgesloten. |
CWinApp::SupportsAutosaveAtInterval | Bepaalt of de manager voor opnieuw opstarten automatisch documenten opent met een regelmatig interval. |
CWinApp::SupportsAutosaveAtRestart | Bepaalt of de manager voor opnieuw opstarten automatisch geopende documenten opslaat wanneer de toepassing opnieuw wordt opgestart. |
CWinApp::SupportsRestartManager | Bepaalt of de toepassing ondersteuning biedt voor de manager voor opnieuw opstarten. |
CWinApp::Registratie van ongedaan maken | Hiermee wordt de registratie ongedaan gemaakt van alles dat bekend is bij het CWinApp -object. |
CWinApp::WinHelp | Roept de WinHelp Windows-functie aan. |
CWinApp::WriteProfileBinary | Schrijft binaire gegevens naar een vermelding in de toepassing. INI-bestand. |
CWinApp::WriteProfileInt | Hiermee schrijft u een geheel getal naar een vermelding in de toepassing. INI-bestand. |
CWinApp::WriteProfileString- | Hiermee schrijft u een tekenreeks naar een vermelding in de toepassing. INI-bestand. |
Beveiligde methoden
Naam | Beschrijving |
---|---|
CWinApp::EnableShellOpen | Hiermee kan de gebruiker gegevensbestanden openen vanuit Windows Bestandsbeheer. |
CWinApp::LoadStdProfileSettings | Laadt standaard. INI-bestandsinstellingen en schakelt de functie MRU-bestandslijst in. |
CWinApp::OnContextHelp | Verwerkt Shift+F1 Help in de toepassing. |
CWinApp::OnFileNew- | Hiermee wordt de opdracht ID_FILE_NEW geïmplementeerd. |
CWinApp::OnFileOpen | Hiermee wordt de opdracht ID_FILE_OPEN geïmplementeerd. |
CWinApp::OnFilePrintSetup- | Hiermee wordt de opdracht ID_FILE_PRINT_SETUP geïmplementeerd. |
CWinApp::OnHelp- | Verwerkt F1 Help binnen de toepassing (met behulp van de huidige context). |
CWinApp::OnHelpFinder- | Hiermee worden de opdrachten ID_HELP_FINDER en ID_DEFAULT_HELP verwerkt. |
CWinApp::OnHelpIndex | Verwerkt de opdracht ID_HELP_INDEX en biedt een standaard-Help-onderwerp. |
CWinApp::OnHelpUsing- | Hiermee wordt de opdracht ID_HELP_USING verwerkt. |
CWinApp::RegisterShellFileTypes | Registreert alle documenttypen van de toepassing met Windows File Manager. |
CWinApp::SetAppID | Hiermee stelt u de model-id van de toepassing expliciet in voor de toepassing. Deze methode moet worden aangeroepen voordat een gebruikersinterface aan de gebruiker wordt gepresenteerd (de beste plaats is de toepassingsconstructor). |
CWinApp::SetRegistryKey | Zorgt ervoor dat toepassingsinstellingen worden opgeslagen in het register in plaats van . INI-bestanden. |
CWinApp::UnregisterShellFileTypes | De registratie van alle documenttypen van de toepassing ongedaan maken met Windows File Manager. |
Leden van openbare gegevens
Naam | Beschrijving |
---|---|
CWinApp::m_bHelpMode | Geeft aan of de gebruiker zich in de Help-contextmodus bevindt (meestal aangeroepen met Shift+F1). |
CWinApp::m_eHelpType | Hiermee geeft u het type help dat door de toepassing wordt gebruikt. |
CWinApp::m_hInstance | Identificeert het huidige exemplaar van de toepassing. |
CWinApp::m_lpCmdLine | Verwijst naar een door null beëindigde tekenreeks die de opdrachtregel voor de toepassing aangeeft. |
CWinApp::m_nCmdShow | Hiermee geeft u op hoe het venster in eerste instantie moet worden weergegeven. |
CWinApp::m_pActiveWnd | Wijs het hoofdvenster van de containertoepassing aan wanneer een OLE-server actief is. |
CWinApp::m_pszAppID | Model-id van toepassingsgebruiker. |
CWinApp::m_pszAppName | Hiermee geeft u de naam van de toepassing. |
CWinApp::m_pszExeName | De modulenaam van de toepassing. |
CWinApp::m_pszHelpFilePath | Het pad naar het Help-bestand van de toepassing. |
CWinApp::m_pszProfileName | De toepassing. INI-bestandsnaam. |
CWinApp::m_pszRegistryKey | Wordt gebruikt om de volledige registersleutel te bepalen voor het opslaan van instellingen voor het toepassingsprofiel. |
Beveiligde gegevensleden
Naam | Beschrijving |
---|---|
CWinApp::m_dwRestartManagerSupportFlags | Vlaggen die bepalen hoe de manager voor opnieuw opstarten zich gedraagt. |
CWinApp::m_nAutosaveInterval | De tijdsduur in milliseconden tussen automatisch opslaan. |
CWinApp::m_pDataRecoveryHandler | Wijs de handler voor gegevensherstel voor de toepassing aan. |
Opmerkingen
Een toepassingsobject biedt lidfuncties voor het initialiseren van uw toepassing (en elk exemplaar ervan) en voor het uitvoeren van de toepassing.
Elke toepassing die gebruikmaakt van de Microsoft Foundation-klassen kan slechts één object bevatten dat is afgeleid van CWinApp
. Dit object wordt samengesteld wanneer andere globale C++-objecten worden gemaakt en al beschikbaar zijn wanneer Windows de WinMain
-functie aanroept, die wordt geleverd door de Microsoft Foundation Class Library. Declareer uw afgeleide CWinApp
-object op globaal niveau.
Wanneer u een toepassingsklasse afleiden uit CWinApp
, overschrijft u de functie InitInstance lid om het hoofdvensterobject van uw toepassing te maken.
Naast de CWinApp
lidfuncties biedt de Microsoft Foundation Class Library de volgende globale functies voor toegang tot uw CWinApp
-object en andere algemene informatie:
AfxGetApp Verkrijgt een aanwijzer naar het
CWinApp
-object.AfxGetInstanceHandle Verkrijgt een ingang voor het huidige toepassingsexemplaren.
AfxGetResourceHandle Verkrijgt een ingang voor de resources van de toepassing.
AfxGetAppName verkrijgt een aanwijzer naar een tekenreeks met de naam van de toepassing. Als u ook een aanwijzer naar het
CWinApp
-object hebt, gebruikt um_pszExeName
om de naam van de toepassing op te halen.
Zie CWinApp: de toepassingsklasse voor meer informatie over de CWinApp
klasse, waaronder een overzicht van de volgende:
CWinApp
-afgeleide code die is geschreven door de wizard Toepassing.CWinApp
rol in de uitvoeringsvolgorde van uw toepassing.CWinApp
standaardlidfunctie-implementaties.CWinApp
belangrijke overschrijfbare functies.
Het m_hPrevInstance
gegevenslid bestaat niet meer. Gebruik een benoemde mutex om te bepalen of een ander exemplaar van de toepassing wordt uitgevoerd. Als het openen van de mutex mislukt, zijn er geen andere exemplaren van de toepassing die wordt uitgevoerd.
Overnamehiërarchie
CWinApp
Eisen
koptekst: afxwin.h
CWinApp::AddDocTemplate
Roep deze lidfunctie aan om een documentsjabloon toe te voegen aan de lijst met beschikbare documentsjablonen die door de toepassing worden onderhouden.
void AddDocTemplate(CDocTemplate* pTemplate);
Parameters
pTemplate-
Een aanwijzer naar de CDocTemplate
die moet worden toegevoegd.
Opmerkingen
U moet alle documentsjablonen toevoegen aan een toepassing voordat u RegisterShellFileTypesaanroept.
Voorbeeld
// 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
Roep deze lidfunctie aan om lpszPathName- toe te voegen aan de lijst met MRU-bestanden.
virtual void AddToRecentFileList(LPCTSTR lpszPathName);
Parameters
lpszPathName
Het pad van het bestand.
Opmerkingen
U moet de functie LoadStdProfileSettings lid aanroepen om de huidige MRU-bestandslijst te laden voordat u deze lidfunctie gebruikt.
Het framework roept deze lidfunctie aan wanneer er een bestand wordt geopend of de opdracht Opslaan als wordt uitgevoerd om een bestand met een nieuwe naam op te slaan.
Voorbeeld
// 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
Aangeroepen door het framework wanneer de toepassing onverwacht wordt afgesloten.
virtual DWORD ApplicationRecoveryCallback(LPVOID lpvParam);
Parameters
lpvParam-
[in] Gereserveerd voor toekomstig gebruik.
Retourwaarde
0 als deze methode is geslaagd; nonzero als er een fout optreedt.
Opmerkingen
Als uw toepassing ondersteuning biedt voor de manager voor opnieuw opstarten, roept het framework deze functie aan wanneer uw toepassing onverwacht wordt afgesloten.
De standaard implementatie van ApplicationRecoveryCallback
maakt gebruik van de CDataRecoveryHandler
om de lijst met momenteel geopende documenten op te slaan in het register. Met deze methode worden geen bestanden automatisch opgeslagen.
Als u het gedrag wilt aanpassen, overschrijft u deze functie in een afgeleide CWinApp-klasse of geeft u uw eigen toepassingsherstelmethode door als parameter aan CWinApp::RegisterWithRestartManager.
CWinApp::CloseAllDocuments
Roep deze lidfunctie aan om alle geopende documenten te sluiten voordat u afsluit.
void CloseAllDocuments(BOOL bEndSession);
Parameters
bEndSession-
Hiermee geeft u op of de Windows-sessie wordt beëindigd. Het is WAAR als de sessie wordt beëindigd; anders ONWAAR.
Opmerkingen
Roep HideApplication- aan voordat u CloseAllDocuments
aanroept.
CWinApp::CreatePrinterDC
Roep deze lidfunctie aan om een printerapparaatcontext (DC) te maken van de geselecteerde printer.
BOOL CreatePrinterDC(CDC& dc);
Parameters
dc-
Een verwijzing naar de context van een printerapparaat.
Retourwaarde
Niet-nul als de context van het printerapparaat is gemaakt; anders 0.
Opmerkingen
CreatePrinterDC
initialiseert de apparaatcontext die u per verwijzing doorgeeft, zodat u deze kunt gebruiken om af te drukken.
Als de functie is geslaagd, moet u de apparaatcontext vernietigen wanneer u klaar bent met afdrukken. U kunt de destructor van het CDC--object laten doen of u kunt dit expliciet doen door CDC::D eleteDC-aan te roepen.
CWinApp::CWinApp
Hiermee wordt een CWinApp
-object gemaakt en wordt lpszAppName opgeslagen als de naam van de toepassing.
CWinApp(LPCTSTR lpszAppName = NULL);
Parameters
lpszAppName-
Een door null beëindigde tekenreeks die de toepassingsnaam bevat die door Windows wordt gebruikt. Als dit argument niet is opgegeven of NULL is, gebruikt CWinApp
de resourcereeks AFX_IDS_APP_TITLE of de bestandsnaam van het uitvoerbare bestand.
Opmerkingen
U moet één globaal object van uw CWinApp
-afgeleide klasse maken. U kunt slechts één CWinApp
object in uw toepassing hebben. De constructor slaat een aanwijzer op naar het CWinApp
-object, zodat WinMain
de lidfuncties van het object kan aanroepen om de toepassing te initialiseren en uit te voeren.
CWinApp::D elRegTree
Hiermee verwijdert u een specifieke registersleutel en alle bijbehorende subsleutels.
LONG DelRegTree(
HKEY hParentKey,
const CString& strKeyName);
LONG DelRegTree(
HKEY hParentKey,
const CString& strKeyName,
CAtlTransactionManager* pTM = NULL);
Parameters
hParentKey-
Afhandelen naar een registersleutel.
strKeyName-
De naam van de registersleutel die moet worden verwijderd.
pTM-
Aanwijzer naar CAtlTransactionManager-object.
Retourwaarde
Als de functie slaagt, wordt de retourwaarde ERROR_SUCCESS. Als de functie mislukt, is de retourwaarde een niet-nulfoutcode die is gedefinieerd in Winerror.h.
Opmerkingen
Roep deze functie aan om de opgegeven sleutel en de bijbehorende subsleutels te verwijderen.
CWinApp::D oMessageBox
Het framework roept deze lidfunctie aan om een berichtvak te implementeren voor de globale functie AfxMessageBox.
virtual int DoMessageBox(
LPCTSTR lpszPrompt,
UINT nType,
UINT nIDPrompt);
Parameters
lpszPrompt-
Adres van tekst in het berichtvak.
nType
Het berichtvak stijl.
nIDPrompt-
Een index naar een Help-contexttekenreeks.
Retourwaarde
Retourneert dezelfde waarden als AfxMessageBox
.
Opmerkingen
Roep deze lidfunctie niet aan om een berichtvak te openen; gebruik in plaats daarvan AfxMessageBox
.
Overschrijf deze lidfunctie om de verwerking van AfxMessageBox
aanroepen voor de hele toepassing aan te passen.
CWinApp::D oWaitCursor
Deze lidfunctie wordt aangeroepen door het framework voor het implementeren van CWaitCursor, CCmdTarget::BeginWaitCursor, CCmdTarget::EndWaitCursoren CCmdTarget::RestoreWaitCursor.
virtual void DoWaitCursor(int nCode);
Parameters
nCode-
Als deze parameter 1 is, wordt er een wachtcursor weergegeven. Als 0, wordt de wachtcursor hersteld zonder het aantal verwijzingen te verhogen. Als -1 eindigt de wachtcursor.
Opmerkingen
De standaardinstelling implementeert een zandlopercursor.
DoWaitCursor
houdt een verwijzingsaantal bij. Als dit positief is, wordt de zandlopercursor weergegeven.
Hoewel u normaal gesproken niet rechtstreeks DoWaitCursor
aanroept, kunt u deze lidfunctie overschrijven om de wachtcursor te wijzigen of om extra verwerking uit te voeren terwijl de wachtcursor wordt weergegeven.
Gebruik CWaitCursor
voor een eenvoudigere, gestroomlijndere manier om een wachtcursor te implementeren.
Voorbeeld
// 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 is vereist.
Hiermee schakelt u D2D-ondersteuning voor toepassingen in. Roep deze methode aan voordat het hoofdvenster wordt geïnitialiseerd.
BOOL EnableD2DSupport(
D2D1_FACTORY_TYPE d2dFactoryType = D2D1_FACTORY_TYPE_SINGLE_THREADED,
DWRITE_FACTORY_TYPE writeFactoryType = DWRITE_FACTORY_TYPE_SHARED);
Parameters
d2dFactoryType-
Het threadingmodel van de D2D-factory en de resources die worden gemaakt.
writeFactoryType-
Een waarde die aangeeft of het write factory-object wordt gedeeld of geïsoleerd
Retourwaarde
Retourneert TRUE als D2D-ondersteuning is ingeschakeld, ONWAAR - anders
CWinApp::EnableHtmlHelp
Roep deze lidfunctie aan vanuit de constructor van uw CWinApp
-afgeleide klasse om HTMLHelp te gebruiken voor de help van uw toepassing.
void EnableHtmlHelp();
Opmerkingen
CWinApp::EnableShellOpen
Roep deze functie, meestal vanuit uw InitInstance
overschrijven, aan om de gebruikers van uw toepassing in staat te stellen gegevensbestanden te openen wanneer ze dubbelklikken op de bestanden vanuit Windows Bestandsbeheer.
void EnableShellOpen();
Opmerkingen
Roep de RegisterShellFileTypes
lidfunctie aan in combinatie met deze functie of geef een . REG-bestand met uw toepassing voor handmatige registratie van documenttypen.
Voorbeeld
// 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
Hiermee schakelt u interactie op de taakbalk in.
BOOL EnableTaskbarInteraction(BOOL bEnable = TRUE);
Parameters
bEnable-
Hiermee geeft u op of interactie met windows 7 taakbalk moet worden ingeschakeld (TRUE) of uitgeschakeld (ONWAAR).
Retourwaarde
Retourneert TRUE als interactie op de taakbalk kan worden ingeschakeld of uitgeschakeld.
Opmerkingen
Deze methode moet worden aangeroepen voordat het hoofdvenster wordt gemaakt, anders wordt onwaar weergegeven en geretourneerd.
CWinApp::ExitInstance
Aangeroepen door het framework vanuit de Run
lidfunctie om dit exemplaar van de toepassing af te sluiten.
virtual int ExitInstance();
Retourwaarde
De afsluitcode van de toepassing; 0 geeft geen fouten aan en waarden groter dan 0 geven een fout aan. Deze waarde wordt gebruikt als de retourwaarde van WinMain
.
Opmerkingen
Roep deze lidfunctie niet vanaf elke locatie aan, maar binnen de Run
lidfunctie.
De standaard implementatie van deze functie schrijft frameworkopties naar de toepassing. INI-bestand. Overschrijf deze functie om op te schonen wanneer uw toepassing wordt beëindigd.
Voorbeeld
int CMyApp::ExitInstance()
{
if (m_pMySampleMem)
delete m_pMySampleMem;
DoCleanup();
return CWinApp::ExitInstance();
}
CWinApp::GetApplicationRecoveryParameter
Haalt de invoerparameter voor de toepassingsherstelmethode op.
virtual LPVOID GetApplicationRecoveryParameter();
Retourwaarde
De standaardinvoerparameter voor de toepassingsherstelmethode.
Opmerkingen
Het standaardgedrag van deze functie retourneert NULL.
Zie CWinApp::ApplicationRecoveryCallbackvoor meer informatie.
CWinApp::GetApplicationRecoveryPingInterval
Retourneert de tijdsduur die de manager voor opnieuw opstarten wacht totdat de functie herstelaanroep wordt geretourneerd.
virtual DWORD GetApplicationRecoveryPingInterval();
Retourwaarde
De tijdsduur in milliseconden.
Opmerkingen
Wanneer een toepassing die is geregistreerd bij de manager voor opnieuw opstarten onverwacht wordt afgesloten, probeert de toepassing geopende documenten op te slaan en roept de callback-functie voor herstel aan. De standaard callback-functie voor herstel is CWinApp::ApplicationRecoveryCallback.
De tijdsduur die het framework wacht tot de callback-functie voor herstel moet worden geretourneerd, is het ping-interval. U kunt het pinginterval aanpassen door CWinApp::GetApplicationRecoveryPingInterval
te overschrijven of door een aangepaste waarde op te geven aan RegisterWithRestartManager
.
CWinApp::GetApplicationRestartFlags
Retourneert de vlaggen voor de manager voor opnieuw opstarten.
virtual DWORD GetApplicationRestartFlags();
Retourwaarde
De vlaggen voor de manager voor opnieuw opstarten. De standaard implementatie retourneert 0.
Opmerkingen
De vlaggen voor de manager voor opnieuw opstarten hebben geen effect met de standaard implementatie. Ze worden verstrekt voor toekomstig gebruik.
U stelt de vlaggen in wanneer u de toepassing registreert bij de manager voor opnieuw opstarten met behulp van CWinApp::RegisterWithRestartManager.
De mogelijke waarden voor de vlaggen van de manager voor opnieuw opstarten zijn als volgt:
RESTART_NO_CRASH
RESTART_NO_HANG
RESTART_NO_PATCH
RESTART_NO_REBOOT
CWinApp::GetAppRegistryKey
Retourneert de sleutel voor HKEY_CURRENT_USER\"Software"\RegistryKey\ProfileName.
HKEY GetAppRegistryKey(CAtlTransactionManager* pTM = NULL);
Parameters
pTM-
Aanwijzer naar een CAtlTransactionManager
-object.
Retourwaarde
Toepassingssleutel als de functie slaagt; anders NULL.
Opmerkingen
CWinApp::GetDataRecoveryHandler
Hiermee haalt u de handler voor gegevensherstel op voor dit exemplaar van de toepassing.
virtual CDataRecoveryHandler *GetDataRecoveryHandler();
Retourwaarde
De handler voor gegevensherstel voor dit exemplaar van de toepassing.
Opmerkingen
Elke toepassing die gebruikmaakt van de manager voor opnieuw opstarten, moet één exemplaar van de CDataRecoveryHandler-klassehebben. Deze klasse is verantwoordelijk voor het bewaken van geopende documenten en het automatisch opslaan van bestanden. Het gedrag van de CDataRecoveryHandler
is afhankelijk van de configuratie van de manager voor opnieuw opstarten. Zie CDataRecoveryHandler Classvoor meer informatie.
Deze methode retourneert NULL op besturingssystemen ouder dan Windows Vista. De manager voor opnieuw opstarten wordt niet ondersteund op besturingssystemen ouder dan Windows Vista.
Als de toepassing momenteel geen handler voor gegevensherstel heeft, maakt deze methode er een en retourneert deze een aanwijzer.
CWinApp::GetFirstDocTemplatePosition
Hiermee haalt u de positie op van de eerste documentsjabloon in de toepassing.
POSITION GetFirstDocTemplatePosition() const;
Retourwaarde
Een POSITION-waarde die kan worden gebruikt voor iteratie of het ophalen van objectaanwijzers; NULL als de lijst leeg is.
Opmerkingen
Gebruik de POSITION-waarde die wordt geretourneerd in een aanroep om GetNextDocTemplate- op te halen om het eerste CDocTemplate--object op te halen.
CWinApp::GetHelpMode
Hiermee haalt u het type hulp op dat door de toepassing wordt gebruikt.
AFX_HELP_TYPE GetHelpMode();
Retourwaarde
Het Help-type dat door de toepassing wordt gebruikt. Zie CWinApp::m_eHelpType voor meer informatie.
CWinApp::GetNextDocTemplate
Hiermee haalt u de documentsjabloon op die wordt geïdentificeerd door posen stelt u pos in op de waarde POSITION.
CDocTemplate* GetNextDocTemplate(POSITION& pos) const;
Parameters
pos
Een verwijzing naar een POSITION-waarde die wordt geretourneerd door een eerdere aanroep naar GetNextDocTemplate
of GetFirstDocTemplatePosition. De waarde wordt bijgewerkt naar de volgende positie door deze aanroep.
Retourwaarde
Een aanwijzer naar een CDocTemplate-object.
Opmerkingen
U kunt GetNextDocTemplate
in een doorstuurlus gebruiken als u de initiële positie met een aanroep naar GetFirstDocTemplatePosition
tot stand brengt.
U moet ervoor zorgen dat uw POSITION-waarde geldig is. Als deze ongeldig is, wordt de foutopsporingsversie van de Microsoft Foundation Class Library asserties.
Als de opgehaalde documentsjabloon de laatst beschikbare is, wordt de nieuwe waarde van pos ingesteld op NULL.
CWinApp::GetPrinterDeviceDefaults
Roep deze lidfunctie aan om een printerapparaatcontext voor te bereiden voor afdrukken.
BOOL GetPrinterDeviceDefaults(struct tagPDA* pPrintDlg);
Parameters
pPrintDlg-
Een aanwijzer naar een PRINTDLG structuur.
Retourwaarde
Niet-nul indien geslaagd; anders 0.
Opmerkingen
Hiermee haalt u de standaardinstellingen voor de huidige printer op uit Windows. INI-bestand indien nodig of gebruikt de laatste printerconfiguratie die door de gebruiker is ingesteld in Print Setup.
Voorbeeld
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
Roep deze lidfunctie aan om binaire gegevens op te halen uit een vermelding in een opgegeven sectie van het register van de toepassing of . INI-bestand.
BOOL GetProfileBinary(
LPCTSTR lpszSection,
LPCTSTR lpszEntry,
LPBYTE* ppData,
UINT* pBytes);
Parameters
lpszSection-
Verwijst naar een door null beëindigde tekenreeks die de sectie met de vermelding aangeeft.
lpszEntry-
Verwijst naar een door null beëindigde tekenreeks die de vermelding bevat waarvan de waarde moet worden opgehaald.
ppData-
Verwijst naar een aanwijzer die het adres van de gegevens ontvangt.
pBytes-
Verwijst naar een UINT die de grootte van de gegevens ontvangt (in bytes).
Retourwaarde
Niet-nul indien geslaagd; anders 0.
Opmerkingen
Deze lidfunctie is niet hoofdlettergevoelig, dus de tekenreeksen in de lpszSection en lpszEntry parameters kunnen verschillen in het geval.
Notitie
GetProfileBinary
wijst een buffer toe en retourneert het adres in * ppData-. De beller is verantwoordelijk voor het vrijmaken van de buffer met behulp van verwijderen [].
Belangrijk
De gegevens die door deze functie worden geretourneerd, zijn niet noodzakelijkerwijs NULL beëindigd en de aanroeper moet validatie uitvoeren. Zie Bufferoverschrijdingen voorkomenvoor meer informatie.
Voorbeeld
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
Zie CWinApp::WriteProfileBinaryvoor een extra voorbeeld.
CWinApp::GetProfileInt
Roep deze lidfunctie aan om de waarde van een geheel getal op te halen uit een vermelding in een opgegeven sectie van het register van de toepassing of . INI-bestand.
UINT GetProfileInt(
LPCTSTR lpszSection,
LPCTSTR lpszEntry,
int nDefault);
Parameters
lpszSection-
Verwijst naar een door null beëindigde tekenreeks die de sectie met de vermelding aangeeft.
lpszEntry-
Verwijst naar een door null beëindigde tekenreeks die de vermelding bevat waarvan de waarde moet worden opgehaald.
nDefault-
Hiermee geeft u de standaardwaarde op die moet worden geretourneerd als het framework de vermelding niet kan vinden.
Retourwaarde
De gehele waarde van de tekenreeks die volgt op de opgegeven vermelding als de functie is geslaagd. De retourwaarde is de waarde van de nDefault parameter als de functie de vermelding niet vindt. De retourwaarde is 0 als de waarde die overeenkomt met de opgegeven vermelding geen geheel getal is.
Deze lidfunctie ondersteunt hexadecimale notatie voor de waarde in de . INI-bestand. Wanneer u een ondertekend geheel getal ophaalt, moet u de waarde naar een int
casten.
Opmerkingen
Deze lidfunctie is niet hoofdlettergevoelig, dus de tekenreeksen in de lpszSection en lpszEntry parameters kunnen verschillen in het geval.
Belangrijk
De gegevens die door deze functie worden geretourneerd, zijn niet noodzakelijkerwijs NULL beëindigd en de aanroeper moet validatie uitvoeren. Zie Bufferoverschrijdingen voorkomenvoor meer informatie.
Voorbeeld
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);
Zie CWinApp::WriteProfileIntvoor een extra voorbeeld.
CWinApp::GetProfileString
Roep deze lidfunctie aan om de tekenreeks op te halen die is gekoppeld aan een vermelding in de opgegeven sectie in het register van de toepassing of . INI-bestand.
CString GetProfileString(
LPCTSTR lpszSection,
LPCTSTR lpszEntry,
LPCTSTR lpszDefault = NULL);
Parameters
lpszSection-
Verwijst naar een door null beëindigde tekenreeks die de sectie met de vermelding aangeeft.
lpszEntry-
Verwijst naar een door null beëindigde tekenreeks die de vermelding bevat waarvan de tekenreeks moet worden opgehaald. Deze waarde mag niet NULL zijn.
lpszDefault-
Verwijst naar de standaardtekenreekswaarde voor de opgegeven vermelding als de vermelding niet kan worden gevonden in het initialisatiebestand.
Retourwaarde
De retourwaarde is de tekenreeks van de toepassing. INI-bestand of lpszDefault als de tekenreeks niet kan worden gevonden. De maximale tekenreekslengte die door het framework wordt ondersteund, is _MAX_PATH. Als lpszDefault- NULL is, is de retourwaarde een lege tekenreeks.
Opmerkingen
Belangrijk
De gegevens die door deze functie worden geretourneerd, zijn niet noodzakelijkerwijs NULL beëindigd en de aanroeper moet validatie uitvoeren. Zie Bufferoverschrijdingen voorkomenvoor meer informatie.
Voorbeeld
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);
Zie het voorbeeld voor CWinApp::GetProfileIntvoor een ander voorbeeld.
CWinApp::GetSectionKey
Retourneert de sleutel voor HKEY_CURRENT_USER\"Software"\RegistryKey\AppName\lpszSection.
HKEY GetSectionKey(
LPCTSTR lpszSection,
CAtlTransactionManager* pTM = NULL);
Parameters
lpszSection-
De naam van de sleutel die moet worden verkregen.
pTM-
Aanwijzer naar een CAtlTransactionManager
-object.
Retourwaarde
Sectiesleutel als de functie slaagt; anders NULL.
Opmerkingen
CWinApp::HideApplication
Roep deze lidfunctie aan om een toepassing te verbergen voordat u de geopende documenten sluit.
void HideApplication();
CWinApp::HtmlHelp
Roep deze lidfunctie aan om de HTMLHelp-toepassing aan te roepen.
virtual void HtmlHelp(
DWORD_PTR dwData,
UINT nCmd = 0x000F);
Parameters
dwData-
Hiermee geeft u aanvullende gegevens op. De gebruikte waarde is afhankelijk van de waarde van de parameter nCmd. Standaard ingesteld op 0x000F
, wat HH_HELP_CONTEXTbetekent.
nCmd-
Hiermee geeft u het type hulp aangevraagd. Zie voor een lijst met mogelijke waarden en hoe deze van invloed zijn op de parameter dwData de parameter uCommand beschreven in de HtmlHelpW- of HtmlHelpA API-functies in de Windows SDK.
Opmerkingen
Het framework roept deze functie ook aan om de HTMLHelp-toepassing aan te roepen.
Het framework sluit de HTMLHelp-toepassing automatisch wanneer uw toepassing wordt beëindigd.
CWinApp::InitInstance
In Windows kunnen verschillende exemplaren van hetzelfde programma tegelijkertijd worden uitgevoerd.
virtual BOOL InitInstance();
Retourwaarde
Niet-nul als initialisatie is geslaagd; anders 0.
Opmerkingen
Initialisatie van toepassingen is conceptueel onderverdeeld in twee secties: eenmalige initialisatie van toepassingen die wordt uitgevoerd wanneer het programma voor het eerst wordt uitgevoerd en initialisatie van exemplaren die telkens worden uitgevoerd wanneer een kopie van het programma wordt uitgevoerd, inclusief de eerste keer. De implementatie van het framework van WinMain
roept deze functie aan.
Overschrijf InitInstance
om elk nieuw exemplaar van uw toepassing te initialiseren dat wordt uitgevoerd onder Windows. Normaal gesproken overschrijft u InitInstance
om het hoofdvensterobject te maken en stelt u het CWinThread::m_pMainWnd
gegevenslid in om naar dat venster te verwijzen. Zie CWinApp: De toepassingsklassevoor meer informatie over het overschrijven van deze lidfunctie.
Notitie
MFC-toepassingen moeten worden geïnitialiseerd als één threaded appartement (STA). Als u CoInitializeEx aanroept in uw InitInstance
overschrijven, geeft u COINIT_APARTMENTTHREADED op (in plaats van COINIT_MULTITHREADED).
Voorbeeld
// 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
Hiermee wordt aangegeven of interactie met de taakbalk van Windows 7 is ingeschakeld.
virtual BOOL IsTaskbarInteractionEnabled();
Retourwaarde
Retourneert TRUE als EnableTaskbarInteraction
is aangeroepen en het besturingssysteem Windows 7 of hoger is.
Opmerkingen
Interactie op de taakbalk betekent dat de MDI-toepassing de inhoud weergeeft van MDI-onderliggende items in afzonderlijke miniaturen op tabbladen die worden weergegeven wanneer de muis aanwijzer op de taakbalkknop van de toepassing staat.
CWinApp::LoadCursor
Laadt de cursorresource met de naam lpszResourceName of opgegeven door nIDResource uit het huidige uitvoerbare bestand.
HCURSOR LoadCursor(LPCTSTR lpszResourceName) const; HCURSOR LoadCursor(UINT nIDResource) const;
Parameters
lpszResourceName
Verwijst naar een door null beëindigde tekenreeks die de naam van de cursorresource bevat. U kunt een CString
gebruiken voor dit argument.
nIDResource-
Id van de cursorresource. Zie LoadCursor- in de Windows SDK voor een lijst met resources.
Retourwaarde
Een ingang naar een cursor als dit lukt; anders NULL.
Opmerkingen
LoadCursor
de cursor alleen in het geheugen laadt als deze nog niet eerder is geladen; anders wordt een ingang van de bestaande resource opgehaald.
Gebruik de functie LoadStandardCursor of LoadOEMCursor lidfunctie voor toegang tot de vooraf gedefinieerde Windows-cursors.
Voorbeeld
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
Laadt de pictogramresource met de naam lpszResourceName of opgegeven door nIDResource uit het uitvoerbare bestand.
HICON LoadIcon(LPCTSTR lpszResourceName) const; HICON LoadIcon(UINT nIDResource) const;
Parameters
lpszResourceName
Verwijst naar een door null beëindigde tekenreeks die de naam van de pictogramresource bevat. U kunt ook een CString
voor dit argument gebruiken.
nIDResource-
Id-nummer van de pictogramresource.
Retourwaarde
Een ingang naar een pictogram als dit lukt; anders NULL.
Opmerkingen
LoadIcon
het pictogram alleen laadt als het niet eerder is geladen; anders wordt een ingang van de bestaande resource opgehaald.
U kunt de functie LoadStandardIcon of LoadOEMIcon lidfunctie gebruiken voor toegang tot de vooraf gedefinieerde Windows-pictogrammen.
Notitie
Deze lidfunctie roept de Win32 API-functie aan LoadIcon, die alleen een pictogram kan laden waarvan de grootte voldoet aan de metrische waarden van het SM_CXICON en SM_CYICON systeem.
CWinApp::LoadOEMCursor
Laadt de vooraf gedefinieerde Windows-cursorresource die is opgegeven door nIDCursor-.
HCURSOR LoadOEMCursor(UINT nIDCursor) const;
Parameters
nIDCursor-
Een OCR_ manifestconstante-id waarmee een vooraf gedefinieerde Windows-cursor wordt opgegeven. U moet #define OEMRESOURCE
hebben voordat #include \<afxwin.h>
om toegang te krijgen tot de OCR_ constanten in WINDOWS.H.
Retourwaarde
Een ingang naar een cursor als dit lukt; anders NULL.
Opmerkingen
Gebruik de functie LoadOEMCursor
of LoadStandardCursor lid om toegang te krijgen tot de vooraf gedefinieerde Windows-cursors.
Voorbeeld
// 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
Laadt de vooraf gedefinieerde Windows-pictogramresource die is opgegeven door nIDIcon.
HICON LoadOEMIcon(UINT nIDIcon) const;
Parameters
nIDIcon-
Een OIC_ manifestconstante id waarmee een vooraf gedefinieerd Windows-pictogram wordt opgegeven. U moet #define OEMRESOURCE
hebben voordat #include \<afxwin.h>
toegang heeft tot de OIC_ constanten in WINDOWS.H.
Retourwaarde
Een ingang naar een pictogram als dit lukt; anders NULL.
Opmerkingen
Gebruik de functie LoadOEMIcon
of LoadStandardIcon lid om toegang te krijgen tot de vooraf gedefinieerde Windows-pictogrammen.
CWinApp::LoadStandardCursor
Laadt de vooraf gedefinieerde Windows-cursorresource die lpszCursorName opgeeft.
HCURSOR LoadStandardCursor(LPCTSTR lpszCursorName) const;
Parameters
lpszCursorName
Een IDC_ manifestconstante-id waarmee een vooraf gedefinieerde Windows-cursor wordt opgegeven. Deze id's worden gedefinieerd in WINDOWS.H. De volgende lijst bevat de mogelijke vooraf gedefinieerde waarden en betekenissen voor lpszCursorName:
IDC_ARROW standaardpijlcursor
IDC_IBEAM standaard cursor voor tekstinvoeging
IDC_WAIT zandlopercursor gebruikt wanneer Windows een tijdrovende taak uitvoert
IDC_CROSS kruiscursor voor selectie
IDC_UPARROW pijl die recht omhoog wijst
IDC_SIZE verouderd en niet ondersteund; IDC_SIZEALL gebruiken
IDC_SIZEALL Een vierpuntige pijl. De cursor die u wilt gebruiken om het formaat van een venster te wijzigen.
IDC_ICON verouderd en niet ondersteund. Gebruik IDC_ARROW.
IDC_SIZENWSE tweepuntige pijl met uiteinden linksboven en rechtsonder
IDC_SIZENESW pijl met twee punten rechtsboven en linksonder
IDC_SIZEWE horizontale tweepuntige pijl
IDC_SIZENS verticale tweepuntige pijl
Retourwaarde
Een ingang naar een cursor als dit lukt; anders NULL.
Opmerkingen
Gebruik de functie LoadStandardCursor
of LoadOEMCursor lid om toegang te krijgen tot de vooraf gedefinieerde Windows-cursors.
Voorbeeld
HCURSOR hCursor;
// Load the predefined Windows "up arrow" cursor.
hCursor = AfxGetApp()->LoadStandardCursor(IDC_UPARROW);
CWinApp::LoadStandardIcon
Laadt de vooraf gedefinieerde Windows-pictogramresource die lpszIconName opgeeft.
HICON LoadStandardIcon(LPCTSTR lpszIconName) const;
Parameters
lpszIconName
Een manifestconstante-id die een vooraf gedefinieerd Windows-pictogram aangeeft. Deze id's worden gedefinieerd in WINDOWS.H. Zie de parameter lpIconName in LoadIcon in de Windows SDK voor een lijst met mogelijke vooraf gedefinieerde waarden en beschrijvingen.
Retourwaarde
Een ingang naar een pictogram als dit lukt; anders NULL.
Opmerkingen
Gebruik de functie LoadStandardIcon
of LoadOEMIcon lid om toegang te krijgen tot de vooraf gedefinieerde Windows-pictogrammen.
CWinApp::LoadStdProfileSettings
Roep deze lidfunctie aan vanuit de functie InitInstance lid om de lijst met meest recent gebruikte (MRU)-bestanden en de laatste preview-status in te schakelen en te laden.
void LoadStdProfileSettings(UINT nMaxMRU = _AFX_MRU_COUNT);
Parameters
nMaxMRU-
Het aantal onlangs gebruikte bestanden dat moet worden bijgehouden.
Opmerkingen
Als nMaxMRU 0 is, wordt er geen MRU-lijst bijgehouden.
CWinApp::m_bHelpMode
WAAR als de toepassing zich in de Help-contextmodus bevindt (conventioneel aangeroepen met SHIFT + F1); anders ONWAAR.
BOOL m_bHelpMode;
Opmerkingen
In de Help-contextmodus wordt de cursor een vraagteken en kan de gebruiker deze over het scherm verplaatsen. Bekijk deze vlag als u speciale verwerking wilt implementeren in de Help-modus.
m_bHelpMode
is een openbare variabele van het type BOOL.
CWinApp::m_dwRestartManagerSupportFlags
Vlaggen die bepalen hoe de manager voor opnieuw opstarten zich gedraagt.
DWORD m_dwRestartManagerSupportFlags;
Opmerkingen
Als u de manager voor opnieuw opstarten wilt inschakelen, stelt u m_dwRestartManagerSupportFlags
in op het gewenste gedrag. In de volgende tabel ziet u de vlaggen die beschikbaar zijn.
Vlag | Beschrijving |
---|---|
AFX_RESTART_MANAGER_SUPPORT_RESTART | De toepassing wordt geregistreerd met behulp van CWinApp::RegisterWithRestartManager. De manager voor opnieuw opstarten is verantwoordelijk voor het opnieuw opstarten van de toepassing als deze onverwacht wordt afgesloten. |
- AFX_RESTART_MANAGER_SUPPORT_RECOVERY | De toepassing wordt geregistreerd bij de manager voor opnieuw opstarten en de manager voor opnieuw opstarten roept de functie voor herstelaanroep aan wanneer de toepassing opnieuw wordt opgestart. De standaard callback-functie voor herstel is CWinApp::ApplicationRecoveryCallback. |
- AFX_RESTART_MANAGER_AUTOSAVE_AT_RESTART | Automatisch opslaan is ingeschakeld en de manager voor opnieuw opstarten automatisch geopende documenten opslaan wanneer de toepassing opnieuw wordt opgestart. |
- AFX_RESTART_MANAGER_AUTOSAVE_AT_INTERVAL | Automatisch opslaan is ingeschakeld en de manager voor het opnieuw opstarten automatisch opslaan van geopende documenten met een regelmatig interval. Het interval wordt gedefinieerd door CWinApp::m_nAutosaveInterval. |
- AFX_RESTART_MANAGER_REOPEN_PREVIOUS_FILES | De manager voor opnieuw opstarten opent eerder documenten nadat de toepassing opnieuw is opgestart vanaf een onverwachte afsluiting. De CDataRecoveryHandler Class verwerkt het opslaan van de lijst met geopende documenten en het herstellen ervan. |
- AFX_RESTART_MANAGER_RESTORE_AUTOSAVED_FILES | De manager voor opnieuw opstarten vraagt de gebruiker om automatisch opgeslagen bestanden te herstellen nadat de toepassing opnieuw is opgestart. De CDataRecoveryHandler klasse voert een query uit op de gebruiker. |
- AFX_RESTART_MANAGER_SUPPORT_NO_AUTOSAVE | De samenvoeging van AFX_RESTART_MANAGER_SUPPORT_RESTART, AFX_RESTART_MANAGER_SUPPORT_RECOVER en AFX_RESTART_MANAGER_REOPEN_PREVIOUS_FILES. |
- AFX_RESTART_MANAGER_SUPPORT_ALL_ASPECTS | De samenvoeging van AFX_RESTART_MANAGER_SUPPORT_NO_AUTOSAVE, AFX_RESTART_MANAGER_AUTOSAVE_AT_RESTART, AFX_RESTART_MANAGER_AUTOSAVE_AT_INTERVAL en AFX_RESTART_MANAGER_RESTORE_AUTOSAVED_FILES. |
- AFX_RESTART_MANAGER_SUPPORT_RESTART_ASPECTS | De samenvoeging van AFX_RESTART_MANAGER_SUPPORT_RESTART, AFX_RESTART_MANAGER_AUTOSAVE_AT_RESTART, AFX_RESTART_MANAGER_REOPEN_PREVIOUS_FILES en AFX_RESTART_MANAGER_RESTORE_AUTOSAVED_FILES. |
- AFX_RESTART_MANAGER_SUPPORT_RECOVERY_ASPECTS | De samenvoeging ofAFX_RESTART_MANAGER_SUPPORT_RECOVERY, AFX_RESTART_MANAGER_AUTOSAVE_AT_INTERVAL, AFX_RESTART_MANAGER_REOPEN_PREVIOUS_FILES en AFX_RESTART_MANAGER_RESTORE_AUTOSAVED_FILES. |
CWinApp::m_eHelpType
Het type van dit gegevenslid is het geïnventariseerd type AFX_HELP_TYPE, dat is gedefinieerd in de CWinApp
-klasse.
AFX_HELP_TYPE m_eHelpType;
Opmerkingen
De opsomming AFX_HELP_TYPE wordt als volgt gedefinieerd:
enum AFX_HELP_TYPE {
afxWinHelp = 0,
afxHTMLHelp = 1
};
Als u de Help van de toepassing wilt instellen op HTML Help, roept u SetHelpMode- aan en geeft u
afxHTMLHelp
op.Als u de help van de toepassing wilt instellen voor WinHelp, roept u
SetHelpMode
aan en geeft uafxWinHelp
op.
CWinApp::m_hInstance
Komt overeen met de hInstance- parameter die door Windows wordt doorgegeven aan WinMain
.
HINSTANCE m_hInstance;
Opmerkingen
Het m_hInstance
gegevenslid is een ingang voor het huidige exemplaar van de toepassing die wordt uitgevoerd onder Windows. Dit wordt geretourneerd door de globale functie AfxGetInstanceHandle.
m_hInstance
is een openbare variabele van het type HINSTANCE.
Voorbeeld
// 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
Komt overeen met de parameter lpCmdLine die door Windows wordt doorgegeven aan WinMain
.
LPTSTR m_lpCmdLine;
Opmerkingen
Verwijst naar een door null beëindigde tekenreeks die de opdrachtregel voor de toepassing aangeeft. Gebruik m_lpCmdLine
om toegang te krijgen tot opdrachtregelargumenten die de gebruiker heeft ingevoerd toen de toepassing werd gestart.
m_lpCmdLine
is een openbare variabele van het type LPTSTR.
Voorbeeld
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
De tijdsduur in milliseconden tussen automatisch opslaan.
int m_nAutosaveInterval;
Opmerkingen
U kunt het beheer voor opnieuw opstarten configureren om geopende documenten automatisch op te slaan met ingestelde intervallen. Als uw toepassing geen bestanden automatisch opslaat, heeft deze parameter geen effect.
CWinApp::m_nCmdShow
Komt overeen met de parameter nCmdShow door Windows doorgegeven aan WinMain
.
int m_nCmdShow;
Opmerkingen
Geef m_nCmdShow
als argument door wanneer u CWnd::ShowWindow aanroept voor het hoofdvenster van uw toepassing.
m_nCmdShow
is een openbare variabele van het type int
.
Voorbeeld
// 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
Gebruik dit gegevenslid om een aanwijzer op te slaan naar het hoofdvenster van de OLE-containertoepassing waarop de OLE-servertoepassing is geactiveerd.
Opmerkingen
Als dit gegevenslid NULL is, is de toepassing niet in-place actief.
Het framework stelt deze lidvariabele in wanneer het framevenster is geactiveerd door een OLE-containertoepassing.
CWinApp::m_pDataRecoveryHandler
Wijs de handler voor gegevensherstel voor de toepassing aan.
CDataRecoveryHandler* m_pDataRecoveryHandler;
Opmerkingen
Met de gegevensherstelhandler van een toepassing worden geopende documenten bewaakt en automatisch opgeslagen. Het framework maakt gebruik van de handler voor gegevensherstel om automatisch opgeslagen bestanden te herstellen wanneer een toepassing opnieuw wordt opgestart nadat deze onverwacht is afgesloten. Zie CDataRecoveryHandler Classvoor meer informatie.
CWinApp::m_pszAppName
Hiermee geeft u de naam van de toepassing.
LPCTSTR m_pszAppName;
Opmerkingen
De naam van de toepassing kan afkomstig zijn van de parameter die is doorgegeven aan de CWinApp constructor, of, indien niet opgegeven, aan de resourcereeks met de id van AFX_IDS_APP_TITLE. Als de naam van de toepassing niet in de resource wordt gevonden, komt deze uit de .EXE bestandsnaam van het programma.
Geretourneerd door de globale functie AfxGetAppName.
m_pszAppName
is een openbare variabele van het type const char*.
Notitie
Als u een waarde toewijst aan m_pszAppName
, moet deze dynamisch worden toegewezen aan de heap. De CWinApp
destructor roept gratis( ) aan met deze aanwijzer. U wilt de runtime-functie _tcsdup
( ) gebruiken om de toewijzing uit te voeren. Maak ook het geheugen vrij dat is gekoppeld aan de huidige aanwijzer voordat u een nieuwe waarde toewijst. Bijvoorbeeld:
//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"));
Voorbeeld
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
Bevat de naam van het uitvoerbare bestand van de toepassing zonder extensie.
LPCTSTR m_pszExeName;
Opmerkingen
In tegenstelling tot m_pszAppNamemag deze naam geen lege waarden bevatten.
m_pszExeName
is een openbare variabele van het type const char*.
Notitie
Als u een waarde toewijst aan m_pszExeName
, moet deze dynamisch worden toegewezen aan de heap. De CWinApp
destructor roept gratis( ) aan met deze aanwijzer. U wilt de runtime-functie _tcsdup
( ) gebruiken om de toewijzing uit te voeren. Maak ook het geheugen vrij dat is gekoppeld aan de huidige aanwijzer voordat u een nieuwe waarde toewijst. Bijvoorbeeld:
//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
Bevat het pad naar het Help-bestand van de toepassing.
LPCTSTR m_pszHelpFilePath;
Opmerkingen
Standaard initialiseert het framework m_pszHelpFilePath
met de naam van de toepassing met '. HLP' toegevoegd. Als u de naam van het Help-bestand wilt wijzigen, stelt u m_pszHelpFilePath
in zodat deze verwijst naar een tekenreeks die de volledige naam van het gewenste Help-bestand bevat. Een handige plek om dit te doen, is in de InitInstance functie van de toepassing.
m_pszHelpFilePath
is een openbare variabele van het type const char*.
Notitie
Als u een waarde toewijst aan m_pszHelpFilePath
, moet deze dynamisch worden toegewezen aan de heap. De CWinApp
destructor roept gratis( ) aan met deze aanwijzer. U wilt de runtime-functie _tcsdup
( ) gebruiken om de toewijzing uit te voeren. Maak ook het geheugen vrij dat is gekoppeld aan de huidige aanwijzer voordat u een nieuwe waarde toewijst. Bijvoorbeeld:
//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
Bevat de naam van de toepassing. INI-bestand.
LPCTSTR m_pszProfileName;
Opmerkingen
m_pszProfileName
is een openbare variabele van het type const char*.
Notitie
Als u een waarde toewijst aan m_pszProfileName
, moet deze dynamisch worden toegewezen aan de heap. De CWinApp
destructor roept gratis( ) aan met deze aanwijzer. U wilt de runtime-functie _tcsdup
( ) gebruiken om de toewijzing uit te voeren. Maak ook het geheugen vrij dat is gekoppeld aan de huidige aanwijzer voordat u een nieuwe waarde toewijst. Bijvoorbeeld:
//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
Wordt gebruikt om te bepalen waar, in het register- of INI-bestand, instellingen voor toepassingsprofielen worden opgeslagen.
LPCTSTR m_pszRegistryKey;
Opmerkingen
Normaal gesproken wordt dit gegevenslid behandeld als alleen-lezen.
- De waarde wordt opgeslagen in een registersleutel. De naam voor de toepassingsprofielinstelling wordt toegevoegd aan de volgende registersleutel: HKEY_CURRENT_USER/Software/LocalAppWizard-Generated/.
Als u een waarde toewijst aan m_pszRegistryKey
, moet deze dynamisch worden toegewezen aan de heap. De CWinApp
destructor roept gratis( ) aan met deze aanwijzer. U wilt de runtime-functie _tcsdup
( ) gebruiken om de toewijzing uit te voeren. Maak ook het geheugen vrij dat is gekoppeld aan de huidige aanwijzer voordat u een nieuwe waarde toewijst. Bijvoorbeeld:
//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
Model-id van toepassingsgebruiker.
LPCTSTR m_pszAppID;
Opmerkingen
CWinApp::OnContextHelp
Verwerkt Shift+F1 Help in de toepassing.
afx_msg void OnContextHelp();
Opmerkingen
U moet een ON_COMMAND( ID_CONTEXT_HELP, OnContextHelp )
instructie toevoegen aan uw CWinApp
klasseberichtoverzicht en ook een vermelding voor de tabelversneller toevoegen, meestal Shift+F1, om deze lidfunctie in te schakelen.
OnContextHelp
de toepassing in de Help-modus plaatst. De cursor verandert in een pijl en een vraagteken en de gebruiker kan vervolgens de muisaanwijzer verplaatsen en op de linkermuisknop drukken om een dialoogvenster, venster, menu of opdrachtknop te selecteren. Deze lidfunctie haalt de Help-context van het object onder de cursor op en roept de Windows-functie WinHelp aan met die Help-context.
CWinApp::OnDDECommand
Aangeroepen door het framework wanneer het hoofdframevenster een DDE-uitvoerbericht ontvangt.
virtual BOOL OnDDECommand(LPTSTR lpszCommand);
Parameters
lpszCommand-
Verwijst naar een DDE-opdrachtreeks die door de toepassing is ontvangen.
Retourwaarde
Niet-nul als de opdracht wordt verwerkt; anders 0.
Opmerkingen
De standaard implementatie controleert of de opdracht een aanvraag is om een document te openen. Als dit het volgende is, wordt het opgegeven document geopend. Windows File Manager verzendt meestal dergelijke DDE-opdrachtreeksen wanneer de gebruiker dubbelklikt op een gegevensbestand. Overschrijf deze functie om andere DDE-opdrachten uit te voeren, zoals de opdracht die moet worden afgedrukt.
Voorbeeld
BOOL CMyApp::OnDDECommand(LPTSTR lpszCommand)
{
if (CWinApp::OnDDECommand(lpszCommand))
return TRUE;
// Handle any DDE commands recognized by your application
// and return TRUE. See implementation of CWinApp::OnDDEComand
// for example of parsing the DDE command string.
// Return FALSE for any DDE commands you do not handle.
return FALSE;
}
CWinApp::OnFileNew
Hiermee wordt de opdracht ID_FILE_NEW geïmplementeerd.
afx_msg void OnFileNew();
Opmerkingen
U moet een ON_COMMAND( ID_FILE_NEW, OnFileNew )
instructie toevoegen aan de CWinApp
klasseberichttoewijzing om deze lidfunctie in te schakelen. Als deze functie is ingeschakeld, wordt de uitvoering van de opdracht Bestand nieuw afgehandeld.
Zie Technical Note 22 voor informatie over het standaardgedrag en richtlijnen voor het overschrijven van deze lidfunctie.
Voorbeeld
// 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
Hiermee wordt de opdracht ID_FILE_OPEN geïmplementeerd.
afx_msg void OnFileOpen();
Opmerkingen
U moet een ON_COMMAND( ID_FILE_OPEN, OnFileOpen )
instructie toevoegen aan de CWinApp
klasseberichttoewijzing om deze lidfunctie in te schakelen. Als deze functie is ingeschakeld, wordt de uitvoering van de opdracht Bestand openen afgehandeld.
Zie Technical Note 22voor informatie over het standaardgedrag en de richtlijnen voor het overschrijven van deze lidfunctie.
Voorbeeld
// 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
Hiermee wordt de opdracht ID_FILE_PRINT_SETUP geïmplementeerd.
afx_msg void OnFilePrintSetup();
Opmerkingen
U moet een ON_COMMAND( ID_FILE_PRINT_SETUP, OnFilePrintSetup )
instructie toevoegen aan de CWinApp
klasseberichttoewijzing om deze lidfunctie in te schakelen. Als deze functie is ingeschakeld, wordt de uitvoering van de opdracht File Print verwerkt.
Zie Technical Note 22voor informatie over het standaardgedrag en de richtlijnen voor het overschrijven van deze lidfunctie.
Voorbeeld
// 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
Verwerkt F1 Help binnen de toepassing (met behulp van de huidige context).
afx_msg void OnHelp();
Opmerkingen
Meestal voegt u ook een vermelding van de accelerator-key toe voor de F1-toets. Het inschakelen van de F1-sleutel is alleen een conventie, geen vereiste.
U moet een ON_COMMAND( ID_HELP, OnHelp )
instructie toevoegen aan de CWinApp
klasseberichttoewijzing om deze lidfunctie in te schakelen. Indien ingeschakeld, wordt dit door het framework aangeroepen wanneer de gebruiker op de F1-toets drukt.
De standaard implementatie van deze berichtenhandlerfunctie bepaalt de Help-context die overeenkomt met het huidige venster, dialoogvenster of menu-item en roept vervolgens WINHELP.EXE aan. Als er momenteel geen context beschikbaar is, gebruikt de functie de standaardcontext.
Overschrijf deze lidfunctie om de Help-context in te stellen op iets anders dan het venster, het dialoogvenster, het menu-item of de werkbalkknop die momenteel de focus heeft. Roep WinHelp
aan met de gewenste Help-context-id.
CWinApp::OnHelpFinder
Hiermee worden de opdrachten ID_HELP_FINDER en ID_DEFAULT_HELP verwerkt.
afx_msg void OnHelpFinder();
Opmerkingen
U moet een ON_COMMAND( ID_HELP_FINDER, OnHelpFinder )
instructie toevoegen aan de CWinApp
klasseberichttoewijzing om deze lidfunctie in te schakelen. Als dit is ingeschakeld, roept het framework deze berichtenhandlerfunctie aan wanneer de gebruiker van uw toepassing de Help Finder-opdracht selecteert om WinHelp
aan te roepen met het standaardonderwerp HELP_FINDER.
CWinApp::OnHelpIndex
Verwerkt de opdracht ID_HELP_INDEX en biedt een standaard-Help-onderwerp.
afx_msg void OnHelpIndex();
Opmerkingen
U moet een ON_COMMAND( ID_HELP_INDEX, OnHelpIndex )
instructie toevoegen aan de CWinApp
klasseberichttoewijzing om deze lidfunctie in te schakelen. Als dit is ingeschakeld, roept het framework deze berichtenhandlerfunctie aan wanneer de gebruiker van uw toepassing de opdracht Help-index selecteert om WinHelp
aan te roepen met het standaardonderwerp HELP_INDEX.
CWinApp::OnHelpUsing
Hiermee wordt de opdracht ID_HELP_USING verwerkt.
afx_msg void OnHelpUsing();
Opmerkingen
U moet een ON_COMMAND( ID_HELP_USING, OnHelpUsing )
instructie toevoegen aan de CWinApp
klasseberichttoewijzing om deze lidfunctie in te schakelen. In het framework wordt deze berichtenhandlerfunctie aangeroepen wanneer de gebruiker van uw toepassing de opdracht Help gebruiken selecteert om de WinHelp
toepassing aan te roepen met het standaardonderwerp HELP_HELPONHELP.
CWinApp::OnIdle
Overschrijf deze lidfunctie om niet-actieve tijdverwerking uit te voeren.
virtual BOOL OnIdle(LONG lCount);
Parameters
lCount-
Telkens wanneer OnIdle
wordt aangeroepen, wordt een teller verhoogd wanneer de berichtenwachtrij van de toepassing leeg is. Dit aantal wordt opnieuw ingesteld op 0 telkens wanneer een nieuw bericht wordt verwerkt. U kunt de parameter lCount gebruiken om te bepalen hoe lang de toepassing inactief is geweest zonder een bericht te verwerken.
Retourwaarde
Niet-nul om meer niet-actieve verwerkingstijd te ontvangen; 0 als er geen niet-actieve tijd meer nodig is.
Opmerkingen
OnIdle
wordt aangeroepen in de standaardberichtlus wanneer de berichtenwachtrij van de toepassing leeg is. Gebruik uw onderdrukking om uw eigen niet-actieve taken op de achtergrond aan te roepen.
OnIdle
moet 0 retourneren om aan te geven dat er geen niet-actieve verwerkingstijd is vereist. De parameter lCount wordt steeds verhoogd wanneer OnIdle
wordt aangeroepen wanneer de berichtenwachtrij leeg is en telkens opnieuw wordt ingesteld op 0 wanneer een nieuw bericht wordt verwerkt. U kunt uw verschillende niet-actieve routines aanroepen op basis van dit aantal.
Hieronder ziet u een overzicht van de verwerking van niet-actieve lus:
Als de berichtenlus in de Microsoft Foundation Class Library de berichtenwachtrij controleert en er geen berichten in behandeling zijn, wordt
OnIdle
aangeroepen voor het toepassingsobject en wordt 0 geleverd als het argument lCount.OnIdle
voert een bepaalde verwerking uit en retourneert een niet-nulwaarde om aan te geven dat deze opnieuw moet worden aangeroepen om verdere verwerking uit te voeren.De berichtenlus controleert de berichtenwachtrij opnieuw. Als er geen berichten in behandeling zijn, wordt
OnIdle
opnieuw aanroepen, waardoor het argument lCount wordt verhoogd.Uiteindelijk voltooit
OnIdle
de verwerking van alle niet-actieve taken en retourneert 0. Hierdoor wordt de berichtenlus gestopt met het aanroepen vanOnIdle
totdat het volgende bericht wordt ontvangen uit de berichtenwachtrij, waarna de niet-actieve cyclus opnieuw wordt gestart met het argument ingesteld op 0.
Voer geen langdurige taken uit tijdens OnIdle
omdat uw toepassing geen gebruikersinvoer kan verwerken totdat OnIdle
terugkeert.
Notitie
De standaard implementatie van OnIdle
werkt opdrachten voor gebruikersinterfaceobjecten zoals menu-items en werkbalkknoppen bij en voert interne gegevensstructuur op. Als u OnIdle
overschrijft, moet u daarom CWinApp::OnIdle
aanroepen met de lCount
in uw overschreven versie. Roep eerst alle niet-actieve verwerking van basisklasse aan (dat wil gezegd, totdat de basisklasse OnIdle
0 retourneert). Als u werk moet uitvoeren voordat de verwerking van basisklassen is voltooid, controleert u de basisklasse-implementatie om de juiste lCount te selecteren waarin u uw werk moet uitvoeren.
Als u niet wilt dat OnIdle
worden aangeroepen wanneer een bericht wordt opgehaald uit de berichtenwachtrij, kunt u de CWinThreadIsIdleMessage-overschrijven. Als een toepassing een zeer korte timer heeft ingesteld of als het systeem het WM_SYSTIMER bericht verzendt, wordt OnIdle
herhaaldelijk aangeroepen en worden de prestaties verminderd.
Voorbeeld
In de volgende twee voorbeelden ziet u hoe u OnIdle
kunt gebruiken. In het eerste voorbeeld worden twee niet-actieve taken verwerkt met behulp van het argument lCount om prioriteit te geven aan de taken. De eerste taak heeft hoge prioriteit en u moet dit waar mogelijk doen. De tweede taak is minder belangrijk en moet alleen worden uitgevoerd wanneer er een lange pauze is in gebruikersinvoer. Noteer de aanroep van de basisklasseversie van OnIdle
. In het tweede voorbeeld wordt een groep niet-actieve taken met verschillende prioriteiten beheerd.
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
In het framework wordt deze methode aangeroepen om het bestand met de naam CDocument voor de toepassing te openen.
virtual CDocument* OpenDocumentFile(
LPCTSTR lpszFileName,
BOOL bAddToMRU = TRUE);
Parameters
lpszFileName
[in] De naam van het te openen bestand.
bAddToMRU-
[in] TRUE geeft aan dat het document een van de meest recente bestanden is; FALSE geeft aan dat het document niet een van de meest recente bestanden is.
Retourwaarde
Een aanwijzer naar een CDocument
indien geslaagd; anders NULL.
Opmerkingen
Als een document met die naam al is geopend, krijgt het eerste framevenster met dat document de focus. Als een toepassing meerdere documentsjablonen ondersteunt, gebruikt het framework de bestandsnaamextensie om de juiste documentsjabloon te vinden om het document te laden. Als dit lukt, maakt de documentsjabloon vervolgens een framevenster en weergave voor het document.
Voorbeeld
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
Roep deze lidfunctie aan om de opdrachtregel te parseren en de parameters één voor één te verzenden naar CCommandLineInfo::P arseParam.
void ParseCommandLine(CCommandLineInfo& rCmdInfo);
Parameters
rCmdInfo-
Een verwijzing naar een CCommandLineInfo--object.
Opmerkingen
Wanneer u een nieuw MFC-project start met de wizard Toepassing, maakt de wizard Toepassing een lokaal exemplaar van CCommandLineInfo
en roept u vervolgens ProcessShellCommand
en ParseCommandLine
aan in de Functie InitInstance lid. Een opdrachtregel volgt de route die hieronder wordt beschreven:
Nadat het object is gemaakt in
InitInstance
, wordt hetCCommandLineInfo
object doorgegeven aanParseCommandLine
.ParseCommandLine
roeptCCommandLineInfo::ParseParam
herhaaldelijk aan, één keer voor elke parameter.ParseParam
vult hetCCommandLineInfo
-object, dat vervolgens wordt doorgegeven aan ProcessShellCommand-.ProcessShellCommand
de opdrachtregelargumenten en vlaggen verwerkt.
Houd er rekening mee dat u ParseCommandLine
rechtstreeks kunt aanroepen als dat nodig is.
Zie CCommandLineInfo::m_nShellCommandvoor een beschrijving van de opdrachtregelvlagmen.
CWinApp::P reTranslateMessage
Overschrijf deze functie om vensterberichten te filteren voordat ze worden verzonden naar de Windows-functies TranslateMessage en DispatchMessage De standaard-implementatie voert de functie accelerator-sleutelvertaling uit. Daarom moet u de functie CWinApp::PreTranslateMessage
lid aanroepen in uw overschreven versie.
virtual BOOL PreTranslateMessage(MSG* pMsg);
Parameters
Een aanwijzer naar een MSG structuur die het te verwerken bericht bevat.
Retourwaarde
Niet-nul als het bericht volledig is verwerkt in PreTranslateMessage
en niet verder mag worden verwerkt. Nul als het bericht op de normale manier moet worden verwerkt.
CWinApp::P rocessMessageFilter
Met de hook-functie van het framework wordt deze lidfunctie aangeroepen om bepaalde Windows-berichten te filteren en erop te reageren.
virtual BOOL ProcessMessageFilter(
int code,
LPMSG lpMsg);
Parameters
code
Hiermee geeft u een hook-code op. Deze lidfunctie gebruikt de code om te bepalen hoe lpMsg moet worden verwerkt.
lpMsg-
Een aanwijzer naar een Windows MSGtructure.
Retourwaarde
Niet-nul als het bericht wordt verwerkt; anders 0.
Opmerkingen
Een hook-functie verwerkt gebeurtenissen voordat ze worden verzonden naar de normale berichtverwerking van de toepassing.
Als u deze geavanceerde functie overschrijft, moet u de basisklasseversie aanroepen om de hookverwerking van het framework te behouden.
CWinApp::P rocessShellCommand
Deze lidfunctie wordt aangeroepen door InitInstance- om de parameters te accepteren die zijn doorgegeven vanuit het CCommandLineInfo
-object dat is geïdentificeerd door rCmdInfoen de aangegeven actie uit te voeren.
BOOL ProcessShellCommand(CCommandLineInfo& rCmdInfo);
Parameters
rCmdInfo-
Een verwijzing naar een CCommandLineInfo--object.
Retourwaarde
Niet-nul als de shell-opdracht is verwerkt. Als 0, retourneer ONWAAR van InitInstance.
Opmerkingen
Wanneer u een nieuw MFC-project start met de wizard Toepassing, maakt de wizard Toepassing een lokaal exemplaar van CCommandLineInfo
en roept u vervolgens ProcessShellCommand
en ParseCommandLine- aan in de functie InitInstance
lid. Een opdrachtregel volgt de route die hieronder wordt beschreven:
Nadat het object is gemaakt in
InitInstance
, wordt hetCCommandLineInfo
object doorgegeven aanParseCommandLine
.ParseCommandLine
roept CCommandLineInfo::P arsePara m herhaaldelijk aan, één keer voor elke parameter.ParseParam
hetCCommandLineInfo
-object vult, dat vervolgens wordt doorgegeven aanProcessShellCommand
.ProcessShellCommand
de opdrachtregelargumenten en vlaggen verwerkt.
De gegevensleden van het CCommandLineInfo
-object, geïdentificeerd door CCommandLineInfo::m_nShellCommand, zijn van het volgende geïnventariseerd type, dat is gedefinieerd in de klasse CCommandLineInfo
.
enum {
FileNew,
FileOpen,
FilePrint,
FilePrintTo,
FileDDE
};
Zie CCommandLineInfo::m_nShellCommand
voor een korte beschrijving van elk van deze waarden.
CWinApp::P rocessWndProcException
Het framework roept deze lidfunctie aan wanneer de handler geen uitzondering ondervangt die is opgetreden in een van de bericht- of opdrachthandlers van uw toepassing.
virtual LRESULT ProcessWndProcException(
CException* e,
const MSG* pMsg);
Parameters
e-
Een aanwijzer naar een ondeugende uitzondering.
Een MSGtructure die informatie bevat over het windows-bericht waardoor het framework een uitzondering genereert.
Retourwaarde
De waarde die moet worden geretourneerd naar Windows. Normaal gesproken is dit 0L voor Windows-berichten, 1L (TRUE) voor opdrachtberichten.
Opmerkingen
Roep deze lidfunctie niet rechtstreeks aan.
Met de standaard implementatie van deze lidfunctie wordt een berichtvak gemaakt. Als de niet-onderschepte uitzondering afkomstig is van een menu-, werkbalk- of acceleratoropdrachtfout, wordt in het berichtvak het bericht 'Opdracht mislukt' weergegeven; anders wordt het bericht 'Interne toepassingsfout' weergegeven.
Overschrijf deze lidfunctie om algemene verwerking van uw uitzonderingen te bieden. Roep de basisfunctionaliteit alleen aan als u wilt dat het berichtvak wordt weergegeven.
CWinApp::Registreren
Voert registratietaken uit die niet worden verwerkt door RegisterShellFileTypes
.
virtual BOOL Register();
Retourwaarde
Nonzero op succes; anders 0.
Opmerkingen
De standaard implementatie retourneert GEWOON TRUE. Overschrijf deze functie om aangepaste registratiestappen op te geven.
CWinApp::RegisterShellFileTypes
Roep deze lidfunctie aan om alle documenttypen van uw toepassing te registreren bij Windows File Manager.
void RegisterShellFileTypes(BOOL bCompat = FALSE);
Parameters
bCompat-
[in] TRUE voegt registratievermeldingen toe voor shellopdrachten Afdrukken en Afdrukken naar, zodat een gebruiker bestanden rechtstreeks vanuit de shell kan afdrukken of door het bestand naar een printerobject te slepen. Er wordt ook een DefaultIcon-sleutel toegevoegd. Deze parameter is standaard FALSE voor compatibiliteit met eerdere versies.
Opmerkingen
Hierdoor kan de gebruiker een gegevensbestand openen dat door uw toepassing is gemaakt door erop te dubbelklikken vanuit Bestandsbeheer. Roep RegisterShellFileTypes
aan nadat u AddDocTemplate- hebt aangeroepen voor elk van de documentsjablonen in uw toepassing. Roep ook de functie EnableShellOpen lid aan wanneer u RegisterShellFileTypes
aanroept.
RegisterShellFileTypes
doorloopt de lijst met CDocTemplate objecten die door de toepassing worden onderhouden en voegt voor elke documentsjabloon vermeldingen toe aan de registratiedatabase die Door Windows wordt onderhouden voor bestandskoppelingen. Bestandsbeheer gebruikt deze vermeldingen om een gegevensbestand te openen wanneer de gebruiker erop dubbelklikt. Dit elimineert de noodzaak om een . REG-bestand met uw toepassing.
Notitie
RegisterShellFileTypes
werkt alleen als de gebruiker het programma uitvoert met beheerdersrechten. Als het programma geen beheerdersrechten heeft, kan het registersleutels niet wijzigen.
Als de registratiedatabase al een bepaalde bestandsnaamextensie aan een ander bestandstype koppelt, wordt er geen nieuwe koppeling gemaakt. Zie de CDocTemplate
-klasse voor de indeling van tekenreeksen die nodig zijn om deze informatie te registreren.
CWinApp::RegisterWithRestartManager
Registreert de toepassing bij de manager voor opnieuw opstarten.
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);
Parameters
bRegisterRecoveryCallback-
[in] TRUE geeft aan dat dit exemplaar van de toepassing gebruikmaakt van een callback-functie voor herstel; FALSE geeft aan dat dit niet het geval is. Het framework roept de callback-functie voor herstel aan wanneer de toepassing onverwacht wordt afgesloten. Zie CWinApp::ApplicationRecoveryCallbackvoor meer informatie.
strRestartIdentifier-
[in] De unieke tekenreeks die dit exemplaar van de manager voor opnieuw opstarten identificeert. De id van de manager voor opnieuw opstarten is uniek voor elk exemplaar van een toepassing.
pwzCommandLineArgs
[in] Een tekenreeks die extra argumenten van de opdrachtregel bevat.
dwRestartFlags-
[in] Optionele vlaggen voor de manager voor opnieuw opstarten. Zie de sectie Opmerkingen voor meer informatie.
pRecoveryCallback-
[in] De callback-functie voor herstel. Deze functie moet een LPVOID-parameter als invoer gebruiken en een DWORD retourneren. De standaard callback-functie voor herstel is CWinApp::ApplicationRecoveryCallback
.
lpvParam-
[in] De invoerparameter voor de callback-functie voor herstel. Zie CWinApp::ApplicationRecoveryCallbackvoor meer informatie.
dwPingInterval-
[in] De tijdsduur die de manager voor opnieuw opstarten wacht totdat de functie voor herstelaanroep wordt geretourneerd. Deze parameter bevindt zich in milliseconden.
dwCallbackFlags-
[in] Vlaggen die worden doorgegeven aan de terugbelfunctie voor herstel. Gereserveerd voor toekomstig gebruik.
Retourwaarde
S_OK als de methode is geslaagd; anders een foutcode.
Opmerkingen
Als uw toepassing gebruikmaakt van de standaard MFC-implementatie voor het automatisch opslaan van bestanden, moet u de eenvoudige versie van RegisterWithRestartManager
gebruiken. Gebruik de complexe versie van RegisterWithRestartManager
als u het gedrag van automatisch opslaan van uw toepassing wilt aanpassen.
Als u deze methode aanroept met een lege tekenreeks voor strRestartIdentifier-, maakt RegisterWithRestartManager
een unieke id-tekenreeks voor dit exemplaar van de herstartmanager.
Wanneer een toepassing onverwacht wordt afgesloten, wordt de toepassing opnieuw gestart vanaf de opdrachtregel en wordt de unieke herstart-id als een optioneel argument opgegeven. In dit scenario roept het framework RegisterWithRestartManager
twee keer aan. De eerste aanroep is afkomstig van CWinApp::InitInstance met een lege tekenreeks voor de tekenreeks-id. Vervolgens roept de methode CWinApp::P rocessShellCommandRegisterWithRestartManager
aan met de unieke herstart-id.
Nadat u een toepassing hebt geregistreerd bij de manager voor opnieuw opstarten, controleert de herstartmanager de toepassing. Als de toepassing onverwacht wordt afgesloten, roept de manager voor het opnieuw opstarten de functie voor herstelaanroep aan tijdens het afsluiten. De manager voor opnieuw opstarten wacht op de dwPingInterval- voor een reactie van de callback-functie voor herstel. Als de callback-functie voor herstel binnen deze tijd niet reageert, wordt de toepassing afgesloten zonder de terugroepfunctie voor herstel uit te voeren.
DwRestartFlags worden standaard niet ondersteund, maar worden geleverd voor toekomstig gebruik. De mogelijke waarden voor dwRestartFlags zijn als volgt:
RESTART_NO_CRASH
RESTART_NO_HANG
RESTART_NO_PATCH
RESTART_NO_REBOOT
CWinApp::ReopenPreviousFilesAtRestart
Bepaalt of de manager voor opnieuw opstarten de geopende bestanden opnieuw opent wanneer de toepassing onverwacht werd afgesloten.
virtual BOOL ReopenPreviousFilesAtRestart() const;
Retourwaarde
TRUE geeft aan dat de manager voor opnieuw opstarten de eerder geopende bestanden opnieuw opent; FALSE geeft aan dat de manager voor opnieuw opstarten niet werkt.
CWinApp::RestartInstance
Hiermee wordt het opnieuw opstarten van een toepassing verwerkt, geïnitieerd door de manager voor opnieuw opstarten.
virtual BOOL CWinApp::RestartInstance();
Retourwaarde
WAAR als de handler voor gegevensherstel eerder geopende documenten opent; ONWAAR als de handler voor gegevensherstel een fout heeft of als er geen eerder geopende documenten zijn.
Opmerkingen
Wanneer de manager voor opnieuw opstarten een toepassing opnieuw start, roept het framework deze methode aan. Met deze methode wordt de handler voor gegevensherstel opgehaald en worden de automatisch opgeslagen bestanden hersteld. Met deze methode wordt CDataRecoveryHandler::RestoreAutosavedDocuments aangeroepen om te bepalen of de gebruiker de automatisch opgeslagen bestanden wil herstellen.
Deze methode retourneert FALSE als de CDataRecoveryHandler bepaalt dat er geen geopende documenten zijn. Als er geen geopende documenten waren, wordt de toepassing gewoonlijk gestart.
CWinApp::RestoreAutosavedFilesAtRestart
Bepaalt of de manager voor opnieuw opstarten de automatisch opgeslagen bestanden herstelt wanneer de toepassing opnieuw wordt opgestart.
virtual BOOL RestoreAutosavedFilesAtRestart() const;
Retourwaarde
TRUE geeft aan dat de manager voor opnieuw opstarten automatisch opgeslagen bestanden herstelt; FALSE geeft aan dat de manager voor opnieuw opstarten niet werkt.
CWinApp::Uitvoeren
Biedt een standaardberichtlus.
virtual int Run();
Retourwaarde
Een int
waarde die wordt geretourneerd door WinMain
.
Opmerkingen
Run
Windows-berichten verkrijgt en verzendt totdat de toepassing een WM_QUIT bericht ontvangt. Als de berichtenwachtrij van de toepassing momenteel geen berichten bevat, Run
roept OnIdle- aan om inactiviteit te verwerken. Inkomende berichten gaan naar de functie PreTranslateMessage lid voor speciale verwerking en vervolgens naar de Windows-functie TranslateMessage
voor standaardtoetsenbordvertaling; ten slotte wordt de DispatchMessage
Windows-functie aangeroepen.
Run
wordt zelden overschreven, maar u kunt deze overschrijven om speciaal gedrag te bieden.
CWinApp::RunAutomated
Roep deze functie aan om te bepalen of de optie '/Automation' of '-Automation' aanwezig is, wat aangeeft of de servertoepassing is gestart door een clienttoepassing.
BOOL RunAutomated();
Retourwaarde
Niet-nul als de optie is gevonden; anders 0.
Opmerkingen
Indien aanwezig, wordt de optie verwijderd van de opdrachtregel. Zie het artikel Automation-serversvoor meer informatie over OLE Automation.
CWinApp::RunEmbedded
Roep deze functie aan om te bepalen of de optie '/Embedding' of '-Embedding' aanwezig is, wat aangeeft of de servertoepassing is gestart door een clienttoepassing.
BOOL RunEmbedded();
Retourwaarde
Niet-nul als de optie is gevonden; anders 0.
Opmerkingen
Indien aanwezig, wordt de optie verwijderd van de opdrachtregel. Zie het artikel Servers: Een server implementerenvoor meer informatie over het insluiten van inhoud.
CWinApp::SaveAllModified
Wordt aangeroepen door het framework om alle documenten op te slaan wanneer het hoofdframevenster van de toepassing moet worden gesloten of via een WM_QUERYENDSESSION bericht.
virtual BOOL SaveAllModified();
Retourwaarde
Nonzero indien veilig om de toepassing te beëindigen; 0 indien niet veilig om de toepassing te beëindigen.
Opmerkingen
De standaardimplementatie van deze lidfunctie roept de CDocument::SaveModified lidfunctie op zijn beurt aan voor alle gewijzigde documenten in de toepassing.
CWinApp::SelectPrinter
Roep deze lidfunctie aan om een specifieke printer te selecteren en laat de printer los die eerder is geselecteerd in het dialoogvenster Afdrukken.
void SelectPrinter(
HANDLE hDevNames,
HANDLE hDevMode,
BOOL bFreeOld = TRUE);
Parameters
hDevNames-
Een ingang naar een DEVNAMEStructure waarmee de namen van stuurprogramma's, apparaten en uitvoerpoorten van een specifieke printer worden geïdentificeerd.
hDevMode-
Een ingang naar een DEVMODE structuur die informatie opgeeft over de initialisatie van het apparaat en de omgeving van een printer.
bFreeOld-
Hiermee wordt de eerder geselecteerde printer vrijgemaakt.
Opmerkingen
Als zowel hDevMode als hDevNames NULL zijn, gebruikt SelectPrinter
de huidige standaardprinter.
CWinApp::SetHelpMode
Hiermee stelt u het helptype van de toepassing in.
void SetHelpMode(AFX_HELP_TYPE eHelpType);
Parameters
eHelpType-
Hiermee geeft u het type help te gebruiken. Zie CWinApp::m_eHelpType voor meer informatie.
Opmerkingen
Hiermee stelt u het Help-type van de toepassing in.
Als u het Help-type van uw toepassing wilt instellen op HTMLHelp, kunt u EnableHTMLHelpaanroepen. Zodra u EnableHTMLHelp
aanroept, moet uw toepassing HTMLHelp gebruiken als helptoepassing. Als u Wilt wijzigen om WinHelp te gebruiken, kunt u SetHelpMode
aanroepen en eHelpType- instellen op afxWinHelp
.
CWinApp::SetRegistryKey
Zorgt ervoor dat toepassingsinstellingen worden opgeslagen in het register in plaats van INI-bestanden.
void SetRegistryKey(LPCTSTR lpszRegistryKey);
void SetRegistryKey(UINT nIDRegistryKey);
Parameters
lpszRegistryKey
Wijs een tekenreeks aan die de naam van de sleutel bevat.
nIDRegistryKey
Id van een tekenreeksresource met de naam van de registersleutel.
Opmerkingen
Met deze functie wordt m_pszRegistryKeyingesteld, die vervolgens wordt gebruikt door de GetProfileInt
, GetProfileString
, WriteProfileInt
en WriteProfileString
lidfuncties van CWinApp
. Als deze functie is aangeroepen, wordt de lijst met laatst gebruikte (MRU)-bestanden ook opgeslagen in het register. De registersleutel is meestal de naam van een bedrijf. Het wordt opgeslagen in een sleutel van het volgende formulier: HKEY_CURRENT_USER\Software\<bedrijfsnaam>\<toepassingsnaam>\<sectienaam>\<waardenaam>.
CWinApp::SupportsApplicationRecovery
Bepaalt of de manager voor opnieuw opstarten een toepassing herstelt die onverwacht is afgesloten.
virtual BOOL SupportsApplicationRecovery() const;
Retourwaarde
TRUE geeft aan dat de manager voor opnieuw opstarten de toepassing herstelt; FALSE geeft aan dat de manager voor opnieuw opstarten niet werkt.
CWinApp::SupportsAutosaveAtInterval
Bepaalt of de manager voor opnieuw opstarten automatisch documenten opent met een regelmatig interval.
virtual BOOL SupportsAutosaveAtInterval() const;
Retourwaarde
TRUE geeft aan dat het opnieuw opstarten van de manager automatisch geopende documenten opslaat; FALSE geeft aan dat de manager voor opnieuw opstarten niet werkt.
CWinApp::SupportsAutosaveAtRestart
Bepaalt of de manager voor opnieuw opstarten automatisch geopende documenten opslaat wanneer de toepassing opnieuw wordt opgestart.
virtual BOOL SupportsAutosaveAtRestart() const;
Retourwaarde
TRUE geeft aan dat de manager voor opnieuw opstarten automatisch geopende documenten opent wanneer de toepassing opnieuw wordt opgestart; FALSE geeft aan dat de manager voor opnieuw opstarten niet werkt.
CWinApp::SupportsRestartManager
Bepaalt of de toepassing ondersteuning biedt voor de manager voor opnieuw opstarten.
virtual BOOL SupportsRestartManager() const;
Retourwaarde
TRUE geeft aan dat de toepassing ondersteuning biedt voor de manager voor opnieuw opstarten; FALSE geeft aan dat de toepassing dat niet doet.
CWinApp::Registratie ongedaan maken
De registratie van alle bestanden die zijn geregistreerd door het toepassingsobject ongedaan maken.
virtual BOOL Unregister();
Retourwaarde
Nonzero op succes; anders 0.
Opmerkingen
Met de functie Unregister
wordt de registratie ongedaan gemaakt die wordt uitgevoerd door het toepassingsobject en de functie Register. Normaal gesproken worden beide functies impliciet aangeroepen door MFC en worden daarom niet weergegeven in uw code.
Overschrijf deze functie om aangepaste stappen voor het ongedaan maken van registratie uit te voeren.
CWinApp::UnregisterShellFileTypes
Roep deze lidfunctie aan om de registratie van alle documenttypen van uw toepassing met Windows File Manager ongedaan te maken.
void UnregisterShellFileTypes();
CWinApp::WinHelp
Roep deze lidfunctie aan om de WinHelp-toepassing aan te roepen.
virtual void WinHelp(
DWORD_PTR dwData,
UINT nCmd = HELP_CONTEXT);
Parameters
dwData-
Hiermee geeft u aanvullende gegevens op. De gebruikte waarde is afhankelijk van de waarde van de parameter nCmd.
nCmd-
Hiermee geeft u het type hulp aangevraagd. Zie de functie WinHelp Windows voor een lijst met mogelijke waarden en hoe deze van invloed zijn op de parameter dwData.
Opmerkingen
Het framework roept deze functie ook aan om de WinHelp-toepassing aan te roepen.
Het framework sluit de WinHelp-toepassing automatisch wanneer uw toepassing wordt beëindigd.
Voorbeeld
// 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
Roep deze lidfunctie aan om binaire gegevens te schrijven naar de opgegeven sectie van het register van de toepassing of . INI-bestand.
BOOL WriteProfileBinary(
LPCTSTR lpszSection,
LPCTSTR lpszEntry,
LPBYTE pData,
UINT nBytes);
Parameters
lpszSection-
Verwijst naar een door null beëindigde tekenreeks die de sectie met de vermelding aangeeft. Als de sectie niet bestaat, wordt deze gemaakt. De naam van de sectie is onafhankelijk van het geval; de tekenreeks kan elke combinatie van hoofdletters en kleine letters zijn.
lpszEntry-
Verwijst naar een door null beëindigde tekenreeks die de vermelding bevat waarin de waarde moet worden geschreven. Als de vermelding niet bestaat in de opgegeven sectie, wordt deze gemaakt.
pData-
Verwijst naar de gegevens die moeten worden geschreven.
nBytes
Bevat het aantal bytes dat moet worden geschreven.
Retourwaarde
Niet-nul indien geslaagd; anders 0.
Voorbeeld
In dit voorbeeld wordt CWinApp* pApp = AfxGetApp();
gebruikt om de CWinApp-klasse te gebruiken die een manier illustreert waarop WriteProfileBinary
en GetProfileBinary
kunnen worden gebruikt vanuit elke functie in een MFC-toepassing.
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
Zie het voorbeeld voor CWinApp::GetProfileBinaryvoor een ander voorbeeld.
CWinApp::WriteProfileInt
Roep deze lidfunctie aan om de opgegeven waarde naar de opgegeven sectie van het register van de toepassing of te schrijven. INI-bestand.
BOOL WriteProfileInt(
LPCTSTR lpszSection,
LPCTSTR lpszEntry,
int nValue);
Parameters
lpszSection-
Verwijst naar een door null beëindigde tekenreeks die de sectie met de vermelding aangeeft. Als de sectie niet bestaat, wordt deze gemaakt. De naam van de sectie is onafhankelijk van het geval; de tekenreeks kan elke combinatie van hoofdletters en kleine letters zijn.
lpszEntry-
Verwijst naar een door null beëindigde tekenreeks die de vermelding bevat waarin de waarde moet worden geschreven. Als de vermelding niet bestaat in de opgegeven sectie, wordt deze gemaakt.
nValue
Bevat de waarde die moet worden geschreven.
Retourwaarde
Niet-nul indien geslaagd; anders 0.
Voorbeeld
In dit voorbeeld wordt CWinApp* pApp = AfxGetApp();
gebruikt om de CWinApp-klasse te gebruiken die een manier illustreert waarop WriteProfileString
, WriteProfileInt
, GetProfileString
en GetProfileInt
kunnen worden gebruikt vanuit elke functie in een MFC-toepassing.
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);
Zie het voorbeeld voor CWinApp::GetProfileIntvoor een ander voorbeeld.
CWinApp::WriteProfileString
Roep deze lidfunctie aan om de opgegeven tekenreeks te schrijven naar de opgegeven sectie van het register van de toepassing of . INI-bestand.
BOOL WriteProfileString(
LPCTSTR lpszSection,
LPCTSTR lpszEntry,
LPCTSTR lpszValue);
Parameters
lpszSection-
Verwijst naar een door null beëindigde tekenreeks die de sectie met de vermelding aangeeft. Als de sectie niet bestaat, wordt deze gemaakt. De naam van de sectie is onafhankelijk van het geval; de tekenreeks kan elke combinatie van hoofdletters en kleine letters zijn.
lpszEntry-
Verwijst naar een door null beëindigde tekenreeks die de vermelding bevat waarin de waarde moet worden geschreven. Als de vermelding niet bestaat in de opgegeven sectie, wordt deze gemaakt. Als deze parameter NULL is, wordt de sectie die is opgegeven door lpszSection verwijderd.
lpszValue-
Verwijst naar de tekenreeks die moet worden geschreven. Als deze parameter NULL is, wordt de vermelding die is opgegeven door de parameter lpszEntry verwijderd.
Retourwaarde
Niet-nul indien geslaagd; anders 0.
Voorbeeld
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);
Zie het voorbeeld voor CWinApp::GetProfileIntvoor een ander voorbeeld.
CWinApp::SetAppID
Hiermee stelt u de model-id van de toepassing expliciet in voor de toepassing. Deze methode moet worden aangeroepen voordat een gebruikersinterface aan de gebruiker wordt gepresenteerd (de beste plaats is de toepassingsconstructor).
void SetAppID(LPCTSTR lpcszAppID);
Parameters
lpcszAppID-
Hiermee geeft u de model-id van de toepassingsgebruiker op.
Opmerkingen
Zie ook
CWinThread-klasse
Hiërarchiegrafiek
Procedure: Ondersteuning voor Restart Manager toevoegen