>> WINAPI入門トップに戻る

WINAPIとは

まずはWINAPIとは何かを説明します。
WINAPIとはWindows上でウィンドウを表示したり、文字や画像を描画したり、
音楽を再生・録音、動画の再生等を実現するためのインターフェースです。
インターフェースというと分かりにくいかもしれませんが、
関数の集まりだと思ってください。
その関数を使いこなすだけで、Windowアプリケーションが作れるようになります。

Windowアプリケーションを作るには、今までのコンソールアプリケーションの手順とは
ちょっと違う手順で以下のように作ります。

①Visual C++を起動し、新規作成→プロジェクトを選択して下さい。
②「win32プロジェクト」を選択し次へ。
③アプリケーションの種類で「Windowsアプリケーション」にチェック。
④空のプロジェクトを選択し、完了をクリックして下さい。

以上で、Windowアプリケーション作成の準備は完了です。
いつものようにソースファイルを新規で作成し、そこにコードを書いていくだけです。

次にコード部分の説明に入ります。
WINAPIを使うには、windows.hのヘッダファイルを
インクルードする必要があります。
Windowアプリケーションを作るためには大きく分けて以下の三つの処理を書く必要があります。

①ウィンドウの作成
②メッセージループ
③ウィンドウプロシージャの定義

ウィンドウの作成については言うまでもありませんね。
Windowsがないと文字や画像も表示できませんし、
何をするにもまずウィンドウが必要になります。
ウィンドウの作成については以下の手順を踏む必要があります。

①ウィンドウクラスの登録
②ウィンドウの作成

この二つです。
次回の講座で詳しく説明します。

次にメッセージループです。
Windowsの処理というのは、基本的にメッセージをやり取りすることで処理が行われています。
例えば、ボタンを押すとき、ウィンドウを閉じるとき、描画するとき、など色々な処理がありますが、
ほぼ全ての動作についてメッセージが発生しています。
そのメッセージをウィンドウプロシージャというもので制御し、
私達が普段ウィンドウ上で見ていることが実現しているのです。
そのメッセージを受け取って、ウィンドウプロシージャへ渡して処理させてやるのが、
このメッセージループの仕事になります。

最後にウィンドウプロシージャの定義です。
先程も言いましたが、渡されたメッセージを指定した処理に応じて処理し、
正しく動作させるための関数だと思ってください。
実際、見た目もただの関数です。

この三つがWindowアプリケーションを作る上で必要になります。

また、WINAPIには専用の型がいくつかあります。
BYTE型
HRESULT型
LRESULT型
UINT型
など沢山有りますが、これらはただ名前をtypedefで変えられてるだけであって、
元の型はunsigned char型だったり、LONG型だったりします。
ですので、あまり深く考えずに、「この関数はこの名前の型を使うのか」と、
単純に名前だけ覚えていってくれればいいです。
興味がある方は、元は何型なのか調べてみてください。

コンソールアプリケーションでは、プログラムにはmain関数が必要でしたが、
Windowアプリケーションでは、WinMain関数を使って記述します。

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd){
~ここに処理を書く~
{

これがWinMain関数になります。
WinMainの前についている、WINAPIはwinapiを呼び出すための規約です。
第一引数は、インスタンスハンドルと言って、このプログラムを識別する為のハンドルです。
第二引数は現在使われていません。
第三引数はコマンドライン引数です。
第四引数はウィンドウの表示状態の指定が入っています。

この中で使うのはインスタンスハンドルぐらいですので、
最初は深く考えずにコピーして使ってもらって構いません。

今回はここまで。
次回はWindowの作成まで説明します。


>> 【ウィンドウの作成】に進む
>> WINAPI入門トップに戻る