質問

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フォームのホストコントロールを使用します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top