|
今回から数回かけて前回の「その3」で作ったウインドウだけのアプリケーションにボタンをつけてみようかと思います。
まずは前回の「その3」に従って、新規にプロジェクトを作成します。 |
|
|
いきなり、どっかのプログラム入門書のタイトルに書いてあるような文句から始まりましたが、ここからはちょっと本格的にプログラムのソースコードを作成することになると思います。 プログラムと言ってもあまり難しく考えることはありません。要するにコンピュータに何をすればいいのかを教える手順書みたいなものです(人が何か言ってやらないとコンピュータってのは何もできないものなんです)。それが難しく見えるのはその手順書を教えてあげる「言葉」、すなわち「プログラミング言語」が難しいからです。基本は英語なので、しばらく見ていると何となく分かってくるのではないかと思います。
で、人がコンピュータに指示することって実はそれほど多くはなくて、基本的には、
これ以外にもあることはありますが、基本はこの3つと考えてよいでしょう。 さて、まずは画面にソースコードが表示されていると思いますので、見てください。
前から7行目に WinMain というものが見つかると思います。これがプログラムが起動された時に最初に呼ばれる部分です(この WinMain だけはすべてのプログラムで共通した名前となっています)。 この WinMain 関数の構造を簡単に書くと次のようになります。
最初は wincl.hInstance などに hThisInstance などの値を設定( = は「代入」を表してまして、= の右の値を左に入れるという意味になります)していく順次実行の処理です。ここで、このアプリケーションの初期設定が行なわれます。 次にここで設定した値を RegisterClassEx() という関数を使用して Windows へ登録する処理を行ないます。その関数からの結果が不可だった場合、return という今いる関数から抜ける(呼び出し元にもどる)命令で WinMain 関数を抜ける(これが最初の関数なのでプログラムが終了する)ことになります。これが条件判定の処理です。 次の2行は再び順次実行の処理で、ここで実際のウインドウの作成と表示を行ないます。
それに続く while で始まる部分が繰り返し実行を行なう部分で、while の次にある ( ) 内にある条件が 0 にならない限り、その下にある { から、} までを永久に実行し続けます。 ちなみに最後の return 行は、なくても次の行で WinMain() 関数は終了しているので、同じようにプログラムは終了します。ただ、これはあまり行儀のいいプログラムではないので、正しくは return 命令を使って終了させるのが良いでしょう。 と、こんな感じで一番最初に呼ばれる関数だけで基本的な3つの処理について説明できてしまいました(嬉)。 次回はこのプログラムをちょっといじってみようかなと思っていますが、果たしてどうなりますことやら…。 |