目次
「MFC」という単語を耳にして「何のことだろう?」と気になった人、または 既存のMFCコードのメンテナンスを引き継いだ人 向けの記事です。MFC が何かをまず説明し、続いて最小構成のMFCアプリを実装して動かすところまで進めます。「MFCの情報が WEBに少なくて困った」という自分の体験から書いています[1]。
MFCとは

MFC は Microsoft Foundation Class の略で、Windows アプリケーションを C++ で作るためのライブラリ(フレームワーク)です。簡単に言えば「Windows のプログラムを書くときに使えるコードの集まり」で、Microsoft が公式に提供しています[1:1]。
MFC で何ができるか
Windows OSが提供している基本機能(API)に直接アクセスする「Windows API」というものがありますが、これはC言語ベースで書く必要があり、ウィンドウ表示一つにも数十行のコードが必要になります。MFC を使うとそれらの定型処理がC++のクラスとしてまとまっていて、ずっと少ないコード量で同じ機能を実現 できます。
MFC の現状の立ち位置
正直に言うと、新規のWindowsアプリ開発で MFC が選ばれることはほぼありません。現在は次の技術が主流です。
- WPF(XAML + .NET、デスクトップアプリ)
- WinUI 3 / .NET MAUI(モダンなWindows/クロスプラットフォーム)
- Avalonia(クロスプラットフォーム)
ただし MFC は 既存のレガシーアプリのメンテナンス や、Windows APIを直接書くより楽にアプリを作りたい場面 では今も使われます。歴史的経緯で MFC が残っている社内アプリやツールに触れる機会は意外とあります。
環境構築
MFC を使うには Visual Studio が必要です。すでにあれば飛ばしてOK、無ければ個人利用なら無料の Visual Studio Community が使えます。

Visual Studio で MFC を扱うにはインストール時にいくつか追加コンポーネントを選ぶ必要があります。手順は別記事にまとめました。
→ MFCをVisual Studioで始めるための環境構築 (2019対応)
最小のMFCプログラム
環境ができたら、最小構成のMFCアプリを書いて動かしてみます。Visual Studioで .cpp ファイルを作って下記のコードを貼り付け、実行してみてください。
#include <afxwin.h> // MFCに必要なクラスが定義されている
// ウィンドウクラスを CFrameWnd から継承して作成
class CMainWin : public CFrameWnd {
public:
CMainWin();
DECLARE_MESSAGE_MAP()
};
CMainWin::CMainWin() {
Create(NULL, _T("最小のMFCプログラム"));
}
// アプリケーションクラスを CWinApp から継承して作成
class CApp : public CWinApp {
public:
BOOL InitInstance();
};
BOOL CApp::InitInstance() {
m_pMainWnd = new CMainWin;
m_pMainWnd->ShowWindow(m_nCmdShow);
m_pMainWnd->UpdateWindow();
return TRUE;
}
BEGIN_MESSAGE_MAP(CMainWin, CFrameWnd)
END_MESSAGE_MAP()
CApp App;
実行するとタイトルに 最小のMFCプログラム と書かれた真っ白なウィンドウが起動します。

コードの読み解き
このわずか30行ほどに、MFC アプリの基本構造が詰まっています。
CWinAppを継承した アプリケーションクラス(CApp)が起動の入り口CFrameWndを継承した ウィンドウクラス(CMainWin)がメインウィンドウを表現BEGIN_MESSAGE_MAP〜END_MESSAGE_MAPの メッセージマップ が、ボタン押下などのイベント処理を定義する場所(今は空)- 最終行の
CApp App;がグローバルインスタンスを作って、これがあるだけで MFC ランタイムが起動
ここからボタンやテキストボックスを追加していくと、本格的なWindowsアプリへと発展させられます。
まとめ
MFC は古めの技術ですが、Windows APIより楽にC++でWindowsアプリが書けるフレームワークとして、レガシーアプリ保守や軽い社内ツール作成では今も役に立ちます。最小構成は30行程度で動かせるので、雰囲気を掴むには十分です。本格的に始める場合は別記事の Visual Studio 環境構築 も合わせてご覧ください。
参考文献
MFC Desktop Applications - Microsoft Learn (2026-05-10 アクセス) ↩︎ ↩︎
