MFC事始め

MFC簡単まとめ

MFCとは?

 MicrosoftVC++用に開発した、Widnowsアプリケーション開発用フレームワーク
 WindowsAPIを直に呼び出すよりは多少マシぐらいで、新規で覚えるメリットは、ほとんど無い。
 WindowsXP以前は、よく使われたので、そのメンテナンスとか移植とか、そんな感じの仕事につくと使う羽目になる。個人でやるならば、素直に.Netを使おう。

環境

項目 情報
OS Windows 7
Visual Studio 2015

インストール

 VisualStudioをインストールするとデフォルトで入っている。特に自分でインストールする必要は無い。

プロジェクト作成

とりあえずダイアログベースプログラムを作成

  • 以下の流れで作成
    • ファイル
    • 新規作成
    • プロジェクト
    • プロジェクト作成ダイアログが開く
      • Visual C++MFCアプリケーションを選択
      • プロジェクト名を入力
    • MFCアプリケーションウィザードが開く

基本的な流れ

大体以下の流れで開発していく
(今回はプロジェクト名をMFCSamplesにしました)

  1. リソースビューからダイアログを開いて、視覚的に画面パーツを追加
  2. ダイアログのクラス(MFCSamplesDlg.cpp内)に、追加したパーツに対するイベントやDDX/DDVを記述
  3. パーツを拡張したり、別クラスに処理を分ける

ボタンなどの処理/イベントを細かく管理する場合は、基本クラスを拡張すると良い
拡張の流れは以下の通り

  1. パーツの基本クラスを継承してクラスを作成
  2. ダイアログクラスのメンバ変数を追加して、DDX/DDVとして作成したクラスのインスタンスを持つ
  3. こうすると拡張先のクラスにイベント処理を書いていけば良くなる

コーディングスタイルについて

 クラス名は必ずCを先頭につける必要がある。ファイル名にはつける必要が無いが、クラス名につける必要がある。

ファイル名 クラス名
MFCSamplesDlg.cpp CMFCSamplesDlg

 また、Mustではないが、MFCフレームワークの各クラスが、がっつりハンガリアンで書かれている。Mustではない思うが、周りに合わせる場合は使うべきなのかもしれない。
 他はC++の基本的なスタイルでコーディングしていけばいいのでは無いかと思う。

サンプル

とりあえず、GitHub上に公開しているので、見てもらえばいいと思う。
メインダイアログから、各パーツのサンプルダイアログへ飛べるようになっている(追加予定)。