meideru blog

meideruが書いているブログです。主に電子工作・プログラミング・ガジェット類などを中心に記事を書いています。

Windows APIの基本テンプレートを書いてみました

      2017/09/27

昨日から本格的にWin32 API の勉強を始めました(^O^)/

【関連記事】
もう一度、Windowsプログラミングを勉強しようと思います

昨日は、Windowsプログラミングの基本中の基本を勉強しました。

今日は、勉強した内容を備忘録の意味も兼ねて書きたいと思います(^_^)

ソースコード

以下は、Win32 API でプログラミングを行うための基本的なソースの書き方です。

Windowsのアプリケーションは、たくさん種類がありますが、ほとんどの原型は以下のソースです。なので、テンプレートと言っても問題ないでしょう。

GitHub

GitHubにもアップしていますので、そちらからのクローンも可能です。

GitHub → https://github.com/meideru/WindowsAPI_Template

ソースコード

(参考:猫でもわかるWindowsプログラミング)

長い・・・w

でも、Windowsのプログラムの多くは、これで動いています。

ちょっとだけ関数や構造体について説明していきたいと思います。

ソースコードの解説

WinMain関数について

WinMain関数は、C言語のmain関数に例えることができます。最初に実行される関数です。この関数が終了すれば、プログラムも終了です。

各種引数については、説明を割愛します。

構造体WNDCLASSEXについて

ウィンドウの性質を格納する構造体です。

構造体のメンバに関する説明は割愛します。

RegisterClassEx関数について

ウィンドウクラスを登録する関数です。

構造体WNDCLASSEXで作ったインスタンスを引数として渡してやれば、ウィンドウクラスとして登録されます。

CreateWindow関数について

ウィンドウを作成する関数です。

各種引数については省略します。

返却型はHWND型です。

ShowWindow関数について

ウィンドウを表示する関数です。

引数の1つには、CreateWindow関数で作ったHWND型の変数を渡します。

UpdateWindow関数について

ウィンドウを更新する関数です。

この関数が呼び出されると、hWndで表されるウィンドウが再描画を要するときに、WM_PAINTメッセージが発行されます。

GetMessage関数について

メッセージを取得し、MSG構造体に格納する関数です。

MSG構造体はメッセージを格納する構造体です。

メッセージとは、キー入力、クリックなど全てを表すものです。これが送られてくることによってプログラムが成立しています。

WndProc関数について

メッセージを処理するための関数です。

直前に書いてある「CALLBACK」とは、コールバック関数のことで、システムから呼び出されることを意味します。

 

以上・・・。

かなりアバウトな説明になってしまいました・・・。

 

この説明でWin32 APIが理解できた方がいたら、あなたは天才です・・・。

 

ノシ

 - プログラミング