J'ai sauté dans une ancienne application MFC qui a un problème lorsqu'il est exécuté sous Windows 10 1703/Creators mise à jour. Cela fonctionne bien pour XP à Windows 10/1607. Après quelques recherches, il semble que dans Windows 10/1703 l'application ne peut pas coller les métafichiers (wmf et emf) du presse-papiers dans un CRichTextView et l'enregistrer. Les données graphiques ne sont pas incorporées dans le fichier rtf. Voici un exemple dépouillé:Mise à jour de Windows 10 Creators mange des graphiques métafichiers dans MFC RichTextEdit
static void testFn(CRichEditView* View)
{
// Minimal Example
// Init MetaFileDC
CMetaFileDC MetaFileDC;
CClientDC DC(NULL);
MetaFileDC.CreateEnhanced(NULL, NULL, NULL, NULL);
CRect Recht(0, 0, 400, 300);
MetaFileDC.SetAttribDC(DC.m_hDC);
MetaFileDC.SetWindowOrg(0, 0);
MetaFileDC.SetWindowExt(Recht.Size());
// draw : "ABC" and a line
MetaFileDC.TextOutA(0, 0, "ABC");
MetaFileDC.MoveTo(0, 0);
MetaFileDC.LineTo(Recht.right, Recht.bottom);
// to clipboard
View->OpenClipboard();
EmptyClipboard();
SetClipboardData(CF_ENHMETAFILE, MetaFileDC.CloseEnhanced());
CloseClipboard();
// paste from clipboard
View->GetRichEditCtrl().Paste();
// save rtf file
View->GetDocument()->OnSaveDocument("abc.rtf");
}
Cet exemple pâtes un métafichier mit « ABC » et une ligne dans la CRichTextView et enregistre le document comme « abc.rtf »
- de Windows XP Windows 10/1607 cela fonctionne très bien
- avec les derniers créateurs de mettre à jour le fichier est plus petit et les données ne sont pas enregistrées
Il est probablement lié à RichEditBox: picture and content after the picture disappear (Windows 10 1703 Creators Update)
Des idées? Est-il possible d'obtenir les graphiques de métafichier dans le document sans le presse-papiers? Les bitmaps fonctionnent toujours.
Ce n'est pas un problème de compilateur. Exécutez le même fichier exe sur Windows 7 et 10/1703 et vous obtenez des résultats différents. – Andreas
Quelle version de VS utilisez-vous? Quelle version du contrôle richedit est utilisée par 'CRichEditView'? – zett42
Pour _un moyen d'obtenir les graphiques de métafichier dans le document sans le clipboard_ lire [cette réponse] (https://stackoverflow.com/a/1490785/7571258). C'est C# mais il montre les tags RTF nécessaires. – zett42