Visual C++ について

Visual C++(以下VC)は非常にわかりづらい統合開発環境です.しかし,同時に非常に強力な統合開発環境でもあります(たぶん).

VCは,C言語の拡張型であるC++をさらに拡張して,Windowsアプリケーションを簡単に(ほんと?)作成するための統合開発環境です.とういことは,VCをマスターするには,Cをマスターし,さらに,C++をマスターする必要があるのでしょうか? それは,もちろんそうです.が,必ずしもC++まで完全にマスターしていなくてもある程度のプログラムは書けそうです.VCWindowsアプリケーション開発用統合開発環境なので,Windowsアプリケーションについて知ることの方が,もっと大事なような気がします.

Windowsアプリケーションはイベントドリブンなプログラムです.要するに,何かのイベントが発生すると,それに応じた関数(メッセージ)が呼び出されるようなプログラムです.イベントとは,たとえば,マウスの左ボタンが押された,ウインドウのサイズが変更された,[exit]ボタンが押された,メニューの[ファイル]-[保存]が選ばれた,などなどです.

それでは,VCでのプログラム開発の大まかな流れを見てみましょう.

  1. 色々なパラメータを設定して,スケルトンを作成する.
    はじめに,プログラムの名前,保存場所,プログラムのタイプ(ダイアログベース,
    MDI(マルチドキュメント)など),ActiveXを使うかどうかなど各種のパラメータを質問形式で答えていくと,それに応じたスケルトンが作成されます.スケルトンは一応のWindowsアプリケーションの機能を備えた,プログラムのソースコードの集合体で,それをビルド(コンパイル・リンク)すると実行可能なプログラムができます.スケルトンは実行可能とはいえ,ほとんど何の役にも立ちません.実際には,ここからが本番で,目的の機能を持つプログラムに拡張していかなければならないのです.
  2. リソースの編集.
    アプリケーションのビジュアル設計をします.たとえば,どのようなメニュー項目を準備するか,どのようなボタンをどこに置くかなどです.この作業は,図形エディタのようなものを使い,見た目を確認しながら作業できます.各ボタンやメニューなどはコントロールと呼ばれ,各コントロールを図形エディタのようなもので作成・編集すると同時に,
    IDなども付けていきます.このIDが後でコードを書くときの目印になります.
  3. 変数や関数の追加・編集
    各クラス毎にメンバ変数を追加したり,メンバ関数を追加したりしながら,自分の思い通りのプログラムに仕上げていきます.クラスとは,ちょっとわかりづらい概念ですが,オブジェクト指向のオブジェクト,あるいは,モジュール(プログラム全体をいくつかの塊に分けたときの各塊のこと)と思っておけば良いでしょう.
    VCでは,スケルトンを作った段階でいくつかのクラスが作成されています.それらのクラスには既に,色々な変数や関数が書き込まれていますが,それにさらに追加・編集することになります.各クラスは,ヘッダファイル(*.h)とソースファイル(*.cpp)からなり,メンバ変数はヘッダファイルに,メンバ関数はソースファイルに書き込むことになります.実際の書き込み方は,直接それらのファイルを開いて書き込む場合と,Class Wizardという魔法のツールを使って書き込む場合とがあります.
  4. すべて保存して,ビルド,実行し結果を確認する.

以上で,大まかな流れは終わりですが,実際には3が非常にわかりづらいところです.具体的には個々の例を見ながら少しずつ覚えていくしかないのですが,ヒントとしては,前にも書いたように,Windowsアプリケーションはイベントドリブンのプログラムですから,どういうイベントが起こったら何という関数が実行されるかを掴んでいくことです.たとえば,メニューならば,ユーザーが[ファイル]-[開く]というメニューを選べば,そのメニューに対応づけられたオブジェクト(ex. ID: ID_FILE_OPEN)にCOMMANDというイベントが発生するので,そのイベントに関連づけて関数を作成し,そこにコードを記述すれば良いということです.そのへんの様子は,Class Wizardを開いてみればある程度わかるようになっています.