あかすくぱるふぇ

同人サークル「あかすくぱるふぇ」のブログです。

今回はダイアログの最小構成。

無題

このソースコードを書くのとは別に、以下の作業が必要です。
➀リソースファイル > 追加 > リソース > Dialog > 新規作成
➁リソースビューで、ダイアログにボタン貼り付け

以上です。
「ここからは複雑になるんだろうなぁ」と思っていたら、とっても簡単でした。
Visual Studioが自動生成するMFCプロジェクトは色々と余計なものがくっついているようですね。

前回の最小構成にボタンを付けてみました。
リソースビューからしか付けたことなかったけど、意外と簡単。

header

source

やったことは以下の通り。
➀ボタン(CButton型変数)をウィンドウクラスのメンバ変数に追加。
➁ウィンドウクラスのコンストラクタでボタンを生成。
③ボタンのイベントハンドラをウィンドウクラスのメンバ関数に追加。
④メッセージマップにボタンのイベントハンドラを追加。

MFCって、すごくごちゃごちゃしてるイメージがありましたが、最小構成だけ見ると、すごくすっきりしているように見えますね。

今までブラックボックスとして使っていたMFCを解析してみることにしました。
とりあえず、「最小構成はどうなるんだろ」ってとこを解析してみました。
以下の画像が最小構成コード。「1日でわかるMFC」さんを参考にさせていただきました。
http://hp.vector.co.jp/authors/VA011804/mfc_a0.htm

無題

Debugで追っていくと分かりますが、以下のような処理をしています。
➀MFC内で定義されている_tWinMain()関数が実行される。
➁その中で、アプリケーションクラスのInitInstance()関数が実行される。
③その中で、ウィンドウクラスのインスタンスが生成される。
④ウィンドウクラスのコンストラクタでCreate()関数が実行され、ウィンドウの登録と生成が成される。
  ←その過程で、PreCreateWindow()関数が実行されている。
⑤ShowWindow()関数でウィンドウを可視化する。

ここまでだと、ウィンドウやアプリケーションがクラス化されただけで、いまいちMFCのメリットが分かりませんね。

↑このページのトップヘ