2009-03-19 4 views
4

私はMFCの新機能ではなく、全く新しいものではありませんが、このフォーラムの専門家になぜ1つのプロジェクトを選択するのかと尋ねたかったのです。私はMFCに比較的新しいので、これは愚かな質問ではないことを願っています。ダイアログベースVs SDIプロジェクトの選択

答えて

9

そんなに

おかげで、アプリケーションがに最もよく合うテンプレート何に基づいて選択しました:

シングルドキュメントインターフェイス(SDI) - あなたのアプリケーションは、1文書またはデータオブジェクトまたはデータで作業する必要がある場合一度設定

例:notepad.exeを


マルチドキュメントインターフェイス(MDI) - あなたのapplicaitonが設定された複数の文書やデータオブジェクトまたはデータで作業する必要がある場合、一度に

例:Visual Studioの


ダイアログベース - 他の何かのために。

例:電卓


は、どんなにあなたが選んだものを、あなたはまだ終わりで使用可能な同じ機能を持っていない、あなたはどのような方法でそれをcusotmizeすることができます。だからあなたはあなたが何かを始めることに自分自身を制限していません。

すべてのバリアントには、MFCアプリケーションを派生させる基本クラスであるCWinAppが付属しています。

ダイアログベースのアプリケーションでは、CDialogで始まります。 SDIアプリケーションでは、CMainFrame、CDocument、およびCViewからも始まります。

2

SDIプロジェクトを選択すると、Model-View-Controllerフレームワーク全体が含まれます。 理想的にはすべてのデータを保持するドキュメントクラス(CDocumentから継承)と、表示に関連するビュークラス(CViewから継承)を取得します。 既にメニューが添付されたホスティングフレームが与えられ、保存してファイルに読み込むための機能があります。

ダイアログベースのアプリケーションを使用している場合、ダイアログが1つ表示されます。それでおしまい。もちろん、このダイアログは他のものを呼び出すことができますが、アプリケーションは本質的にダイアログで構成されています。

1つのタスクだけを実行する小さなアプリケーションを開発する場合は、オーバーヘッドを必要としないため、ダイアログアプリケーションが適しています。

ユーザーがデータの読み込み、編集、保存を行うアプリケーションを開発している場合は、SDIパスが適切です。

質問に答えると、WindowsフォームよりもMFCを選択した理由があるかどうか丁寧に尋ねました。私はMFCが当時の優れた技術だと信じていましたが、Visual Studioスイートはより高度なツールを提供しています(.NETパスを辿る準備ができていれば)。

+0

ご迷惑をおかけして申し訳ございません。私は残念なことに、Windowsフォームでの知識や訓練を知らない、または習得していません。おそらく、見るべきことかもしれません。 Visual C++とMFCでトレーニングを始めました。 –

+0

「その日に」? MSがVisual Studio SuiteのMFCに追加し続ける進歩に気付きましたか?あたかもMFCを早めに引退したかのように聞こえます。私はWindows Formsと.NETの管理言語よりもMFCとアンマネージC++を好んでいます。古い学校に電話してください。管理されていないMFCアプリケーションは、管理された.NETアプリケーションのパフォーマンスを上回っています。私のクライアントは、開発者の利便性ではなく、パフォーマンスを犠牲にしています - それはもっと努力する必要がありますが、最終的な結果はその価値がありました。 – SAMills

1

「ドキュメント」がアプリケーションの正しいメタファである場合は、SDIまたはMDIを使用します。 (一度に1つの文書のみを開くことができ、複数の文書を複数開くことができます。)文書のメタファは、ほとんどのアプリケーションには適切ではありません。

関連する問題