MFC入門: 最小のMFCアプリケーションを作ってみよう!

公開日:
目次

MFCの情報がWEBにあまりなかったので、自分の備忘録としてMFCでWindowsアプリを作成する方法を書いておきます。

今回は最小のMFCアプリを作ってなんとなくMFCを理解するのがコンセプトです。最小構成が分かればMFCについて少しは理解できるかも知れません。

MFCとは

Image from Gyazo

MFCはMicrosoft Foundation Classの略で、Windowsアプリケーションをつくるためのライブラリ(フレームワーク)です。

もっと簡単に言えば、Windowsのプログラムを作るときに使われるコードの集まりです。

MFCを使うと、Windowsが提供しているWindowsAPIを使ってアプリを作るよりも簡単に作ることができます。

補足しておくと、現状は.NET FrameworkやWPFなどの技術が主流になっているため、MFCを使う機会はほとんどないと思います。しかし、レガシーなアプリケーションのメンテナンスや、WindowsAPIを直接使うよりも簡単にアプリを作りたい場合にはMFCが使われることがあります。

環境構築

MFCを使うにはVisual Studioが必要です。MFCが必要な人は基本的に持っているとは思いますが、持ってない方は個人なら無料でVisual Studio Communityをダウンロードできるので入手しましょう。

Image from Gyazo

また、Visual StudioでMFCを使うには各種設定が必要です。下記に環境構築の記事を書いたので必要な場合は確認してみてください。

最小の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プログラム"と書かれた真っ白なプログラムが起動します。
Image from Gyazo