3

MFC の FormView とダイアログの違いは何ですか? FormViewをいつ使用し、いつDialogを使用するかを誰でも提案できますか?

4

4 に答える 4

4

上記の投稿には丁重に反対しなければなりません。CFormView とダイアログの間に違いはありません。

CFormView は、モードレスとして作成され、クライアントとしてフレームによってホストされ、フレームのサイズ変更としてサイズ変更されるダイアログです。これは、任意のスタンドアロン ダイアログと同様に、提供する必要があるダイアログ リソースから作成されます。ダイアログ コントロールのすべてのメッセージ ハンドラは同じです。

CFormView Create メンバーは CreateDlg を呼び出し、コンストラクターによって読み込まれたダイアログ テンプレートを渡します。CWnd CreateDialog は、CreateDlgIndirect メンバーを呼び出します。このメンバーは、モードレス ダイアログを作成する CreateDialogIndirect API を呼び出します。

モードレス ダイアログを別のダイアログ内に埋め込むこともできますが、それは依然としてダイアログです。

于 2013-01-04T13:12:14.777 に答える
2

誰か_スマイリー

ダイアログとCFormViewに関する質問に答えるため。

ダイアログベースのアプリケーションを使用することはめったにありません。より複雑なUIのオーバーヘッドのない単純なタスクを必要とする場合のみ。

ほとんどのプログラマーはダイアログベースのアプリから始め、いくつかの機能の実装に取り​​掛かった後、通常、アプリケーションにはメニューとツールバーとステータスバー、データの保存/処理オブジェクト、コマンドルーティング処理などが必要になります。

サイズ変更不可能なフレームでSDIアプリケーションを作成することをお勧めします。

ダイアログの外観とMFCアプリケーションのすべての機能が無料になります。ドキュメントサポートが必要ない場合は、ドキュメントサポートを使用する必要はありません。

于 2013-01-04T13:19:34.900 に答える
2

ダイアログ アプリケーションは、ダイアログを表示するだけです (および、ダイアログに配置したすべてのコントロールと、そこからポップアップするその他のコントロールなど)。

FormView は、メイン メニューなどを備えたごく普通のアプリケーションを提供しますが、ビュー パーツはコントロールを保持することもできます。

ダイアログだけが必要な場合はダイアログを使用し、コントロールを保持できるビュー (おそらく複数の) が必要な場合はフォームビューを使用します。大きな違いは、ダイアログを作成するとアプリケーション全体の基本的な性質が変わることです。フォームビューは 1 つのビューを変更するだけです。必要に応じて、(たとえば) 他の (非フォーム) ビューを使用することもできます。

于 2013-01-04T04:31:44.147 に答える
1

コーダーの観点から、FormViewは、WYSIWYGの方法で、ダイアログリソースを使用したUIコントロールのレイアウトをサポートします。したがって、多くのコントロールを使用してビューを作成する場合は、FormViewが役立つ可能性があります。

ダイアログはビューではありません。全く違います。ダイアログは個別のウィンドウであり、通常はモーダルイベントループで(または特別な場合はモードレスで)表示されます。

于 2013-01-04T04:45:40.930 に答える