Numéro d'article: 139828 - Dernière mise à jour: mardi 21 novembre 2006 - Version: 2.1 PRB : MFC ne rouvrez pas ouvrir le document
SommaireSymptômesDans une application MFC AppWizard par défaut, l'infrastructure se rouvrira pas un fichier de document à partir du disque qui est actuellement ouvert dans l'application. RésolutionCe comportement est voulu par la conception même du produit. Dans une application MFC classique, la commande Ouvrir le fichier est mappée à la fonction CWinApp::OnFileOpen(). Dans les versions antérieures de MFC, cette fonction appelle à son tour la fonction CWinApp::OpenDocumentFile(). Depuis MFC 4.0, il est maintenant une classe CDocManager intermédiaire, mais l'appel à OnFileOpen() entraîne finit toujours par un appel à CWinApp::OpenDocumentFile(). CWinApp::OpenDocumentFile() traite d'abord la chaîne contenant le nom de fichier demandé. Puis elle parcourt la liste des modèles de document qui ont été ajoutés pour l'application par des appels à AddDocTemplate afin de trouver la meilleure correspondance entre le nom du fichier et un modèle de document pour l'ouvrir avec. À ce stade, si OpenDocumentFile() détecte que ce fichier est déjà actuellement ouvert pour un des modèles, OpenDocumentFile() Active l'affichage de ce fichier, puis renvoie. Il ne pas rouvrir le fichier. Si ce fichier de document n'est pas actuellement ouvert et OpenDocumentFile() a trouvé un modèle valide pour ouvrir le fichier, elle appelle OpenDocumentFile() fonction de ce modèle. Cette fonction est responsable de l'ouverture du fichier et en chargeant ses données dans un document approprié. Dans certaines situations, vous souhaiterez peut-être rouvrir un document ouvert. Par exemple, le bloc-notes effectue cette opération. Sur un fichier ouvert demande, le bloc-notes affiche d'abord une boîte de dialogue d'invite pour permettre de l'utilisateur d'enregistrer un fichier modifié. Si l'utilisateur ne cliquez pas sur Annuler dans cette boîte de dialogue, le bloc-notes affiche ensuite la boîte de dialogue Ouvrir. Si l'utilisateur choisit de rouvrir le fichier en cours, le bloc-notes relit à partir du disque et ignore toutes les modifications non enregistrées. Pour dupliquer ce comportement dans un programme MFC, le programmeur doit substituer la fonction membre OpenDocumentFile() de CWinApp. Ou, si le modèle approprié pour le fichier est facile de déterminer (par exemple, lorsque l'application a uniquement un type de modèle de document), il serait possible d'appeler OpenDocumentFile() du modèle directement à partir d'une substitution de CWinApp::OnFileOpen(). Cela est illustré dans la section «Exemple de code» de cet article. Notez que MFC affichera la boîte de dialogue invite Enregistrer modifié après la boîte de dialogue Ouvrir un fichier ; c'est le compteur pour le comportement du bloc-notes. StatutCe comportement est voulu par la conception même du produit. Plus d'informationsExemple de codeLes informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
Traduction automatiqueIMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique. La version anglaise de cet article est la suivante: 139828
(http://support.microsoft.com/kb/139828/en-us/
)
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT. | Autres ressources Autres sites d'aide
CommunautésTraductions disponibles |






Windows Live
Facebook
Twitter
Linkedin
Digg it
Yahoo
Delicious
StumbleUpon
Yammer
Reddit
Technorati
FriendFeed
Email



Retour au début