3

したがってMFC、主に から派生したベースのアプリケーションがありCDialog、いくつかのコントロールなどがあります。

特定の理由から、.NET ベースのコンテナ クラスを使用して、別のアプリケーションでホストする必要がありますCView

CDialogしたがって、を使用して作成されたこのものをホストする何らかの方法が必要ですCView

コンテナクラスは私には閉じられています。がCView必要ですが、ダイアログ ベースのアプリケーションを変更できます。

CDialogベースからベースに移行する簡単な方法はありますCViewか? また、何を確認する必要がありますか? 私は MFC にあまり熟練していません。質問は曖昧に聞こえるかもしれませんが、それは私が持っているものです。

助けていただければ幸いです...ありがとう。

4

1 に答える 1

3

CFormView を使用できます。これは、ダイアログ リソース テンプレートをサポートするビューです。

問題のあるコードは、CFormView との間でデータを読み込んでコミットしています。ビューは通常、CDocument によって制御されます。CDocument は、いくつかのヒントを使用して UpdateAllViews を呼び出します。

OnOK、OnCancel、および OnInitDalog のダイアログ関数は、Doc/View アーキテクチャに適合するように変更する必要があります。

  • OnInitDialog コードを OnInitialUpdate に移動しますが、SDI アプリケーションでは OnInitialUpdate が複数回呼び出される可能性があることに注意してください。
  • OnOK と OnCancel は、ドキュメントからのいくつかの呼び出しと関数によって解決する必要があります。
于 2013-11-18T12:11:32.070 に答える