VC++5.0入門2
基礎知識2 97/7/22

こんにちは。前回は、ウィンドウズ・プログラミングの基本は

「ウインドウズからのメッセージを待ち、メッセージが来たときに決まった対応をするプログラム」を書くこと

という話をしました。
そう納得すれば、すぐにでも、VC/MFCプログラミングに進めます。ただ、ここで、普通の人はいや〜な思いをします。というのは、VCに付属のチュートリアル通りに進めると、たぶん、わからないことだらけになるからです。(この「チュートリアル」はバージョン4.0にはちゃんとついていました。「Visual C++ チュートリアル」です。私の買ったバージョン5.0へのアップグレード版には、本としてはついていませんでした。しかし、これは、infoViewerの中にあります。とても大事な入門書ですので、ちゃんと見つけておいてください。)先回りして言っておきますと、私は、結論として、
  1.チュートリアルは良く書けている。
 2.わからないことにこだわってはいけない。
と言います。(別にマイクロソフト社にゴマをするわけではないのですが、マニュアルは「良く書けている」と思います。)
「なんだとぉ〜。あのチュートリアルが良く書けているだあ〜。こいつも、結局、自分が分かっていることは、簡単扱いする、いやみ野郎かぁ〜」と思いました?でも、この入門は、チュートリアルが難しいと思うような人向けの入門です。
さて、「C++入門」を読んでくれた人は2番目の「わからないことにこだわってはいけない」ということには賛同いただけるのではないでしょうか。ただ、チュートリアルにはわからないことが山のように出てきます。(多少の「C++に対するカン」が必要なのですが、それ以外にも、という意味です。)この山のようなわからないことが一体何なのか、、、と悩むともうやる気はなくなっていくのです。ここで「入門」などを書いている私もわからないことはたくさんあります。というか、わからないことの方が多いのです。これらの「わからない事」には、解説が(あまり)ありません。だから、マイクロソフトの社員でない限り、わからなくても当然ですし、恥ずかしいことでも無いと思っています。(開き直りました。^^;)
これらのわからないことは、最初は、できればほっておけば良いと思います。「わからないなぁ。気持ち悪いなぁ」と思いながらも、チュートリアルを読める人は、それを読むことがベストだと断言します。そういう人は、私の「入門」は、かなりしばらく読まなくて良いと思います。
ただ、私のHP(のみ)でプログラミングを勉強している人は、「チュートリアルを読みましょう」と言われても困るのではないでしょうか。そういうわけで、多少の説明をしたいと思うのです。
ただ、以下での説明は、結局、将来、具体的に役に立つ話ではないかもしれません。いつか、「なんだ、やっぱり、チュートリアルを読めばいいのか。」と思うことでしょう。そうなんですよ。これからの話は、VC/MFCの世界に入っていくための心の準備みたいなものです。(その後で「チュートリアルの読み方」でもやろうかと思います。)
それと、ここでも、(いつでも)、大原則、

  わからないことにこだわってはいけない。(くどい)

を守ってください。
さてもとに戻って、ウインドウズ・プログラミングですが、はじめに書いたように、基本は「ウインドウズ(というOS)からのメッセージを処理すること」ですが、その他にもやらなければならないことがあります。
それは、ウインドウを書くということです。普通のアプリケーションにはそのウインドウがあります。このウインドウにはいろいろなスタイルが可能で、実際、変わったスタイルのものもあります。このように、いろいろなスタイルが可能ということは、プログラマには地獄です。どういうスタイルのウインドウにするか自分でいちいちプログラムに書いていかなければならないのです。
このため、MFCを使わないやり方(=Cによるプログラミング)では、画面に「hello」と書き出すだけのプログラムが80行位になってしまうのです。「C++入門2」ではたったの数行だったのに、です。
繰り返しますが、これは、プログラマがどういうスタイルのウインドウを使うか決める部分が長いのです。
一方、多くのアプリケーションは、同じようなスタイルのウインドウを持っています。例えば、「メモ帳」が良い例です。タイトルの下にメニューがあり、メニューの左端には「ファイル」という項目があり、右端には「ヘルプ」がある、そんなスタイルです。もう少し、高級なアプリケーションでも、これにツールバーが付いているだけです。
みなさんはどういうタイプでしょう。私は、できるなら、自分独自のスタイルのウインドウを使いたいと思います。しかし、普通にプログラムするときには、そんなに奇抜なスタイルでなくても良いと思います。また、ビジネスソフトを作る人たちは、他人に(マイクロソフトに?)けんかを売っているのでなければ、標準のスタイルに従うべきです。(そう言われています。)
なんにせよ、とりあえずは、標準スタイルのウインドウで良いと思いますよね。そうだとすると、どのプログラムでも、数十行に渡って同じことを書くことになるのです。つまり、標準スタイルのウインドウを生成するコードです。これは、とても嫌です。MFCはこういう無駄を省くためのシステムでもあるのです。
要するに、標準スタイルのウインドウを使うのなら、誰かが書いてくれたものを使えば良いのです。そして、C++を使っているのなら、それは、誰かが書いてくれた「クラス」です。私たちは、この「クラス」としてMFC(くどいですが、マイクロソフト・ファウンデーション・クラス)を選んだのです。
ここまでの話は単純で、納得できるものだったと思います。しかし、実際は、そんなに単純でもないのです。ここまでは、ウインドウのスタイルの話を書いてきましたが、良く考えれば、ウインドウという目に見える部分だけでなく、アプリケーションのいろいろな動作まで含めて、「標準スタイル」があるはずです。どうせ「標準」なら、全部ひっくるめて、お願いしちゃった方が良さそうです。いつも同じコードを何度も書きたくないですからね。
そういうわけで、VC/MFCはアプリケーションの「標準スタイル」をクリック一発とはいかなくても、数発で与えてくれるのです。つまり、後でやりますが、いつも書くべき同じコードは、VCが自動で書いてくれるのです。
この「自動で書いてくれる部分」は結構な量です。そして、ここは、自動で書いてくれる部分なのですから、とりあえずは、読まなくても良いはずです。もちろん、上級者は自分でこの部分を読んで、ときには書き換えるわけですが、初心者には必要ありません。みなさん、ここには目をつぶりましょう。そして、もっと勉強してから、見るようにしましょう。めでたし、めでたし、、、。なんて、いかないのが、人情です。
なんだか、意味不明のコードが並んでいると、気になってしかたがありません。「はじめから、細部にこだわらない」という原則にしたがうにしても、あまりにわからなすぎするとやる気を無くすのです。(少なくとも私はそうです。^^;)
それで、チュートリアルとはちょっと違った、、、というか、チュートリアルに行く前の簡単な、入門を考えてみました。
引っ張るつもりは無いのですが、前に言いましたように、時間が余り無いので、今回は、これくらいにさせてください。コードはいつになったら出てくんだ、思っているみなさん。次回は簡単なコードを試してみましょう。
目次のページ
前のページ
後のページ