MFC cdialogをWPF形式にします
質問
MFCアプリケーションをWPFに移植していますが、おそらくアプリケーション全体を移植する時間はありません。 MFCアプリには多くのCDIALOGベースのウィンドウがあり、これらのウィンドウの一部をMFCに残し、WPFウィンドウ内に表示することを考えているため、WPFからモダリティを制御できます。
それを達成する簡単な方法はありますか?そうでない場合は、これを処理する別の方法をお勧めしますか?
ありがとう、
スプリント
解決
私はしばらく前に同様のレガシーアプリケーションを探しました、私は始めました WPFおよびWIN32の相互操作の概要 一緒に WPFのCWNDから継承されたホストMFCクラス. 。参照(および検索) hwndhostクラス, 、 一緒に WPFアプリケーションでSimple Win32コントロールをホストします.
問題は、それがうまくいかなかったということでした - 私はそれがWPFアプリケーションを妥協したと感じ、私はそれを確実に近く近くに動作させることができなかったので、私はこのアプローチをあきらめました。
したがって、別のタックを使用して、MFCアプリケーションをすべてのダイアログがあるスタンドアロンの「ダイアログプロバイダー」として再構築しました。これにより、すべてのダイアログ作業が行われ、結果のWPFアプリケーションが通知されました。これにより、アプリケーションが前進することができました。私も試してみました MFCアプリケーション内の.NETフレームワークを活用します しかし、それは最初はうまくいきませんでした、そして、時間は本質でした。
最終的な結果は、.RCを.CPPと.hを使用し、各ダイアログの編集準備ができたフォームでXAML&C#を作成したQ&Dコンバーターでawkで書かれたQ&Dコンバーターでした。クラスウィザードを使用してMFCダイアログを作成した場合、このプロセスで非常に役立つ役立つ区切り文字があるはずです。
役立つデリミターの例:
//{{AFX_DATA_INIT(CDialogFileProperties)
他のヒント
標準の一般的なダイアログを使用している場合は、WPFの等価物を使用するだけで、WPFでゼロからそれらを作成する必要がある場合があります。または、WPFウィンドウ内にダイアログを表示するWindowsフォームのホストコントロールを使用します。