Question

Nous porter une application MFC à WPF, et probablement ne le temps au port toute l'application. L'application MFC a de nombreuses fenêtres basées sur CDialog, et nous pensons à laisser certaines de ces fenêtres dans MFC, et les afficher dans une fenêtre WPF, afin que nous puissions contrôler leur modalité de WPF.

Y at-il un moyen facile d'accomplir cela? Sinon, pouvez-vous recommander une autre façon de gérer cela?

Merci,
splintor

Était-ce utile?

La solution

je regardais dans ce un certain temps pour une application héritée similaire, j'ai commencé avec interopérabilité WPF et Win32 Vue d'ensemble avec hôte MFC classe héritée de CWnd à WPF . Reportez-vous à (et rechercher) HwndHost classe , ainsi que Hébergement d'un contrôle simple Win32 dans une application WPF.

Le problème est qu'il n'a jamais travaillé bien -. Je l'ai senti compromis l'application WPF et je ne pouvais pas le faire fonctionner de manière fiable loin d'être suffisant pour que j'ai renoncé à cette approche

Donc, en prenant une approche différente, je rebâti l'application MFC comme « fournisseur de dialogue » un autonome qui vient d'avoir toutes les boîtes de dialogue. Ce tout a fait tout le travail de dialogue et notifié l'application WPF des résultats. Cela a fonctionné et a permis l'application de se déplacer vers l'avant. J'ai essayé aussi Tirer parti du .NET Framework Dans une application MFC mais il ne fonctionnait pas au début et le temps était de l'essence.

Le résultat final est un convertisseur Q & D écrit en AWK qui a pris la .rc la Cpp et la .h et a produit le XAML et C # pour chaque boîte de dialogue sous une forme prête pour Editting. Si vous avez construit vos boîtes de dialogue MFC en utilisant la classe assistant alors il devrait être utile délimiteurs qui sont très utiles dans ce processus.

Exemple delimiter utile:

//{{AFX_DATA_INIT(CDialogFileProperties)

Autres conseils

Si vous utilisez des boîtes de dialogue standards communs, puis il suffit d'utiliser les équivalents WPF, sinon vous pourriez avoir à les faire à partir de zéro en WPF. Ou utiliser un contrôle hôte Windows Forms qui affiche la boîte de dialogue dans la fenêtre WPF.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top