2015/10/20

Win32API メモ : ウィンドウの作成と表示

※ここではUnicode文字セットを使用するものとして書いてある。Wで終わるものは基本的にUnicode版なので、ドキュメントを検索するときは末尾のWを消しておくこと。


windows.hをインクルード。



wWinMainエントリポイントを定義する。

WinMainの引数LPSTR lpCmdLineは、wWinMainではLPWSTR型である。



WindowProcコールバック関数を定義する。
この関数の返り値は次のように記述する(ただし、変数名はWindowProcの引数と同じ):

    return DefWindowProcW(hwnd, uMsg, wParam, lParam);



WNDCLASSEXW構造体を記述する。

WNDPROC lpfnWndProcには先程のコールバック関数を指定する。

LoadIconW関数の返り値をHICON hIconに代入することによってウィンドウのアイコンを指定することができる。
デフォルトで使用できるアイコンはリンク先を参照。

LoadCursorW関数の返り値をHCURSOR hCursorに代入することによってウィンドウにカーソルが移動した時に表示されるカーソルの形状を指定することができる。
NULLを指定した場合は、ウィンドウにカーソルが移動するたびに、明示的にカーソルの形状を指定しなければならない。
デフォルトで使用できるカーソルはリンク先を参照。

HBRUSH hbrBackgroundにはクライアント領域を塗りつぶすのに使用されるブラシへのハンドルまたは、システム標準の色の値+1をHBRUSHにキャストしたものを代入する。
例えば、COLOR_WINDOWを使用する場合は次のようになる:

    (HBRUSH)(COLOR_WINDOW + 1)

NULLを指定した場合は、アプリケーションが自分でクライアント領域を塗る必要がある。

LPCTSTR lpszClassNameには、CreateWindowExW関数でクラスを呼び出すのに使用される文字列へのポインタまたは、RegisterClassExW関数等から返されるATOM型の値を指定することができる。



RegisterClassExW関数に先程のWNDCLASSEXW構造体を引数として実行



CreateWindowExW関数のLPCTSTR lpClassNameに、lpszClassNameに指定した文字列または、RegisterClassExW関数から返されるATOM型の値を指定してウィンドウを作成する。



ShowWindow関数に先程のCreateWindowExW関数からの返り値を引数として実行することでウィンドウを表示時する。

int nCmdShowには、ユーザーがプログラムに対して設定したウィンドウの表示方法に従う場合はWinMainエントリポイントの引数のnCmdShowを、それ以外の場合はリンク先にて記述されている値を指定する。

0 件のコメント:

コメントを投稿