CWinApp, classe
Classe de base à partir de laquelle vous dérivez un objet application Windows.
Syntaxe
class CWinApp : public CWinThread
Membres
Constructeurs publics
Nom | Description |
---|---|
CWinApp ::CWinApp | Construit un objet CWinApp . |
Méthodes publiques
Nom | Description |
---|---|
CWinApp ::AddDocTemplate | Ajoute un modèle de document à la liste des modèles de documents disponibles de l’application. |
CWinApp ::AddToRecentFileList | Ajoute un nom de fichier à la liste des fichiers les plus récemment utilisés (MRU). |
CWinApp ::ApplicationRecoveryCallback | Appelé par l’infrastructure lorsque l’application quitte de façon inattendue. |
CWinApp ::CloseAllDocuments | Ferme tous les documents ouverts. |
CWinApp ::CreatePrinterDC | Crée un contexte d’appareil d’imprimante. |
CWinApp ::D elRegTree | Supprime une clé spécifiée et toutes ses sous-clés. |
CWinApp ::D oMessageBox | Implémente AfxMessageBox pour l’application. |
CWinApp ::D oWaitCursor | Active et désactive le curseur d’attente. |
CWinApp ::EnableD2DSupport | Active la prise en charge d’application D2D. Appelez cette méthode avant que la fenêtre principale soit initialisée. |
CWinApp ::EnableHtmlHelp | Implémente HTMLHelp pour l’application, plutôt que WinHelp. |
CWinApp ::EnableTaskbarInteraction | Active l’interaction de la barre des tâches. |
CWinApp ::ExitInstance | Remplacez le nettoyage lorsque votre application se termine. |
CWinApp ::GetApplicationRecoveryParameter | Récupère le paramètre d’entrée de la méthode de récupération d’application. |
CWinApp ::GetApplicationRecoveryPingInterval | Retourne la durée pendant laquelle le gestionnaire de redémarrage attend que la fonction de rappel de récupération retourne. |
CWinApp ::GetApplicationRestartFlags | Retourne les indicateurs du gestionnaire de redémarrage. |
CWinApp ::GetAppRegistryKey | Retourne la clé pour HKEY_CURRENT_USER\"Software"\RegistryKey\ProfileName. |
CWinApp ::GetDataRecoveryHandler | Obtient le gestionnaire de récupération de données pour cette instance de l’application. |
CWinApp ::GetFirstDocTemplatePosition | Récupère la position du premier modèle de document. |
CWinApp ::GetHelpMode | Récupère le type d’aide utilisé par l’application. |
CWinApp ::GetNextDocTemplate | Récupère la position d’un modèle de document. Peut être utilisé de manière récursive. |
CWinApp ::GetPrinterDeviceDefaults | Récupère les valeurs par défaut de l’appareil d’imprimante. |
CWinApp ::GetProfileBinary | Récupère des données binaires à partir d’une entrée dans les données binaires de l’application. Fichier INI. |
CWinApp ::GetProfileInt | Récupère un entier à partir d’une entrée dans l’application. Fichier INI. |
CWinApp ::GetProfileString | Récupère une chaîne à partir d’une entrée dans l’application. Fichier INI. |
CWinApp ::GetSectionKey | Retourne la clé pour HKEY_CURRENT_USER\"Software"\RegistryKey\AppName\lpszSection. |
CWinApp ::HideApplication | Masque l’application avant de fermer tous les documents. |
CWinApp ::HtmlHelp | Appelle la HTMLHelp fonction Windows. |
CWinApp ::InitInstance | Remplacez l’initialisation de l’instance Windows, par exemple la création de vos objets de fenêtre. |
CWinApp ::IsTaskbarInteractionEnabled | Indique si l’interaction de la barre des tâches Windows 7 est activée. |
CWinApp ::LoadCursor | Charge une ressource de curseur. |
CWinApp ::LoadIcon | Charge une ressource d’icône. |
CWinApp ::LoadOEMCursor | Charge un curseur OEM Windows prédéfini que les constantes OCR_ spécifient dans WINDOWS.H. |
CWinApp ::LoadOEMIcon | Charge une icône prédéfinie Windows OEM que les constantes OIC_ spécifient dans WINDOWS.H. |
CWinApp ::LoadStandardCursor | Charge un curseur prédéfini Windows que les constantes IDC_ spécifient dans WINDOWS.H. |
CWinApp ::LoadStandardIcon | Charge une icône prédéfinie Windows que les constantes IDI_ spécifient dans WINDOWS.H. |
CWinApp ::OnDDECommand | Appelé par l’infrastructure en réponse à une commande d’exécution d’échange de données dynamique (DDE). |
CWinApp ::OnIdle | Remplacez l’exécution d’un traitement d’inactivité spécifique à l’application. |
CWinApp ::OpenDocumentFile | Appelé par l’infrastructure pour ouvrir un document à partir d’un fichier. |
CWinApp ::P arseCommandLine | Analyse les paramètres et indicateurs individuels dans la ligne de commande. |
CWinApp ::P reTranslateMessage | Filtre les messages avant qu’ils ne soient distribués aux fonctions Windows TranslateMessage et DispatchMessage. |
CWinApp ::P rocessMessageFilter | Intercepte certains messages avant d’atteindre l’application. |
CWinApp ::P rocessShellCommand | Gère les arguments et indicateurs de ligne de commande. |
CWinApp ::P rocessWndProcException | Intercepte toutes les exceptions non gérées levées par le message et les gestionnaires de commandes de l’application. |
CWinApp ::Register | Effectue une inscription personnalisée. |
CWinApp ::RegisterWithRestartManager | Inscrit l’application auprès du gestionnaire de redémarrage. |
CWinApp ::ReopenPreviousFilesAtRestart | Détermine si le gestionnaire de redémarrage rouvre les fichiers ouverts lorsque l’application s’est terminée de manière inattendue. |
CWinApp ::RestartInstance | Gère un redémarrage d’application initié par le gestionnaire de redémarrage. |
CWinApp ::RestoreAutosavedFilesAtRestart | Détermine si le gestionnaire de redémarrage restaure les fichiers enregistrés automatiquement lors du redémarrage de l’application. |
CWinApp ::Run | Exécute la boucle de message par défaut. Remplacez cette option pour personnaliser la boucle de message. |
CWinApp ::RunAutomated | Teste la ligne de commande de l’application pour l’option /Automation . Obsolète. Utilisez plutôt la valeur dans CCommandLineInfo ::m_bRunAutomated après avoir appelé ParseCommandLine. |
CWinApp ::RunEmbedded | Teste la ligne de commande de l’application pour l’option /Embedding . Obsolète. Utilisez plutôt la valeur dans CCommandLineInfo ::m_bRunEmbedded après avoir appelé ParseCommandLine. |
CWinApp ::SaveAllModified | Invite l’utilisateur à enregistrer tous les documents modifiés. |
CWinApp ::SelectPrinter | Sélectionne une imprimante précédemment indiquée par un utilisateur via une boîte de dialogue d’impression. |
CWinApp ::SetHelpMode | Définit et initialise le type d’aide utilisé par l’application. |
CWinApp ::SupportsApplicationRecovery | Détermine si le gestionnaire de redémarrage récupère une application qui s’est terminée de façon inattendue. |
CWinApp ::SupportsAutosaveAtInterval | Détermine si le gestionnaire de redémarrage enregistre automatiquement les documents à intervalles réguliers. |
CWinApp ::SupportsAutosaveAtRestart | Détermine si le gestionnaire de redémarrage enregistre automatiquement les documents ouverts lorsque l’application redémarre. |
CWinApp ::SupportsRestartManager | Détermine si l’application prend en charge le gestionnaire de redémarrage. |
CWinApp ::Unregister | Annule l’inscription de tout ce qui est connu pour être inscrit par l’objet CWinApp . |
CWinApp ::WinHelp | Appelle la WinHelp fonction Windows. |
CWinApp ::WriteProfileBinary | Écrit des données binaires dans une entrée dans l’application. Fichier INI. |
CWinApp ::WriteProfileInt | Écrit un entier dans une entrée dans l’application. Fichier INI. |
CWinApp ::WriteProfileString | Écrit une chaîne dans une entrée dans l’application. Fichier INI. |
Méthodes protégées
Nom | Description |
---|---|
CWinApp ::EnableShellOpen | Permet à l’utilisateur d’ouvrir des fichiers de données à partir du Gestionnaire de fichiers Windows. |
CWinApp ::LoadStdProfileSettings | Charge standard . Les paramètres de fichier INI et activent la fonctionnalité de liste de fichiers MRU. |
CWinApp ::OnContextHelp | Gère l’aide MAJ+F1 dans l’application. |
CWinApp ::OnFileNew | Implémente la commande ID_FILE_NEW. |
CWinApp ::OnFileOpen | Implémente la commande ID_FILE_OPEN. |
CWinApp ::OnFilePrintSetup | Implémente la commande ID_FILE_PRINT_SETUP. |
CWinApp ::OnHelp | Gère l'aide F1 dans l'application (en utilisant le contexte actuel). |
CWinApp ::OnHelpFinder | Gère les commandes ID_HELP_FINDER et ID_DEFAULT_HELP. |
CWinApp ::OnHelpIndex | Gère la commande ID_HELP_INDEX et fournit une rubrique d’aide par défaut. |
CWinApp ::OnHelpUsing | Gère la commande ID_HELP_USING. |
CWinApp ::RegisterShellFileTypes | Inscrit tous les types de documents de l’application auprès du Gestionnaire de fichiers Windows. |
CWinApp ::SetAppID | Définit explicitement l’ID de modèle utilisateur de l’application. Cette méthode doit être appelée avant qu’une interface utilisateur soit présentée à l’utilisateur (le meilleur emplacement est le constructeur d’application). |
CWinApp ::SetRegistryKey | Provoque le stockage des paramètres d’application dans le Registre au lieu de . Fichiers INI. |
CWinApp ::UnregisterShellFileTypes | Annule l’inscription de tous les types de documents de l’application avec le Gestionnaire de fichiers Windows. |
Membres de données publics
Nom | Description |
---|---|
CWinApp ::m_bHelpMode | Indique si l’utilisateur est en mode contexte d’aide (généralement appelé avec MAJ+F1). |
CWinApp ::m_eHelpType | Spécifie le type d’aide utilisé par l’application. |
CWinApp ::m_hInstance | Identifie l’instance actuelle de l’application. |
CWinApp ::m_lpCmdLine | Pointe vers une chaîne terminée par null qui spécifie la ligne de commande de l’application. |
CWinApp ::m_nCmdShow | Spécifie la façon dont la fenêtre doit être affichée initialement. |
CWinApp ::m_pActiveWnd | Pointeur vers la fenêtre principale de l’application conteneur lorsqu’un serveur OLE est actif. |
CWinApp ::m_pszAppID | ID de modèle utilisateur de l’application. |
CWinApp ::m_pszAppName | Spécifie le nom de l'application. |
CWinApp ::m_pszExeName | Nom du module de l’application. |
CWinApp ::m_pszHelpFilePath | Chemin d’accès au fichier d’aide de l’application. |
CWinApp ::m_pszProfileName | L’application est . Nom de fichier INI. |
CWinApp ::m_pszRegistryKey | Permet de déterminer la clé de Registre complète pour le stockage des paramètres de profil d’application. |
Membres de données protégés
Nom | Description |
---|---|
CWinApp ::m_dwRestartManagerSupportFlags | Indicateurs qui déterminent le comportement du gestionnaire de redémarrage. |
CWinApp ::m_nAutosaveInterval | Durée en millisecondes entre les enregistrements automatiques. |
CWinApp ::m_pDataRecoveryHandler | Pointeur vers le gestionnaire de récupération de données pour l’application. |
Notes
Un objet d’application fournit des fonctions membres pour initialiser votre application (et chaque instance de celle-ci) et pour exécuter l’application.
Chaque application qui utilise les classes Microsoft Foundation ne peut contenir qu’un seul objet dérivé de CWinApp
. Cet objet est construit lorsque d’autres objets globaux C++ sont construits et sont déjà disponibles lorsque Windows appelle la WinMain
fonction, fournie par la bibliothèque de classes Microsoft Foundation. Déclarez votre objet dérivé CWinApp
au niveau global.
Lorsque vous dérivez une classe d’application, CWinApp
remplacez la fonction membre InitInstance pour créer l’objet de fenêtre principale de votre application.
Outre les CWinApp
fonctions membres, la bibliothèque de classes Microsoft Foundation fournit les fonctions globales suivantes pour accéder à votre CWinApp
objet et à d’autres informations globales :
AfxGetApp Obtient un pointeur vers l’objet
CWinApp
.AfxGetInstanceHandle obtient un handle pour l’instance d’application actuelle.
AfxGetResourceHandle obtient un handle pour les ressources de l’application.
AfxGetAppName obtient un pointeur vers une chaîne contenant le nom de l’application. Sinon, si vous avez un pointeur vers l’objet
CWinApp
, utilisezm_pszExeName
pour obtenir le nom de l’application.
Consultez CWinApp : Classe d’application pour plus d’informations sur la CWinApp
classe, notamment une vue d’ensemble des éléments suivants :
CWinApp
-code dérivé écrit par l’Assistant Application.CWinApp
rôle dans la séquence d’exécution de votre application.CWinApp
implémentations de fonction membre par défaut.CWinApp
les clés substituables.
Le m_hPrevInstance
membre de données n’existe plus. Pour déterminer si une autre instance de l’application est en cours d’exécution, utilisez un mutex nommé. Si l’ouverture du mutex échoue, il n’existe aucune autre instance de l’application en cours d’exécution.
Hiérarchie d'héritage
CWinApp
Spécifications
En-tête : afxwin.h
CWinApp ::AddDocTemplate
Appelez cette fonction membre pour ajouter un modèle de document à la liste des modèles de documents disponibles que l’application gère.
void AddDocTemplate(CDocTemplate* pTemplate);
Paramètres
pTemplate
Pointeur vers le CDocTemplate
pointeur à ajouter.
Notes
Vous devez ajouter tous les modèles de document à une application avant d’appeler RegisterShellFileTypes.
Exemple
// 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
Appelez cette fonction membre pour ajouter lpszPathName à la liste des fichiers MRU.
virtual void AddToRecentFileList(LPCTSTR lpszPathName);
Paramètres
lpszPathName
Chemin d’accès au fichier.
Notes
Vous devez appeler la fonction membre LoadStdProfileSettings pour charger la liste de fichiers MRU actuelle avant d’utiliser cette fonction membre.
L’infrastructure appelle cette fonction membre lorsqu’elle ouvre un fichier ou exécute la commande Enregistrer sous pour enregistrer un fichier avec un nouveau nom.
Exemple
// 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
Appelé par l’infrastructure lorsque l’application quitte de façon inattendue.
virtual DWORD ApplicationRecoveryCallback(LPVOID lpvParam);
Paramètres
lpvParam
[in] Réservé pour une future utilisation.
Valeur de retour
0 si cette méthode réussit ; différent de zéro si une erreur se produit.
Notes
Si votre application prend en charge le gestionnaire de redémarrage, l’infrastructure appelle cette fonction lorsque votre application se ferme de manière inattendue.
Implémentation par défaut d’utilisation ApplicationRecoveryCallback
pour CDataRecoveryHandler
enregistrer la liste des documents actuellement ouverts dans le Registre. Cette méthode n’enregistre pas automatiquement les fichiers.
Pour personnaliser le comportement, remplacez cette fonction dans une classe CWinApp dérivée ou transmettez votre propre méthode de récupération d’application en tant que paramètre à CWinApp ::RegisterWithRestartManager.
CWinApp ::CloseAllDocuments
Appelez cette fonction membre pour fermer tous les documents ouverts avant de quitter.
void CloseAllDocuments(BOOL bEndSession);
Paramètres
bEndSession
Spécifie si la session Windows est terminée ou non. Il est VRAI si la session est terminée ; sinon FALSE.
Notes
Appelez HideApplication avant d’appeler CloseAllDocuments
.
CWinApp ::CreatePrinterDC
Appelez cette fonction membre pour créer un contexte d’appareil d’imprimante (DC) à partir de l’imprimante sélectionnée.
BOOL CreatePrinterDC(CDC& dc);
Paramètres
dc
Référence à un contexte d’appareil d’imprimante.
Valeur de retour
Différent de zéro si le contexte de l’appareil d’imprimante est créé avec succès ; sinon 0.
Notes
CreatePrinterDC
initialise le contexte de l’appareil que vous transmettez par référence, afin de pouvoir l’utiliser pour imprimer.
Si la fonction réussit, lorsque vous avez terminé l’impression, vous devez détruire le contexte de l’appareil. Vous pouvez laisser le destructeur de l’objet CDC le faire, ou vous pouvez le faire explicitement en appelant CDC ::D eleteDC.
CWinApp ::CWinApp
Construit un CWinApp
objet et transmet lpszAppName pour être stocké en tant que nom d’application.
CWinApp(LPCTSTR lpszAppName = NULL);
Paramètres
lpszAppName
Chaîne terminée par null qui contient le nom de l’application que Windows utilise. Si cet argument n’est pas fourni ou est NULL, CWinApp
utilise la chaîne de ressource AFX_IDS_APP_TITLE ou le nom de fichier exécutable.
Notes
Vous devez construire un objet global de votre CWinApp
classe dérivée. Vous ne pouvez avoir qu’un CWinApp
seul objet dans votre application. Le constructeur stocke un pointeur vers l’objet CWinApp
pour pouvoir WinMain
appeler les fonctions membres de l’objet pour initialiser et exécuter l’application.
CWinApp ::D elRegTree
Supprime une clé de Registre spécifique et toutes ses sous-clés.
LONG DelRegTree(
HKEY hParentKey,
const CString& strKeyName);
LONG DelRegTree(
HKEY hParentKey,
const CString& strKeyName,
CAtlTransactionManager* pTM = NULL);
Paramètres
hParentKey
Gérer vers une clé de Registre.
strKeyName
Nom de la clé de Registre à supprimer.
pTM
Pointeur vers l’objet CAtlTransactionManager.
Valeur de retour
Si la fonction réussit, la valeur de retour est ERROR_SUCCESS. Si la fonction échoue, la valeur de retour est un code d’erreur différent de zéro défini dans Winerror.h.
Notes
Appelez cette fonction pour supprimer la clé spécifiée et ses sous-clés.
CWinApp ::D oMessageBox
L’infrastructure appelle cette fonction membre pour implémenter une boîte de message pour la fonction globale AfxMessageBox.
virtual int DoMessageBox(
LPCTSTR lpszPrompt,
UINT nType,
UINT nIDPrompt);
Paramètres
lpszPrompt
Adresse du texte dans la zone de message.
nType
Style de zone de message.
nIDPrompt
Index d’une chaîne de contexte d’aide.
Valeur de retour
Retourne les mêmes valeurs que AfxMessageBox
.
Notes
N’appelez pas cette fonction membre pour ouvrir une boîte de message ; utilisez AfxMessageBox
à la place.
Remplacez cette fonction membre pour personnaliser le traitement à l’échelle de l’application des AfxMessageBox
appels.
CWinApp ::D oWaitCursor
Cette fonction membre est appelée par l’infrastructure pour implémenter CWaitCursor, CCmdTarget ::BeginWaitCursor, CCmdTarget ::EndWaitCursor et CCmdTarget ::RestoreWaitCursor.
virtual void DoWaitCursor(int nCode);
Paramètres
nCode
Si ce paramètre est 1, un curseur d’attente s’affiche. Si 0, le curseur d’attente est restauré sans incrémenter le nombre de références. Si -1, le curseur d’attente se termine.
Notes
La valeur par défaut implémente un curseur de sablier. DoWaitCursor
conserve un nombre de références. Lorsqu’il est positif, le curseur de sablier s’affiche.
Bien que vous n’appeliez DoWaitCursor
pas directement, vous pouvez remplacer cette fonction membre pour modifier le curseur d’attente ou effectuer un traitement supplémentaire pendant l’affichage du curseur d’attente.
Pour faciliter et simplifier l’implémentation d’un curseur d’attente, utilisez CWaitCursor
.
Exemple
// 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 est requis
Active la prise en charge d’application D2D. Appelez cette méthode avant que la fenêtre principale soit initialisée.
BOOL EnableD2DSupport(
D2D1_FACTORY_TYPE d2dFactoryType = D2D1_FACTORY_TYPE_SINGLE_THREADED,
DWRITE_FACTORY_TYPE writeFactoryType = DWRITE_FACTORY_TYPE_SHARED);
Paramètres
d2dFactoryType
Modèle de thread de la fabrique D2D et les ressources qu’il crée.
writeFactoryType
Valeur qui spécifie si l’objet de fabrique d’écriture sera partagé ou isolé
Valeur de retour
Retourne TRUE si la prise en charge de D2D a été activée, FALSE - sinon
CWinApp ::EnableHtmlHelp
Appelez cette fonction membre à partir du constructeur de votre CWinApp
classe dérivée pour utiliser HTMLHelp pour l’aide de votre application.
void EnableHtmlHelp();
Notes
CWinApp ::EnableShellOpen
Appelez cette fonction, généralement à partir de votre InitInstance
remplacement, pour permettre aux utilisateurs de votre application d’ouvrir des fichiers de données lorsqu’ils double-cliquez sur les fichiers à partir du Gestionnaire de fichiers Windows.
void EnableShellOpen();
Notes
Appelez la RegisterShellFileTypes
fonction membre conjointement avec cette fonction ou fournissez un . Fichier REG avec votre application pour l’inscription manuelle des types de documents.
Exemple
// 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
Active l’interaction de la barre des tâches.
BOOL EnableTaskbarInteraction(BOOL bEnable = TRUE);
Paramètres
bEnable
Spécifie si l’interaction avec la barre des tâches Windows 7 doit être activée (TRUE) ou désactivée (FALSE).
Valeur de retour
Retourne TRUE si l’interaction de barre des tâches peut être activée ou désactivée.
Notes
Cette méthode doit être appelée avant la création de la fenêtre principale, sinon elle affirme et retourne FALSE.
CWinApp ::ExitInstance
Appelé par l’infrastructure à partir de la fonction membre Run
pour quitter cette instance de l’application.
virtual int ExitInstance();
Valeur de retour
Code de sortie de l’application ; 0 indique aucune erreur et les valeurs supérieures à 0 indiquent une erreur. Cette valeur est utilisée comme valeur de retour de WinMain
.
Notes
N’appelez pas cette fonction membre n’importe où, mais dans la Run
fonction membre.
L’implémentation par défaut de cette fonction écrit les options d’infrastructure dans l’application. Fichier INI. Remplacez cette fonction pour nettoyer lorsque votre application se termine.
Exemple
int CMyApp::ExitInstance()
{
if (m_pMySampleMem)
delete m_pMySampleMem;
DoCleanup();
return CWinApp::ExitInstance();
}
CWinApp ::GetApplicationRecoveryParameter
Récupère le paramètre d’entrée de la méthode de récupération d’application.
virtual LPVOID GetApplicationRecoveryParameter();
Valeur de retour
Paramètre d’entrée par défaut pour la méthode de récupération d’application.
Notes
Le comportement par défaut de cette fonction retourne NULL.
Pour plus d’informations, consultez CWinApp ::ApplicationRecoveryCallback.
CWinApp ::GetApplicationRecoveryPingInterval
Retourne la durée pendant laquelle le gestionnaire de redémarrage attend que la fonction de rappel de récupération retourne.
virtual DWORD GetApplicationRecoveryPingInterval();
Valeur de retour
Durée en millisecondes.
Notes
Lorsqu’une application inscrite auprès du gestionnaire de redémarrage se ferme de façon inattendue, l’application tente d’enregistrer des documents ouverts et appelle la fonction de rappel de récupération. La fonction de rappel de récupération par défaut est CWinApp ::ApplicationRecoveryCallback.
La durée pendant laquelle l’infrastructure attend le retour de la fonction de rappel de récupération est l’intervalle ping. Vous pouvez personnaliser l’intervalle ping en CWinApp::GetApplicationRecoveryPingInterval
remplaçant ou en fournissant une valeur personnalisée à RegisterWithRestartManager
.
CWinApp ::GetApplicationRestartFlags
Retourne les indicateurs du gestionnaire de redémarrage.
virtual DWORD GetApplicationRestartFlags();
Valeur de retour
Indicateurs du gestionnaire de redémarrage. L’implémentation par défaut retourne 0.
Notes
Les indicateurs du gestionnaire de redémarrage n’ont aucun effet avec l’implémentation par défaut. Ils sont fournis pour une utilisation future.
Vous définissez les indicateurs lorsque vous inscrivez l’application auprès du gestionnaire de redémarrage à l’aide de CWinApp ::RegisterWithRestartManager.
Les valeurs possibles pour les indicateurs du gestionnaire de redémarrage sont les suivantes :
RESTART_NO_CRASH
RESTART_NO_HANG
RESTART_NO_PATCH
RESTART_NO_REBOOT
CWinApp ::GetAppRegistryKey
Retourne la clé de HKEY_CURRENT_USER\"Software"\RegistryKey\ProfileName.
HKEY GetAppRegistryKey(CAtlTransactionManager* pTM = NULL);
Paramètres
pTM
Pointeur vers un CAtlTransactionManager
objet.
Valeur de retour
Clé d’application si la fonction réussit ; sinon NULL.
Notes
CWinApp ::GetDataRecoveryHandler
Obtient le gestionnaire de récupération de données pour cette instance de l’application.
virtual CDataRecoveryHandler *GetDataRecoveryHandler();
Valeur de retour
Gestionnaire de récupération de données pour cette instance de l’application.
Notes
Chaque application qui utilise le gestionnaire de redémarrage doit avoir une instance de la classe CDataRecoveryHandler. Cette classe est responsable de la surveillance des documents ouverts et de l’enregistrement automatique des fichiers. Le comportement du CDataRecoveryHandler
gestionnaire de redémarrage dépend de la configuration du gestionnaire de redémarrage. Pour plus d’informations, consultez CDataRecoveryHandler, classe.
Cette méthode retourne NULL sur les systèmes d’exploitation antérieurs à Windows Vista. Le gestionnaire de redémarrage n’est pas pris en charge sur les systèmes d’exploitation antérieurs à Windows Vista.
Si l’application ne dispose actuellement pas d’un gestionnaire de récupération de données, cette méthode en crée une et retourne un pointeur vers celui-ci.
CWinApp ::GetFirstDocTemplatePosition
Obtient la position du premier modèle de document dans l’application.
POSITION GetFirstDocTemplatePosition() const;
Valeur de retour
Valeur POSITION qui peut être utilisée pour l’itération ou la récupération du pointeur d’objet ; NULL si la liste est vide.
Notes
Utilisez la valeur POSITION retournée dans un appel à GetNextDocTemplate pour obtenir le premier objet CDocTemplate .
CWinApp ::GetHelpMode
Récupère le type d’aide utilisé par l’application.
AFX_HELP_TYPE GetHelpMode();
Valeur de retour
Type d’aide utilisé par l’application. Pour plus d’informations, consultez CWinApp ::m_eHelpType .
CWinApp ::GetNextDocTemplate
Obtient le modèle de document identifié par pos, puis définit pos sur la valeur POSITION.
CDocTemplate* GetNextDocTemplate(POSITION& pos) const;
Paramètres
pos
Référence à une valeur POSITION retournée par un appel précédent à GetNextDocTemplate
ou GetFirstDocTemplatePosition. La valeur est mise à jour à la position suivante par cet appel.
Valeur de retour
Pointeur vers un objet CDocTemplate .
Notes
Vous pouvez utiliser GetNextDocTemplate
dans une boucle d’itération avant si vous établissez la position initiale avec un appel à GetFirstDocTemplatePosition
.
Vous devez vous assurer que votre valeur POSITION est valide. S’il n’est pas valide, la version de débogage de la bibliothèque de classes Microsoft Foundation affirme.
Si le modèle de document récupéré est le dernier disponible, la nouvelle valeur de pos est définie sur NULL.
CWinApp ::GetPrinterDeviceDefaults
Appelez cette fonction membre pour préparer un contexte d’appareil d’imprimante pour l’impression.
BOOL GetPrinterDeviceDefaults(struct tagPDA* pPrintDlg);
Paramètres
pPrintDlg
Pointeur vers une structure PRINTDLG .
Valeur de retour
Valeur différente de zéro cas de réussite ; sinon, 0.
Notes
Récupère les valeurs par défaut de l’imprimante actuelle à partir de Windows . Le fichier INI le cas échéant ou utilise la dernière configuration de l’imprimante définie par l’utilisateur dans le programme d’installation d’impression.
Exemple
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
Appelez cette fonction membre pour récupérer des données binaires à partir d’une entrée dans une section spécifiée du Registre de l’application ou . Fichier INI.
BOOL GetProfileBinary(
LPCTSTR lpszSection,
LPCTSTR lpszEntry,
LPBYTE* ppData,
UINT* pBytes);
Paramètres
lpszSection
Pointe vers une chaîne terminée par null qui spécifie la section contenant l’entrée.
lpszEntry
Pointe vers une chaîne terminée par null qui contient l’entrée dont la valeur doit être récupérée.
ppData
Pointe vers un pointeur qui recevra l’adresse des données.
octets
Pointe vers un UINT qui recevra la taille des données (en octets).
Valeur de retour
Valeur différente de zéro cas de réussite ; sinon, 0.
Notes
Cette fonction membre n’est pas sensible à la casse. Par conséquent, les chaînes des paramètres lpszSection et lpszEntry peuvent différer dans le cas.
Remarque
GetProfileBinary
alloue une mémoire tampon et retourne son adresse dans * ppData. L’appelant est chargé de libérer la mémoire tampon à l’aide de delete [].
Important
Les données retournées par cette fonction ne sont pas nécessairement null terminées, et l’appelant doit effectuer la validation. Pour plus d’informations, consultez Solutions contre les dépassements de mémoire tampon.
Exemple
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
Pour obtenir un exemple supplémentaire, consultez CWinApp ::WriteProfileBinary.
CWinApp ::GetProfileInt
Appelez cette fonction membre pour récupérer la valeur d’un entier à partir d’une entrée dans une section spécifiée du registre de l’application ou . Fichier INI.
UINT GetProfileInt(
LPCTSTR lpszSection,
LPCTSTR lpszEntry,
int nDefault);
Paramètres
lpszSection
Pointe vers une chaîne terminée par null qui spécifie la section contenant l’entrée.
lpszEntry
Pointe vers une chaîne terminée par null qui contient l’entrée dont la valeur doit être récupérée.
nDefault
Spécifie la valeur par défaut à retourner si l’infrastructure ne trouve pas l’entrée.
Valeur de retour
Valeur entière de la chaîne qui suit l’entrée spécifiée si la fonction réussit. La valeur de retour est la valeur du paramètre nDefault si la fonction ne trouve pas l’entrée. La valeur de retour est 0 si la valeur qui correspond à l’entrée spécifiée n’est pas un entier.
Cette fonction membre prend en charge la notation hexadécimale pour la valeur dans le . Fichier INI. Lorsque vous récupérez un entier signé, vous devez convertir la valeur en un int
.
Notes
Cette fonction membre n’est pas sensible à la casse. Par conséquent, les chaînes des paramètres lpszSection et lpszEntry peuvent différer dans le cas.
Important
Les données retournées par cette fonction ne sont pas nécessairement null terminées, et l’appelant doit effectuer la validation. Pour plus d’informations, consultez Solutions contre les dépassements de mémoire tampon.
Exemple
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);
Pour obtenir un exemple supplémentaire, consultez CWinApp ::WriteProfileInt.
CWinApp ::GetProfileString
Appelez cette fonction membre pour récupérer la chaîne associée à une entrée dans la section spécifiée dans le Registre de l’application ou . Fichier INI.
CString GetProfileString(
LPCTSTR lpszSection,
LPCTSTR lpszEntry,
LPCTSTR lpszDefault = NULL);
Paramètres
lpszSection
Pointe vers une chaîne terminée par null qui spécifie la section contenant l’entrée.
lpszEntry
Pointe vers une chaîne terminée par null qui contient l’entrée dont la chaîne doit être récupérée. Cette valeur ne doit pas être NULL.
lpszDefault
Pointe vers la valeur de chaîne par défaut de l’entrée donnée si l’entrée est introuvable dans le fichier d’initialisation.
Valeur de retour
La valeur de retour est la chaîne de l’application. Fichier INI ou lpszDefault si la chaîne est introuvable. La longueur maximale de chaîne prise en charge par l’infrastructure est _MAX_PATH. Si lpszDefault a la valeur NULL, la valeur de retour est une chaîne vide.
Notes
Important
Les données retournées par cette fonction ne sont pas nécessairement null terminées, et l’appelant doit effectuer la validation. Pour plus d’informations, consultez Solutions contre les dépassements de mémoire tampon.
Exemple
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);
Pour obtenir un autre exemple, consultez l’exemple de CWinApp ::GetProfileInt.
CWinApp ::GetSectionKey
Retourne la clé de HKEY_CURRENT_USER\"Software"\RegistryKey\AppName\lpszSection.
HKEY GetSectionKey(
LPCTSTR lpszSection,
CAtlTransactionManager* pTM = NULL);
Paramètres
lpszSection
Nom de la clé à obtenir.
pTM
Pointeur vers un CAtlTransactionManager
objet.
Valeur de retour
Clé de section si la fonction réussit ; sinon NULL.
Notes
CWinApp ::HideApplication
Appelez cette fonction membre pour masquer une application avant de fermer les documents ouverts.
void HideApplication();
CWinApp ::HtmlHelp
Appelez cette fonction membre pour appeler l’application HTMLHelp.
virtual void HtmlHelp(
DWORD_PTR dwData,
UINT nCmd = 0x000F);
Paramètres
dwData
Spécifie des données supplémentaires. La valeur utilisée dépend de la valeur du paramètre nCmd . Valeurs par défaut, c’est-à-dire 0x000F
HH_HELP_CONTEXT.
nCmd
Spécifie le type d’aide demandée. Pour obtenir la liste des valeurs possibles et leur impact sur le paramètre dwData , consultez le paramètre uCommand décrit dans les fonctions de l’API HtmlHelpW ou HtmlHelpA dans le Kit de développement logiciel (SDK) Windows.
Notes
L’infrastructure appelle également cette fonction pour appeler l’application HTMLHelp.
L’infrastructure ferme automatiquement l’application HTMLHelp lorsque votre application se termine.
CWinApp ::InitInstance
Windows permet à plusieurs copies du même programme de s’exécuter en même temps.
virtual BOOL InitInstance();
Valeur de retour
Différent de zéro si l’initialisation réussit ; sinon 0.
Notes
L’initialisation de l’application est divisée conceptuellement en deux sections : l’initialisation d’application ponctuelle effectuée la première fois que le programme s’exécute et l’initialisation d’instance qui s’exécute chaque fois qu’une copie du programme s’exécute, y compris la première fois. Implémentation de l’infrastructure des WinMain
appels de cette fonction.
Remplacez InitInstance
l’initialisation de chaque nouvelle instance de votre application s’exécutant sous Windows. En règle générale, vous remplacez la construction InitInstance
de votre objet de fenêtre principale et définissez le membre de CWinThread::m_pMainWnd
données pour qu’il pointe vers cette fenêtre. Pour plus d’informations sur la substitution de cette fonction membre, consultez CWinApp : The Application Class.
Remarque
Les applications MFC doivent être initialisées en tant qu’appartement monothread (STA). Si vous appelez CoInitializeEx dans votre InitInstance
remplacement, spécifiez COINIT_APARTMENTTHREADED (plutôt que COINIT_MULTITHREADED).
Exemple
// 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
Indique si l’interaction de la barre des tâches Windows 7 est activée.
virtual BOOL IsTaskbarInteractionEnabled();
Valeur de retour
Retourne TRUE si EnableTaskbarInteraction
elle a été appelée et que le système d’exploitation est Windows 7 ou version ultérieure.
Notes
L’interaction de barre des tâches signifie que l’application MDI affiche le contenu des enfants MDI dans des miniatures à onglets distincts qui s’affichent lorsque le pointeur de la souris se trouve sur le bouton de la barre des tâches de l’application.
CWinApp ::LoadCursor
Charge la ressource de curseur nommée par lpszResourceName ou spécifiée par nIDResource à partir du fichier exécutable actuel.
HCURSOR LoadCursor(LPCTSTR lpszResourceName) const; HCURSOR LoadCursor(UINT nIDResource) const;
Paramètres
lpszResourceName
Pointe vers une chaîne terminée par null qui contient le nom de la ressource de curseur. Vous pouvez utiliser un CString
argument pour cet argument.
nIDResource
ID de la ressource de curseur. Pour obtenir la liste des ressources, consultez LoadCursor dans le Kit de développement logiciel (SDK) Windows.
Valeur de retour
Handle vers un curseur en cas de réussite ; sinon NULL.
Notes
LoadCursor
charge le curseur en mémoire uniquement s’il n’a pas été précédemment chargé ; sinon, il récupère un handle de la ressource existante.
Utilisez la fonction membre LoadStandardCursor ou LoadOEMCursor pour accéder aux curseurs Windows prédéfinis.
Exemple
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
Charge la ressource d’icône nommée par lpszResourceName ou spécifiée par nIDResource à partir du fichier exécutable.
HICON LoadIcon(LPCTSTR lpszResourceName) const; HICON LoadIcon(UINT nIDResource) const;
Paramètres
lpszResourceName
Pointe vers une chaîne terminée par null qui contient le nom de la ressource d’icône. Vous pouvez également utiliser un CString
argument pour cet argument.
nIDResource
Numéro d’ID de la ressource d’icône.
Valeur de retour
Handle vers une icône en cas de réussite ; sinon NULL.
Notes
LoadIcon
charge l’icône uniquement si elle n’a pas été précédemment chargée ; sinon, il récupère un handle de la ressource existante.
Vous pouvez utiliser la fonction membre LoadStandardIcon ou LoadOEMIcon pour accéder aux icônes Windows prédéfinies.
Remarque
Cette fonction membre appelle la fonction d’API Win32 LoadIcon, qui ne peut charger qu’une icône dont la taille est conforme aux valeurs de métriques système SM_CXICON et SM_CYICON.
CWinApp ::LoadOEMCursor
Charge la ressource de curseur prédéfinie Windows spécifiée par nIDCursor.
HCURSOR LoadOEMCursor(UINT nIDCursor) const;
Paramètres
nIDCursor
Identificateur de constante de manifeste OCR_ qui spécifie un curseur Windows prédéfini. Vous devez avoir #define OEMRESOURCE
avant #include \<afxwin.h>
d’accéder aux constantes OCR_ dans WINDOWS.H.
Valeur de retour
Handle vers un curseur en cas de réussite ; sinon NULL.
Notes
Utilisez la LoadOEMCursor
fonction membre LoadStandardCursor pour accéder aux curseurs Windows prédéfinis.
Exemple
// 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
Charge la ressource d’icône prédéfinie Windows spécifiée par nIDIcon.
HICON LoadOEMIcon(UINT nIDIcon) const;
Paramètres
nIDIcon
Identificateur de constante de manifeste OIC_ qui spécifie une icône Windows prédéfinie. Vous devez avoir #define OEMRESOURCE
avant #include \<afxwin.h>
d’accéder aux constantes OIC_ dans WINDOWS.H.
Valeur de retour
Handle vers une icône en cas de réussite ; sinon NULL.
Notes
Utilisez la LoadOEMIcon
fonction membre LoadStandardIcon ou loadStandardIcon pour accéder aux icônes Windows prédéfinies.
CWinApp ::LoadStandardCursor
Charge la ressource de curseur prédéfinie Windows spécifiée par lpszCursorName .
HCURSOR LoadStandardCursor(LPCTSTR lpszCursorName) const;
Paramètres
lpszCursorName
Identificateur de constante de manifeste IDC_ qui spécifie un curseur Windows prédéfini. Ces identificateurs sont définis dans WINDOWS.H. La liste suivante présente les valeurs et significations prédéfinies possibles pour lpszCursorName :
IDC_ARROW curseur de flèche Standard
IDC_IBEAM curseur d’insertion de texte standard
IDC_WAIT curseur Hourglass utilisé lorsque Windows effectue une tâche fastidieuse
IDC_CROSS curseur de cheveux croisés pour la sélection
IDC_UPARROW Flèche qui pointe vers le haut droit
IDC_SIZE obsolète et non pris en charge ; utiliser IDC_SIZEALL
IDC_SIZEALL Une flèche à quatre pointes. Curseur à utiliser pour redimensionner une fenêtre.
IDC_ICON obsolète et non pris en charge. Utilisez IDC_ARROW.
IDC_SIZENWSE flèche à deux pointes avec des extrémités en haut à gauche et en bas à droite
IDC_SIZENESW flèche à deux pointes avec des extrémités en haut à droite et en bas à gauche
IDC_SIZEWE flèche à deux pointes horizontales
flèche à deux pointes verticales IDC_SIZENS
Valeur de retour
Handle vers un curseur en cas de réussite ; sinon NULL.
Notes
Utilisez la LoadStandardCursor
fonction membre LoadOEMCursor pour accéder aux curseurs Windows prédéfinis.
Exemple
HCURSOR hCursor;
// Load the predefined Windows "up arrow" cursor.
hCursor = AfxGetApp()->LoadStandardCursor(IDC_UPARROW);
CWinApp ::LoadStandardIcon
Charge la ressource d’icône prédéfinie Windows spécifiée par lpszIconName .
HICON LoadStandardIcon(LPCTSTR lpszIconName) const;
Paramètres
lpszIconName
Identificateur de constante de manifeste qui spécifie une icône Windows prédéfinie. Ces identificateurs sont définis dans WINDOWS.H. Pour obtenir la liste des valeurs prédéfinies possibles et de leurs descriptions, consultez le paramètre lpIconName dans LoadIcon dans le Kit de développement logiciel (SDK) Windows.
Valeur de retour
Handle vers une icône en cas de réussite ; sinon NULL.
Notes
Utilisez la LoadStandardIcon
fonction membre LoadOEMIcon pour accéder aux icônes Windows prédéfinies.
CWinApp ::LoadStdProfileSettings
Appelez cette fonction membre à partir de la fonction membre InitInstance pour activer et charger la liste des fichiers les plus récemment utilisés (MRU) et le dernier état d’aperçu.
void LoadStdProfileSettings(UINT nMaxMRU = _AFX_MRU_COUNT);
Paramètres
nMaxMRU
Nombre de fichiers récemment utilisés pour effectuer le suivi.
Notes
Si nMaxMRU est 0, aucune liste mrU n’est conservée.
CWinApp ::m_bHelpMode
TRUE si l’application est en mode contexte d’aide (appelée conventionnellement avec MAJ + F1) ; sinon FALSE.
BOOL m_bHelpMode;
Notes
En mode contexte d’aide, le curseur devient un point d’interrogation et l’utilisateur peut le déplacer à propos de l’écran. Examinez cet indicateur si vous souhaitez implémenter une gestion spéciale en mode Aide. m_bHelpMode
est une variable publique de type BOOL.
CWinApp ::m_dwRestartManagerSupportFlags
Indicateurs qui déterminent le comportement du gestionnaire de redémarrage.
DWORD m_dwRestartManagerSupportFlags;
Notes
Pour activer le gestionnaire de redémarrage, définissez m_dwRestartManagerSupportFlags
le comportement souhaité. Le tableau suivant présente les indicateurs disponibles.
Indicateur | Description |
---|---|
AFX_RESTART_MANAGER_SUPPORT_RESTART | L’application est inscrite à l’aide de CWinApp ::RegisterWithRestartManager. Le gestionnaire de redémarrage est responsable du redémarrage de l’application s’il se ferme de façon inattendue. |
- AFX_RESTART_MANAGER_SUPPORT_RECOVERY | L’application est inscrite auprès du gestionnaire de redémarrage et le gestionnaire de redémarrage appelle la fonction de rappel de récupération lorsqu’elle redémarre l’application. La fonction de rappel de récupération par défaut est CWinApp ::ApplicationRecoveryCallback. |
- AFX_RESTART_MANAGER_AUTOSAVE_AT_RESTART | L’enregistrement automatique est activé et le gestionnaire de redémarrage enregistre automatiquement tous les documents ouverts lorsque l’application redémarre. |
- AFX_RESTART_MANAGER_AUTOSAVE_AT_INTERVAL | L’enregistrement automatique est activé et le gestionnaire de redémarrage enregistre automatiquement tous les documents ouverts à intervalles réguliers. L’intervalle est défini par CWinApp ::m_nAutosaveInterval. |
- AFX_RESTART_MANAGER_REOPEN_PREVIOUS_FILES | Le gestionnaire de redémarrage ouvre précédemment les documents après avoir redémarré l’application à partir d’une sortie inattendue. La classe CDataRecoveryHandler gère le stockage de la liste des documents ouverts et leur restauration. |
- AFX_RESTART_MANAGER_RESTORE_AUTOSAVED_FILES | Le gestionnaire de redémarrage invite l’utilisateur à restaurer les fichiers enregistrés automatiquement après le redémarrage de l’application. La CDataRecoveryHandler classe interroge l’utilisateur. |
- AFX_RESTART_MANAGER_SUPPORT_NO_AUTOSAVE | Union de AFX_RESTART_MANAGER_SUPPORT_RESTART, de AFX_RESTART_MANAGER_SUPPORT_RECOVER et de AFX_RESTART_MANAGER_REOPEN_PREVIOUS_FILES. |
- AFX_RESTART_MANAGER_SUPPORT_ALL_ASPECTS | Union de AFX_RESTART_MANAGER_SUPPORT_NO_AUTOSAVE, de AFX_RESTART_MANAGER_AUTOSAVE_AT_RESTART, de AFX_RESTART_MANAGER_AUTOSAVE_AT_INTERVAL et de AFX_RESTART_MANAGER_RESTORE_AUTOSAVED_FILES. |
- AFX_RESTART_MANAGER_SUPPORT_RESTART_ASPECTS | Union de AFX_RESTART_MANAGER_SUPPORT_RESTART, de AFX_RESTART_MANAGER_AUTOSAVE_AT_RESTART, de AFX_RESTART_MANAGER_REOPEN_PREVIOUS_FILES et de AFX_RESTART_MANAGER_RESTORE_AUTOSAVED_FILES. |
- AFX_RESTART_MANAGER_SUPPORT_RECOVERY_ASPECTS | L’union ofAFX_RESTART_MANAGER_SUPPORT_RECOVERY, AFX_RESTART_MANAGER_AUTOSAVE_AT_INTERVAL, AFX_RESTART_MANAGER_REOPEN_PREVIOUS_FILES et AFX_RESTART_MANAGER_RESTORE_AUTOSAVED_FILES. |
CWinApp ::m_eHelpType
Le type de ce membre de données est le type énuméré AFX_HELP_TYPE, qui est défini dans la CWinApp
classe.
AFX_HELP_TYPE m_eHelpType;
Notes
L’énumération AFX_HELP_TYPE est définie comme suit :
enum AFX_HELP_TYPE {
afxWinHelp = 0,
afxHTMLHelp = 1
};
Pour définir l’aide de l’application sur l’aide HTML, appelez SetHelpMode et spécifiez
afxHTMLHelp
.Pour définir l’aide de l’application sur WinHelp, appelez
SetHelpMode
et spécifiezafxWinHelp
.
CWinApp ::m_hInstance
Correspond au paramètre hInstance passé par Windows à WinMain
.
HINSTANCE m_hInstance;
Notes
Le m_hInstance
membre de données est un handle pour l’instance actuelle de l’application s’exécutant sous Windows. Cela est retourné par la fonction globale AfxGetInstanceHandle. m_hInstance
est une variable publique de type HINSTANCE.
Exemple
// 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
Correspond au paramètre lpCmdLine passé par Windows à WinMain
.
LPTSTR m_lpCmdLine;
Notes
Pointe vers une chaîne terminée par null qui spécifie la ligne de commande de l’application. Permet m_lpCmdLine
d’accéder à tous les arguments de ligne de commande entrés par l’utilisateur lors du démarrage de l’application. m_lpCmdLine
est une variable publique de type LPTSTR.
Exemple
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
Durée en millisecondes entre les enregistrements automatiques.
int m_nAutosaveInterval;
Notes
Vous pouvez configurer le gestionnaire de redémarrage pour enregistrer automatiquement les documents ouverts à intervalles définis. Si votre application n’enregistre pas automatiquement les fichiers, ce paramètre n’a aucun effet.
CWinApp ::m_nCmdShow
Correspond au paramètre nCmdShow passé par Windows à WinMain
.
int m_nCmdShow;
Notes
Vous devez passer m_nCmdShow
en tant qu’argument lorsque vous appelez CWnd ::ShowWindow pour la fenêtre principale de votre application. m_nCmdShow
est une variable publique de type int
.
Exemple
// 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
Utilisez ce membre de données pour stocker un pointeur vers la fenêtre principale de l’application conteneur OLE sur laquelle votre application serveur OLE est activée.
Notes
Si ce membre de données est NULL, l’application n’est pas active sur place.
L’infrastructure définit cette variable membre lorsque la fenêtre frame est activée sur place par une application conteneur OLE.
CWinApp ::m_pDataRecoveryHandler
Pointeur vers le gestionnaire de récupération de données pour l’application.
CDataRecoveryHandler* m_pDataRecoveryHandler;
Notes
Le gestionnaire de récupération de données d’une application surveille les documents ouverts et les enregistre automatiquement. L’infrastructure utilise le gestionnaire de récupération de données pour restaurer les fichiers enregistrés automatiquement lorsqu’une application redémarre une fois qu’elle s’arrête de façon inattendue. Pour plus d’informations, consultez CDataRecoveryHandler, classe.
CWinApp ::m_pszAppName
Spécifie le nom de l'application.
LPCTSTR m_pszAppName;
Notes
Le nom de l’application peut provenir du paramètre passé au constructeur CWinApp , ou, s’il n’est pas spécifié, à la chaîne de ressource avec l’ID de AFX_IDS_APP_TITLE. Si le nom de l’application est introuvable dans la ressource, il provient du nom de fichier .EXE du programme.
Retourné par la fonction globale AfxGetAppName. m_pszAppName
est une variable publique de type const char*.
Remarque
Si vous affectez une valeur, m_pszAppName
elle doit être allouée dynamiquement sur le tas. Le CWinApp
destructeur appelle free( ) avec ce pointeur. Vous souhaitez beaucoup utiliser la _tcsdup
fonction de bibliothèque d’exécution ( ) pour effectuer l’allocation. Libérez également la mémoire associée au pointeur actuel avant d’affecter une nouvelle valeur. Par exemple :
//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"));
Exemple
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
Contient le nom du fichier exécutable de l’application sans extension.
LPCTSTR m_pszExeName;
Notes
Contrairement à m_pszAppName, ce nom ne peut pas contenir de vides. m_pszExeName
est une variable publique de type const char*.
Remarque
Si vous affectez une valeur, m_pszExeName
elle doit être allouée dynamiquement sur le tas. Le CWinApp
destructeur appelle free( ) avec ce pointeur. Vous souhaitez beaucoup utiliser la _tcsdup
fonction de bibliothèque d’exécution ( ) pour effectuer l’allocation. Libérez également la mémoire associée au pointeur actuel avant d’affecter une nouvelle valeur. Par exemple :
//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
Contient le chemin d’accès au fichier d’aide de l’application.
LPCTSTR m_pszHelpFilePath;
Notes
Par défaut, l’infrastructure initialise m_pszHelpFilePath
le nom de l’application avec ». Ajout de HLP. Pour modifier le nom du fichier d’aide, définissez m_pszHelpFilePath
la valeur sur une chaîne qui contient le nom complet du fichier d’aide souhaité. Un endroit pratique pour ce faire se trouve dans la fonction InitInstance de l’application. m_pszHelpFilePath
est une variable publique de type const char*.
Remarque
Si vous affectez une valeur, m_pszHelpFilePath
elle doit être allouée dynamiquement sur le tas. Le CWinApp
destructeur appelle free( ) avec ce pointeur. Vous souhaitez beaucoup utiliser la _tcsdup
fonction de bibliothèque d’exécution ( ) pour effectuer l’allocation. Libérez également la mémoire associée au pointeur actuel avant d’affecter une nouvelle valeur. Par exemple :
//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
Contient le nom de l’application . Fichier INI.
LPCTSTR m_pszProfileName;
Notes
m_pszProfileName
est une variable publique de type const char*.
Remarque
Si vous affectez une valeur, m_pszProfileName
elle doit être allouée dynamiquement sur le tas. Le CWinApp
destructeur appelle free( ) avec ce pointeur. Vous souhaitez beaucoup utiliser la _tcsdup
fonction de bibliothèque d’exécution ( ) pour effectuer l’allocation. Libérez également la mémoire associée au pointeur actuel avant d’affecter une nouvelle valeur. Par exemple :
//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
Permet de déterminer où, dans le registre ou le fichier INI, les paramètres de profil d’application sont stockés.
LPCTSTR m_pszRegistryKey;
Notes
Normalement, ce membre de données est traité en lecture seule.
- La valeur est stockée dans une clé de Registre. Le nom du paramètre de profil d’application est ajouté à la clé de Registre suivante : HKEY_CURRENT_USER/Software/LocalAppWizard-Generated/.
Si vous affectez une valeur, m_pszRegistryKey
elle doit être allouée dynamiquement sur le tas. Le CWinApp
destructeur appelle free( ) avec ce pointeur. Vous souhaitez beaucoup utiliser la _tcsdup
fonction de bibliothèque d’exécution ( ) pour effectuer l’allocation. Libérez également la mémoire associée au pointeur actuel avant d’affecter une nouvelle valeur. Par exemple :
//First free the string allocated by MFC at CWinApp startup.
//The string is allocated before InitInstance is called.
free((void*)m_pszRegistryKey);
//Change the name of the registry key.
//The CWinApp destructor will free the memory.
m_pszRegistryKey = _tcsdup(
_T("HKEY_CURRENT_USER\\Software\\mycompany\\myapp\\thissection\\thisvalue"));
CWinApp ::m_pszAppID
ID de modèle utilisateur de l’application.
LPCTSTR m_pszAppID;
Notes
CWinApp ::OnContextHelp
Gère l’aide MAJ+F1 dans l’application.
afx_msg void OnContextHelp();
Notes
Vous devez ajouter une ON_COMMAND( ID_CONTEXT_HELP, OnContextHelp )
instruction à votre CWinApp
mappage de messages de classe et également ajouter une entrée de table accélérateur, généralement MAJ+F1, pour activer cette fonction membre.
OnContextHelp
place l’application en mode Aide. Le curseur passe à une flèche et à un point d’interrogation, et l’utilisateur peut ensuite déplacer le pointeur de la souris et appuyer sur le bouton gauche de la souris pour sélectionner une boîte de dialogue, une fenêtre, un menu ou un bouton de commande. Cette fonction membre récupère le contexte d’aide de l’objet sous le curseur et appelle la fonction Windows WinHelp avec ce contexte d’aide.
CWinApp ::OnDDECommand
Appelé par l’infrastructure lorsque la fenêtre de trame principale reçoit un message d’exécution DDE.
virtual BOOL OnDDECommand(LPTSTR lpszCommand);
Paramètres
lpszCommand
Pointe vers une chaîne de commande DDE reçue par l’application.
Valeur de retour
Différent de zéro si la commande est gérée ; sinon 0.
Notes
L’implémentation par défaut vérifie si la commande est une demande d’ouverture d’un document et, le cas échéant, ouvre le document spécifié. Le Gestionnaire de fichiers Windows envoie généralement ces chaînes de commande DDE lorsque l’utilisateur double-clique sur un fichier de données. Remplacez cette fonction pour gérer d’autres commandes d’exécution DDE, telles que la commande à imprimer.
Exemple
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
Implémente la commande ID_FILE_NEW.
afx_msg void OnFileNew();
Notes
Vous devez ajouter une ON_COMMAND( ID_FILE_NEW, OnFileNew )
instruction à votre CWinApp
mappage de messages de classe pour activer cette fonction membre. Si elle est activée, cette fonction gère l’exécution de la commande File New.
Consultez la note technique 22 pour plus d’informations sur le comportement par défaut et les conseils sur la façon de remplacer cette fonction membre.
Exemple
// 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
Implémente la commande ID_FILE_OPEN.
afx_msg void OnFileOpen();
Notes
Vous devez ajouter une ON_COMMAND( ID_FILE_OPEN, OnFileOpen )
instruction à votre CWinApp
mappage de messages de classe pour activer cette fonction membre. Si elle est activée, cette fonction gère l’exécution de la commande Ouvrir de fichier.
Pour plus d’informations sur le comportement par défaut et les conseils sur la façon de remplacer cette fonction membre, consultez la note technique 22.
Exemple
// 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
Implémente la commande ID_FILE_PRINT_SETUP.
afx_msg void OnFilePrintSetup();
Notes
Vous devez ajouter une ON_COMMAND( ID_FILE_PRINT_SETUP, OnFilePrintSetup )
instruction à votre CWinApp
mappage de messages de classe pour activer cette fonction membre. Si elle est activée, cette fonction gère l’exécution de la commande File Print.
Pour plus d’informations sur le comportement par défaut et les conseils sur la façon de remplacer cette fonction membre, consultez la note technique 22.
Exemple
// 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
Gère l'aide F1 dans l'application (en utilisant le contexte actuel).
afx_msg void OnHelp();
Notes
En règle générale, vous allez également ajouter une entrée de touche d’accélérateur pour la touche F1. L’activation de la clé F1 n’est qu’une convention, et non une exigence.
Vous devez ajouter une ON_COMMAND( ID_HELP, OnHelp )
instruction à votre CWinApp
mappage de messages de classe pour activer cette fonction membre. Si cette option est activée, appelée par l’infrastructure lorsque l’utilisateur appuie sur la touche F1.
L’implémentation par défaut de cette fonction de gestionnaire de messages détermine le contexte d’aide qui correspond à la fenêtre actuelle, à la boîte de dialogue ou à l’élément de menu, puis appelle WINHELP.EXE. Si aucun contexte n’est actuellement disponible, la fonction utilise le contexte par défaut.
Remplacez cette fonction membre pour définir le contexte d’aide sur un élément autre que la fenêtre, la boîte de dialogue, l’élément de menu ou le bouton de barre d’outils qui a actuellement le focus. Appelez WinHelp
avec l’ID de contexte d’aide souhaité.
CWinApp ::OnHelpFinder
Gère les commandes ID_HELP_FINDER et ID_DEFAULT_HELP.
afx_msg void OnHelpFinder();
Notes
Vous devez ajouter une ON_COMMAND( ID_HELP_FINDER, OnHelpFinder )
instruction à votre CWinApp
mappage de messages de classe pour activer cette fonction membre. Si cette option est activée, l’infrastructure appelle cette fonction de gestionnaire de messages lorsque l’utilisateur de votre application sélectionne la commande Help Finder à appeler WinHelp
avec la rubrique HELP_FINDER standard.
CWinApp ::OnHelpIndex
Gère la commande ID_HELP_INDEX et fournit une rubrique d’aide par défaut.
afx_msg void OnHelpIndex();
Notes
Vous devez ajouter une ON_COMMAND( ID_HELP_INDEX, OnHelpIndex )
instruction à votre CWinApp
mappage de messages de classe pour activer cette fonction membre. Si cette option est activée, l’infrastructure appelle cette fonction de gestionnaire de messages lorsque l’utilisateur de votre application sélectionne la commande d’index d’aide à appeler WinHelp
avec la rubrique HELP_INDEX standard.
CWinApp ::OnHelpUsing
Gère la commande ID_HELP_USING.
afx_msg void OnHelpUsing();
Notes
Vous devez ajouter une ON_COMMAND( ID_HELP_USING, OnHelpUsing )
instruction à votre CWinApp
mappage de messages de classe pour activer cette fonction membre. L’infrastructure appelle cette fonction de gestionnaire de messages lorsque l’utilisateur de votre application sélectionne la commande Aide à l’aide pour appeler l’application WinHelp
avec la rubrique HELP_HELPONHELP standard.
CWinApp ::OnIdle
Remplacez cette fonction membre pour effectuer un traitement en temps d’inactivité.
virtual BOOL OnIdle(LONG lCount);
Paramètres
lCount
Un compteur incrémenté chaque fois OnIdle
qu’il est appelé lorsque la file d’attente de messages de l’application est vide. Ce nombre est réinitialisé à 0 chaque fois qu’un nouveau message est traité. Vous pouvez utiliser le paramètre lCount pour déterminer la durée relative pendant laquelle l’application a été inactive sans traiter un message.
Valeur de retour
Non différent de zéro pour recevoir plus de temps de traitement inactif ; 0 si aucun temps d’inactivité n’est nécessaire.
Notes
OnIdle
est appelé dans la boucle de message par défaut lorsque la file d’attente de messages de l’application est vide. Utilisez votre remplacement pour appeler vos propres tâches de gestionnaire inactif en arrière-plan.
OnIdle
doit retourner 0 pour indiquer qu’aucune durée de traitement inactive n’est nécessaire. Le paramètre lCount est incrémenté chaque fois OnIdle
qu’il est appelé lorsque la file d’attente de messages est vide et est réinitialisée à 0 chaque fois qu’un nouveau message est traité. Vous pouvez appeler vos différentes routines inactives en fonction de ce nombre.
Les éléments suivants résument le traitement des boucles inactives :
Si la boucle de message dans la bibliothèque de classes Microsoft Foundation vérifie la file d’attente des messages et ne trouve aucun message en attente, elle appelle
OnIdle
l’objet d’application et fournit 0 comme argument lCount .OnIdle
effectue un traitement et retourne une valeur différente de zéro pour indiquer qu’elle doit être appelée à nouveau pour effectuer un traitement supplémentaire.La boucle de message vérifie à nouveau la file d’attente des messages. Si aucun message n’est en attente, il appelle
OnIdle
à nouveau, incrémentant l’argument lCount .Finalement,
OnIdle
termine le traitement de toutes ses tâches inactives et retourne 0. Cela indique à la boucle de message d’arrêter l’appelOnIdle
jusqu’à ce que le message suivant soit reçu à partir de la file d’attente de messages, auquel point le cycle inactif redémarre avec l’argument défini sur 0.
N’effectuez pas de tâches longues pendant la période pendant OnIdle
laquelle votre application ne peut pas traiter l’entrée utilisateur tant qu’elle OnIdle
n’est pas retournée.
Remarque
Implémentation par défaut des objets d’interface utilisateur de OnIdle
commande de commande, tels que les éléments de menu et les boutons de barre d’outils, et effectue le nettoyage de la structure de données interne. Par conséquent, si vous remplacez OnIdle
, vous devez appeler CWinApp::OnIdle
avec la lCount
version remplacée. Tout d’abord, appelez tout le traitement inactif de la classe de base (autrement dit, jusqu’à ce que la classe OnIdle
de base retourne 0). Si vous devez effectuer un travail avant la fin du traitement de classe de base, passez en revue l’implémentation de la classe de base pour sélectionner le lCount approprié pendant lequel effectuer votre travail.
Si vous ne souhaitez OnIdle
pas être appelé chaque fois qu’un message est récupéré à partir de la file d’attente de messages, vous pouvez remplacer CWinThreadIsIdleMessage. Si une application a défini un minuteur très court ou si le système envoie le message WM_SYSTIMER, il OnIdle
est appelé à plusieurs reprises et dégrade les performances.
Exemple
Les deux exemples suivants montrent comment utiliser OnIdle
. Le premier exemple traite deux tâches inactives à l’aide de l’argument lCount pour hiérarchiser les tâches. La première tâche est prioritaire et vous devez le faire chaque fois que cela est possible. La deuxième tâche est moins importante et doit être effectuée uniquement lorsqu’il y a une longue pause dans l’entrée utilisateur. Notez l’appel à la version de classe de base de OnIdle
. Le deuxième exemple gère un groupe de tâches inactives avec différentes priorités.
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
L’infrastructure appelle cette méthode pour ouvrir le fichier CDocument nommé pour l’application.
virtual CDocument* OpenDocumentFile(
LPCTSTR lpszFileName
BOOL bAddToMRU = TRUE);
Paramètres
lpszFileName
[in] Nom du fichier à ouvrir.
bAddToMRU
[in] TRUE indique que le document est l’un des fichiers les plus récents ; FALSE indique que le document n’est pas l’un des fichiers les plus récents.
Valeur de retour
Pointeur vers un CDocument
pointeur en cas de réussite ; sinon NULL.
Notes
Si un document portant ce nom est déjà ouvert, la première fenêtre frame qui contient ce document aura le focus. Si une application prend en charge plusieurs modèles de documents, l’infrastructure utilise l’extension de nom de fichier pour rechercher le modèle de document approprié pour essayer de charger le document. En cas de réussite, le modèle de document crée une fenêtre de cadre et une vue pour le document.
Exemple
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
Appelez cette fonction membre pour analyser la ligne de commande et envoyer les paramètres, un par un à la fois, à CCommandLineInfo ::P arseParam.
void ParseCommandLine(CCommandLineInfo& rCmdInfo);
Paramètres
rCmdInfo
Référence à un objet CCommandLineInfo .
Notes
Lorsque vous démarrez un nouveau projet MFC à l’aide de l’Assistant Application, l’Assistant Application crée une instance locale, CCommandLineInfo
puis appelle ProcessShellCommand
et ParseCommandLine
in the InitInstance member function. Une ligne de commande suit l’itinéraire décrit ci-dessous :
Après avoir été créé dans
InitInstance
, l’objetCCommandLineInfo
est passé àParseCommandLine
.ParseCommandLine
appelleCCommandLineInfo::ParseParam
ensuite à plusieurs reprises, une fois pour chaque paramètre.ParseParam
remplit l’objetCCommandLineInfo
, qui est ensuite passé à ProcessShellCommand.ProcessShellCommand
gère les arguments et indicateurs de ligne de commande.
Notez que vous pouvez appeler ParseCommandLine
directement si nécessaire.
Pour obtenir une description des indicateurs de ligne de commande, consultez CCommandLineInfo ::m_nShellCommand.
CWinApp ::P reTranslateMessage
Remplacez cette fonction pour filtrer les messages de fenêtre avant qu’ils ne soient distribués aux fonctions Windows TranslateMessage et DispatchMessage L’implémentation par défaut effectue une traduction de touches d’accélérateur. Vous devez donc appeler la CWinApp::PreTranslateMessage
fonction membre dans votre version substituée.
virtual BOOL PreTranslateMessage(MSG* pMsg);
Paramètres
pMsg
Pointeur vers une structure MSG qui contient le message à traiter.
Valeur de retour
Différent de zéro si le message a été entièrement traité PreTranslateMessage
et ne doit pas être traité plus loin. Zéro si le message doit être traité de la manière normale.
CWinApp ::P rocessMessageFilter
La fonction de hook de l’infrastructure appelle cette fonction membre pour filtrer et répondre à certains messages Windows.
virtual BOOL ProcessMessageFilter(
int code,
LPMSG lpMsg);
Paramètres
code
Spécifie un code de hook. Cette fonction membre utilise le code pour déterminer comment traiter lpMsg.
lpMsg
Pointeur vers une tructure MSGWindows.
Valeur de retour
Différent de zéro si le message est traité ; sinon 0.
Notes
Une fonction de hook traite les événements avant qu’ils ne soient envoyés au traitement normal des messages de l’application.
Si vous remplacez cette fonctionnalité avancée, veillez à appeler la version de classe de base pour maintenir le traitement de hook de l’infrastructure.
CWinApp ::P rocessShellCommand
Cette fonction membre est appelée par InitInstance pour accepter les paramètres transmis à partir de l’objet CCommandLineInfo
identifié par rCmdInfo et effectuer l’action indiquée.
BOOL ProcessShellCommand(CCommandLineInfo& rCmdInfo);
Paramètres
rCmdInfo
Référence à un objet CCommandLineInfo .
Valeur de retour
Différent de zéro si la commande shell est traitée avec succès. Si 0, retournez FALSE à partir d’InitInstance.
Notes
Lorsque vous démarrez un nouveau projet MFC à l’aide de l’Assistant Application, l’Assistant Application crée une instance locale, CCommandLineInfo
puis appelle ProcessShellCommand
et parseCommandLine dans la InitInstance
fonction membre. Une ligne de commande suit l’itinéraire décrit ci-dessous :
Après avoir été créé dans
InitInstance
, l’objetCCommandLineInfo
est passé àParseCommandLine
.ParseCommandLine
appelle ensuite CCommandLineInfo ::P arseParam à plusieurs reprises, une fois pour chaque paramètre.ParseParam
remplit l’objetCCommandLineInfo
, qui est ensuite passé àProcessShellCommand
.ProcessShellCommand
gère les arguments et indicateurs de ligne de commande.
Les membres de données de l’objet CCommandLineInfo
, identifiés par CCommandLineInfo ::m_nShellCommand, sont du type énuméré suivant, qui est défini dans la CCommandLineInfo
classe.
enum {
FileNew,
FileOpen,
FilePrint,
FilePrintTo,
FileDDE
};
Pour obtenir une brève description de chacune de ces valeurs, consultez CCommandLineInfo::m_nShellCommand
.
CWinApp ::P rocessWndProcException
L’infrastructure appelle cette fonction membre chaque fois que le gestionnaire n’intercepte pas une exception levée dans l’un des gestionnaires de messages ou de commandes de votre application.
virtual LRESULT ProcessWndProcException(
CException* e,
const MSG* pMsg);
Paramètres
e
Pointeur vers une exception non interceptée.
pMsg
Une trêve MSGqui contient des informations sur le message Windows qui a provoqué la levée d’une exception par l’infrastructure.
Valeur de retour
Valeur qui doit être retournée à Windows. Normalement, il s’agit de 0L pour les messages Windows, 1L (TRUE) pour les messages de commande.
Notes
N’appelez pas directement cette fonction membre.
L’implémentation par défaut de cette fonction membre crée une boîte de message. Si l’exception non interceptée provient d’un menu, d’une barre d’outils ou d’un échec de commande accélérateur, la boîte de message affiche un message « Échec de la commande » ; sinon, il affiche un message « Erreur d’application interne ».
Remplacez cette fonction membre pour fournir une gestion globale de vos exceptions. Appelez uniquement la fonctionnalité de base si vous souhaitez que la boîte de message s’affiche.
CWinApp ::Register
Effectue toutes les tâches d’inscription non gérées par RegisterShellFileTypes
.
virtual BOOL Register();
Valeur de retour
Différent de zéro en cas de réussite ; sinon, 0.
Notes
L’implémentation par défaut retourne simplement TRUE. Remplacez cette fonction pour fournir toutes les étapes d’inscription personnalisées.
CWinApp ::RegisterShellFileTypes
Appelez cette fonction membre pour inscrire tous les types de documents de votre application auprès du Gestionnaire de fichiers Windows.
void RegisterShellFileTypes(BOOL bCompat = FALSE);
Paramètres
bCompat
[in] TRUE ajoute des entrées d’inscription pour les commandes d’interpréteur de commandes Imprimer et Imprimer vers, ce qui permet à un utilisateur d’imprimer des fichiers directement à partir de l’interpréteur de commandes ou en faisant glisser le fichier vers un objet d’imprimante. Il ajoute également une clé DefaultIcon. Par défaut, ce paramètre a la valeur FALSE pour la compatibilité descendante.
Notes
Cela permet à l’utilisateur d’ouvrir un fichier de données créé par votre application en double-cliquant dessus à partir du Gestionnaire de fichiers. Appelez après avoir appelé RegisterShellFileTypes
AddDocTemplate pour chacun des modèles de document de votre application. Appelez également la fonction membre EnableShellOpen lorsque vous appelez RegisterShellFileTypes
.
RegisterShellFileTypes
itère dans la liste des objets CDocTemplate que l’application gère et, pour chaque modèle de document, ajoute des entrées à la base de données d’inscription que Windows gère pour les associations de fichiers. Le Gestionnaire de fichiers utilise ces entrées pour ouvrir un fichier de données lorsque l’utilisateur double-clique dessus. Cela élimine la nécessité d’expédier un . Fichier REG avec votre application.
Remarque
RegisterShellFileTypes
fonctionne uniquement si l’utilisateur exécute le programme avec des droits d’administrateur. Si le programme n’a pas de droits d’administrateur, il ne peut pas modifier les clés de Registre.
Si la base de données d’inscription associe déjà une extension de nom de fichier donnée à un autre type de fichier, aucune nouvelle association n’est créée. Consultez la classe pour connaître le CDocTemplate
format des chaînes nécessaires pour inscrire ces informations.
CWinApp ::RegisterWithRestartManager
Inscrit l’application auprès du gestionnaire de redémarrage.
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);
Paramètres
bRegisterRecoveryCallback
[in] TRUE indique que cette instance de l’application utilise une fonction de rappel de récupération ; FALSE indique qu’il ne le fait pas. L’infrastructure appelle la fonction de rappel de récupération lorsque l’application quitte de façon inattendue. Pour plus d’informations, consultez CWinApp ::ApplicationRecoveryCallback.
strRestartIdentifier
[in] Chaîne unique qui identifie cette instance du gestionnaire de redémarrage. L’identificateur du gestionnaire de redémarrage est unique pour chaque instance d’une application.
pwzCommandLineArgs
[in] Chaîne qui contient tous les arguments supplémentaires de la ligne de commande.
dwRestartFlags
[in] Indicateurs facultatifs pour le gestionnaire de redémarrage. Pour plus d'informations, consultez la section Notes.
pRecoveryCallback
[in] Fonction de rappel de récupération. Cette fonction doit prendre un paramètre LPVOID comme entrée et retourner un DWORD. La fonction de rappel de récupération par défaut est CWinApp::ApplicationRecoveryCallback
.
lpvParam
[in] Paramètre d’entrée pour la fonction de rappel de récupération. Pour plus d’informations, consultez CWinApp ::ApplicationRecoveryCallback.
dwPingInterval
[in] Durée pendant laquelle le gestionnaire de redémarrage attend le retour de la fonction de rappel de récupération. Ce paramètre est en millisecondes.
dwCallbackFlags
[in] Indicateurs passés à la fonction de rappel de récupération. Réservé pour un usage futur.
Valeur de retour
S_OK si la méthode réussit ; sinon, un code d’erreur.
Notes
Si votre application utilise l’implémentation MFC par défaut pour l’enregistrement automatique des fichiers, vous devez utiliser la version simple de RegisterWithRestartManager
. Utilisez la version complexe de RegisterWithRestartManager
si vous souhaitez personnaliser le comportement d’enregistrement automatique de votre application.
Si vous appelez cette méthode avec une chaîne vide pour strRestartIdentifier, RegisterWithRestartManager
crée une chaîne d’identificateur unique pour cette instance du gestionnaire de redémarrage.
Lorsqu’une application se ferme de façon inattendue, le gestionnaire de redémarrage redémarre l’application à partir de la ligne de commande et fournit l’identificateur de redémarrage unique en tant qu’argument facultatif. Dans ce scénario, l’infrastructure appelle RegisterWithRestartManager
deux fois. Le premier appel provient de CWinApp ::InitInstance avec une chaîne vide pour l’identificateur de chaîne. Ensuite, la méthode CWinApp ::P rocessShellCommand appelle RegisterWithRestartManager
avec l’identificateur de redémarrage unique.
Après avoir inscrit une application auprès du gestionnaire de redémarrage, le gestionnaire de redémarrage surveille l’application. Si l’application se ferme de façon inattendue, le gestionnaire de redémarrage appelle la fonction de rappel de récupération pendant le processus d’arrêt. Le gestionnaire de redémarrage attend la réponse dwPingInterval de la fonction de rappel de récupération. Si la fonction de rappel de récupération ne répond pas dans ce temps, l’application quitte sans exécuter la fonction de rappel de récupération.
Par défaut, les dwRestartFlags ne sont pas pris en charge, mais sont fournis pour une utilisation ultérieure. Les valeurs possibles pour dwRestartFlags sont les suivantes :
RESTART_NO_CRASH
RESTART_NO_HANG
RESTART_NO_PATCH
RESTART_NO_REBOOT
CWinApp ::ReopenPreviousFilesAtRestart
Détermine si le gestionnaire de redémarrage rouvre les fichiers ouverts lorsque l’application s’est terminée de manière inattendue.
virtual BOOL ReopenPreviousFilesAtRestart() const;
Valeur de retour
TRUE indique que le gestionnaire de redémarrage rouvre les fichiers ouverts précédemment ; FALSE indique que le gestionnaire de redémarrage ne le fait pas.
CWinApp ::RestartInstance
Gère un redémarrage d’application initié par le gestionnaire de redémarrage.
virtual BOOL CWinApp::RestartInstance();
Valeur de retour
TRUE si le gestionnaire de récupération de données s’ouvre précédemment pour ouvrir des documents ; FALSE si le gestionnaire de récupération de données a une erreur ou s’il n’y a pas de documents ouverts précédemment.
Notes
Lorsque le gestionnaire de redémarrage redémarre une application, l’infrastructure appelle cette méthode. Cette méthode récupère le gestionnaire de récupération de données et restaure les fichiers enregistrés automatiquement. Cette méthode appelle CDataRecoveryHandler ::RestoreAutosavedDocuments pour déterminer si l’utilisateur souhaite restaurer les fichiers enregistrés automatiquement.
Cette méthode retourne FALSE si CDataRecoveryHandler détermine qu’il n’y a pas eu de documents ouverts. S’il n’y avait aucun document ouvert, l’application démarre normalement.
CWinApp ::RestoreAutosavedFilesAtRestart
Détermine si le gestionnaire de redémarrage restaure les fichiers enregistrés automatiquement lors du redémarrage de l’application.
virtual BOOL RestoreAutosavedFilesAtRestart() const;
Valeur de retour
TRUE indique que le gestionnaire de redémarrage restaure les fichiers enregistrés automatiquement ; FALSE indique que le gestionnaire de redémarrage ne le fait pas.
CWinApp ::Run
Fournit une boucle de message par défaut.
virtual int Run();
Valeur de retour
Valeur int
retournée par WinMain
.
Notes
Run
acquiert et distribue les messages Windows jusqu’à ce que l’application reçoive un message WM_QUIT. Si la file d’attente de messages de l’application ne contient actuellement aucun message, Run
appelle OnIdle pour effectuer un traitement en temps d’inactivité. Les messages entrants vont à la fonction membre PreTranslateMessage pour un traitement spécial, puis à la fonction TranslateMessage
Windows pour la traduction de clavier standard ; enfin, la DispatchMessage
fonction Windows est appelée.
Run
est rarement substitué, mais vous pouvez le remplacer pour fournir un comportement spécial.
CWinApp ::RunAutomated
Appelez cette fonction pour déterminer si l’option « /Automation » ou « -Automation » est présente, ce qui indique si l’application serveur a été lancée par une application cliente.
BOOL RunAutomated();
Valeur de retour
Différent de zéro si l’option a été trouvée ; sinon 0.
Notes
Si elle est présente, l’option est supprimée de la ligne de commande. Pour plus d’informations sur OLE Automation, consultez l’article Serveurs Automation.
CWinApp ::RunEmbedded
Appelez cette fonction pour déterminer si l’option « /Embedding » ou « -Embedding » est présente, ce qui indique si l’application serveur a été lancée par une application cliente.
BOOL RunEmbedded();
Valeur de retour
Différent de zéro si l’option a été trouvée ; sinon 0.
Notes
Si elle est présente, l’option est supprimée de la ligne de commande. Pour plus d’informations sur l’incorporation, consultez l’article Serveurs : Implémentation d’un serveur.
CWinApp ::SaveAllModified
Appelé par l’infrastructure pour enregistrer tous les documents lorsque la fenêtre de trame principale de l’application doit être fermée ou via un message WM_QUERYENDSESSION.
virtual BOOL SaveAllModified();
Valeur de retour
Différent de zéro s’il est sûr de mettre fin à l’application ; 0 s’il n’est pas sûr de mettre fin à l’application.
Notes
L’implémentation par défaut de cette fonction membre appelle la fonction membre CDocument ::SaveModified à son tour pour tous les documents modifiés au sein de l’application.
CWinApp ::SelectPrinter
Appelez cette fonction membre pour sélectionner une imprimante spécifique et relâchez l’imprimante précédemment sélectionnée dans la boîte de dialogue Imprimer.
void SelectPrinter(
HANDLE hDevNames,
HANDLE hDevMode,
BOOL bFreeOld = TRUE);
Paramètres
hDevNames
Handle vers une tructure DEVNAMESqui identifie les noms de port de pilote, d’appareil et de sortie d’une imprimante spécifique.
hDevMode
Handle vers une structure DEVMODE qui spécifie des informations sur l’initialisation et l’environnement de l’appareil d’une imprimante.
bFreeOld
Libère l’imprimante sélectionnée précédemment.
Notes
Si hDevMode et hDevNames sont NULL, SelectPrinter
utilise l’imprimante par défaut actuelle.
CWinApp ::SetHelpMode
Définit le type d’aide de l’application.
void SetHelpMode(AFX_HELP_TYPE eHelpType);
Paramètres
eHelpType
Spécifie le type d’aide à utiliser. Pour plus d’informations, consultez CWinApp ::m_eHelpType .
Notes
Définit le type d’aide de l’application.
Pour définir le type d’aide de votre application sur HTMLHelp, vous pouvez appeler EnableHTMLHelp. Une fois que vous appelez EnableHTMLHelp
, votre application doit utiliser HTMLHelp comme application d’aide. Si vous souhaitez modifier l’utilisation de WinHelp, vous pouvez appeler SetHelpMode
et définir eHelpType sur afxWinHelp
.
CWinApp ::SetRegistryKey
Provoque le stockage des paramètres d’application dans le Registre au lieu des fichiers INI.
void SetRegistryKey(LPCTSTR lpszRegistryKey);
void SetRegistryKey(UINT nIDRegistryKey);
Paramètres
lpszRegistryKey
Pointeur vers une chaîne contenant le nom de la clé.
nIDRegistryKey
ID d’une ressource de chaîne contenant le nom de la clé de Registre.
Notes
Cette fonction définit m_pszRegistryKey, qui est ensuite utilisée par les fonctions membres , et GetProfileString
WriteProfileInt
WriteProfileString
les GetProfileInt
fonctions membres de .CWinApp
Si cette fonction a été appelée, la liste des fichiers les plus récemment utilisés (MRU) est également stockée dans le Registre. La clé de Registre est généralement le nom d’une entreprise. Il est stocké sous la forme suivante : HKEY_CURRENT_USER\Software\<company name>\<application name\<section name>>\<value name>.
CWinApp ::SupportsApplicationRecovery
Détermine si le gestionnaire de redémarrage récupère une application qui s’est terminée de façon inattendue.
virtual BOOL SupportsApplicationRecovery() const;
Valeur de retour
TRUE indique que le gestionnaire de redémarrage récupère l’application ; FALSE indique que le gestionnaire de redémarrage ne le fait pas.
CWinApp ::SupportsAutosaveAtInterval
Détermine si le gestionnaire de redémarrage enregistre automatiquement les documents à intervalles réguliers.
virtual BOOL SupportsAutosaveAtInterval() const;
Valeur de retour
TRUE indique que le gestionnaire de redémarrage enregistre automatiquement les documents ouverts ; FALSE indique que le gestionnaire de redémarrage ne le fait pas.
CWinApp ::SupportsAutosaveAtRestart
Détermine si le gestionnaire de redémarrage enregistre automatiquement les documents ouverts lorsque l’application redémarre.
virtual BOOL SupportsAutosaveAtRestart() const;
Valeur de retour
TRUE indique que le gestionnaire de redémarrage enregistre automatiquement les documents ouverts lors du redémarrage de l’application ; FALSE indique que le gestionnaire de redémarrage ne le fait pas.
CWinApp ::SupportsRestartManager
Détermine si l’application prend en charge le gestionnaire de redémarrage.
virtual BOOL SupportsRestartManager() const;
Valeur de retour
TRUE indique que l’application prend en charge le gestionnaire de redémarrage ; FALSE indique que l’application ne le fait pas.
CWinApp ::Unregister
Annule l’inscription de tous les fichiers inscrits par l’objet d’application.
virtual BOOL Unregister();
Valeur de retour
Différent de zéro en cas de réussite ; sinon, 0.
Notes
La Unregister
fonction annule l’inscription effectuée par l’objet d’application et la fonction Register . Normalement, les deux fonctions sont appelées implicitement par MFC et ne s’affichent donc pas dans votre code.
Remplacez cette fonction pour effectuer des étapes de désinscription personnalisées.
CWinApp ::UnregisterShellFileTypes
Appelez cette fonction membre pour désinscrire tous les types de documents de votre application avec le Gestionnaire de fichiers Windows.
void UnregisterShellFileTypes();
CWinApp ::WinHelp
Appelez cette fonction membre pour appeler l’application WinHelp.
virtual void WinHelp(
DWORD_PTR dwData,
UINT nCmd = HELP_CONTEXT);
Paramètres
dwData
Spécifie des données supplémentaires. La valeur utilisée dépend de la valeur du paramètre nCmd .
nCmd
Spécifie le type d’aide demandée. Pour obtenir la liste des valeurs possibles et leur impact sur le paramètre dwData , consultez la fonction Windows WinHelp .
Notes
L’infrastructure appelle également cette fonction pour appeler l’application WinHelp.
L’infrastructure ferme automatiquement l’application WinHelp lorsque votre application se termine.
Exemple
// 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
Appelez cette fonction membre pour écrire des données binaires dans la section spécifiée du registre de l’application ou . Fichier INI.
BOOL WriteProfileBinary(
LPCTSTR lpszSection,
LPCTSTR lpszEntry,
LPBYTE pData,
UINT nBytes);
Paramètres
lpszSection
Pointe vers une chaîne terminée par null qui spécifie la section contenant l’entrée. Si la section n’existe pas, elle est créée. Le nom de la section est indépendant de la casse ; la chaîne peut être n’importe quelle combinaison de lettres majuscules et minuscules.
lpszEntry
Pointe vers une chaîne terminée par null qui contient l’entrée dans laquelle la valeur doit être écrite. Si l’entrée n’existe pas dans la section spécifiée, elle est créée.
pData
Pointe vers les données à écrire.
octets
Contient le nombre d’octets à écrire.
Valeur de retour
Valeur différente de zéro cas de réussite ; sinon, 0.
Exemple
Cet exemple utilise CWinApp* pApp = AfxGetApp();
pour accéder à la classe CWinApp illustrant une façon qui WriteProfileBinary
et GetProfileBinary
peut être utilisée à partir de n’importe quelle fonction dans une application MFC.
CWinApp *pApp = AfxGetApp();
CString strSection = _T("My Section");
CString strItem = _T("My Binary Item");
double myData = 123.456e12;
pApp->WriteProfileBinary(strSection, strItem, (LPBYTE)&myData, sizeof(myData));
double *pData;
UINT n;
pApp->GetProfileBinary(strSection, strItem, (LPBYTE*)&pData, &n);
ASSERT(n == sizeof(myData));
ASSERT(myData = *pData);
delete[] pData; // free the buffer
Pour obtenir un autre exemple, consultez l’exemple de CWinApp ::GetProfileBinary.
CWinApp ::WriteProfileInt
Appelez cette fonction membre pour écrire la valeur spécifiée dans la section spécifiée du registre de l’application ou . Fichier INI.
BOOL WriteProfileInt(
LPCTSTR lpszSection,
LPCTSTR lpszEntry,
int nValue);
Paramètres
lpszSection
Pointe vers une chaîne terminée par null qui spécifie la section contenant l’entrée. Si la section n’existe pas, elle est créée. Le nom de la section est indépendant de la casse ; la chaîne peut être n’importe quelle combinaison de lettres majuscules et minuscules.
lpszEntry
Pointe vers une chaîne terminée par null qui contient l’entrée dans laquelle la valeur doit être écrite. Si l’entrée n’existe pas dans la section spécifiée, elle est créée.
nValue
Contient la valeur à écrire.
Valeur de retour
Valeur différente de zéro cas de réussite ; sinon, 0.
Exemple
Cet exemple utilise CWinApp* pApp = AfxGetApp();
pour accéder à la classe CWinApp illustrant une façon dont WriteProfileString
, WriteProfileInt
, GetProfileString
et GetProfileInt
peut être utilisé à partir de n’importe quelle fonction dans une application MFC.
CWinApp *pApp = AfxGetApp();
CString strSection = _T("My Section");
CString strStringItem = _T("My String Item");
CString strIntItem = _T("My Int Item");
pApp->WriteProfileString(strSection, strStringItem, _T("test"));
CString strValue;
strValue = pApp->GetProfileString(strSection, strStringItem);
ASSERT(strValue == _T("test"));
pApp->WriteProfileInt(strSection, strIntItem, 1234);
int nValue;
nValue = pApp->GetProfileInt(strSection, strIntItem, 0);
ASSERT(nValue == 1234);
Pour obtenir un autre exemple, consultez l’exemple de CWinApp ::GetProfileInt.
CWinApp ::WriteProfileString
Appelez cette fonction membre pour écrire la chaîne spécifiée dans la section spécifiée du Registre de l’application ou . Fichier INI.
BOOL WriteProfileString(
LPCTSTR lpszSection,
LPCTSTR lpszEntry,
LPCTSTR lpszValue);
Paramètres
lpszSection
Pointe vers une chaîne terminée par null qui spécifie la section contenant l’entrée. Si la section n’existe pas, elle est créée. Le nom de la section est indépendant de la casse ; la chaîne peut être n’importe quelle combinaison de lettres majuscules et minuscules.
lpszEntry
Pointe vers une chaîne terminée par null qui contient l’entrée dans laquelle la valeur doit être écrite. Si l’entrée n’existe pas dans la section spécifiée, elle est créée. Si ce paramètre est NULL, la section spécifiée par lpszSection est supprimée.
lpszValue
Pointe vers la chaîne à écrire. Si ce paramètre est NULL, l’entrée spécifiée par le paramètre lpszEntry est supprimée.
Valeur de retour
Valeur différente de zéro cas de réussite ; sinon, 0.
Exemple
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);
Pour obtenir un autre exemple, consultez l’exemple de CWinApp ::GetProfileInt.
CWinApp ::SetAppID
Définit explicitement l’ID de modèle utilisateur de l’application. Cette méthode doit être appelée avant qu’une interface utilisateur soit présentée à l’utilisateur (le meilleur emplacement est le constructeur d’application).
void SetAppID(LPCTSTR lpcszAppID);
Paramètres
lpcszAppID
Spécifie l’ID de modèle utilisateur de l’application.
Notes
Voir aussi
CWinThread, classe
Graphique hiérarchique
Guide pratique pour ajouter la prise en charge du Gestionnaire de redémarrage