Windowsのアプリ開発で最もポピュラーな開発環境はやはりMFCでしょうか。
MFC(Microsoft Foundation Class)とはVisual Studioに組み込まれているアプリケーションフレームワークです。
MFCを使うことでウィンドウの表示やmain関数などを意識することなくプログラミングができるようになります。
MFCを使わずにウィンドウを表示させようとすると、ウィンドウの情報(サイズや形など)を一つ一つプログラミングし、またメッセージプロシージャ(ウィンドウに送られてくるメッセージを処理する関数)なども理解しなければいけませんが、この部分が大きく簡略化できます。
つまり、ウィンドウの作成をMFCに任せることで簡単にGUIアプリを作ることができます。
ボタンを表示させてメッセージボックスを出してみよう。
プロジェクトの作成方法:無料のVisual StudioをインストールしてMFCを動かそう
上記リンクと同じようにダイアログベースのプロジェクトを作成し、デフォルトで配置されている、[OK]ボタンが押されたらメッセージボックスを表示させるようなプログラムを組んでみましょう。
プロジェクト作成直後は以下のような画面表示になっていると思います。
- [OK]ボタンを右クリックし、[イベントハンドラーの追加]をクリックします。
- ここでメッセージの種類に注目しましょう。
[BN_CLICKED]はボタンがクリックされた場合、
[BN_DOUBLECLICKED]はボタンがダブルクリックされた場合にイベントハンドラーを実行します。
このようにどういった操作をされるとどんなメッセージがウィンドウに送られるのかしっかり意識しましょう。今回は、デフォルトのまま[BN_CLICKED]を選択してください。
- クラスの一覧では、イベントハンドラーをどのクラスに属させるかの指定です。
ここもデフォルトのままで問題ありません。 - 関数ハンドラー名はその名の通り、関数名です。
任意の名前で構いませんが、分かりやすい名前を付けましょう。 - [追加して編集]ボタンをクリックします。
上記の方法でイベントハンドラーを作成すると以下のようなコードが表示されているはずです。
1 2 3 4 5 |
void Cpignote_001Dlg::OnBnClickedOk() { // TODO: ここにコントロール通知ハンドラー コードを追加します。 CDialogEx::OnOK(); } |
CDialogEx::OnOK関数が実行されるとダイアログが閉じられます。
つまりはプログラムが終了します。
TODOコメントとOnOK関数の間にメッセージボックスを表示させる、AfxMessageBox関数を呼び出してメッセージを表示させてみましょう。
1 2 3 4 5 |
void Cpignote_001Dlg::OnBnClickedOk() { AfxMessageBox("Hello MFC World!"); CDialogEx::OnOK(); } |
さて、実行するとどんな動作になるでしょうか。
まとめ
ボタンの作成はとても簡単ですが、利用頻度はかなり高いです。
[OK]、[はい]、[いいえ]、[参照]、[実行]などなど、どんなアプリケーションでもほぼ使われる機能です。
今回は初めから用意されている[OK]ボタン押下時にメッセージボックスを表示させましたが、ツールバーなどからボタンを追加しても同じようにプログラミングすれば、ボタン押下時にさまざまな動作を行えます。
使用頻度が高いからこそしっかりと送られるメッセージや動作について確認しておきましょう。