ウィンドウクラスの登録
typedef struct {
UINT style;
WNDPROC lpfnWndProc;
int cbClsExtra;
int cbWndExtra;
HINSTANCE hInstance;
HICON hIcon;
HCURSOR hCursor;
HBRUSH hbrBackground;
LPCTSTR lpszMenuName;
LPCTSTR lpszClassName;
} WNDCLASS;
WNDCLASS構造体は、ウィンドウクラスを記述する各種のフィールドで構成されます。
style | ウィンドウの基本的な設定を行うビットフラグを指定する。 |
lpfnWndProc | ウィンドウプロシージャ。拡張の必要が無ければDefWindowProc()で良い。 |
cbClsExtra | 使用しない。0にする。 |
cbWndExtra | 使用しない。0にする。 |
hInstance | このウィンドウクラスを登録するアプリケーションのインスタンスハンドルを指定する。WinMain()関数が引数で受け取ったインスタンスハンドルを設定する。 |
hIcon | ウィンドウのアイコン。NULLを指定した場合は標準のアイコン。 |
hCursor | マウスがウィンドウ上にあるときのカーソル。NULLを指定した場合は、現在のカーソルがそのまま表示される。 |
hbrBackground | 背景色。色の値は標準のシステムカラーの1つでなければならない。(選ばれた値には1を加えなければならない。) |
lpszMenuName | ウィンドウのデフォルトメニューとなるメニューの名前を指定する。 |
LpszClassName | 一意のクラス名。 |
設定の例(ソースとしてのサンプルではありません。)
#define CLASSNAME "Project_Name"
WNDCLASS wc;
wc.style = 0;
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.style = CS_BYTEALIGNCLIENT | CS_BYTEALIGNWINDOW;
wc.lpfnWndProc = WndProc;
wc.lpfnWndProc = DefWindowProc; // 拡張の必要が無ければデフォルトのウィンドウプロシージャで良い
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;
wc.hIcon = NULL;
wc.hIcon = LoadIcon( hInstance, IDI_APPLICATION );
wc.hIcon = LoadIcon( hInstance, MAKEINTRESOURCE( IDI_PROJECTNAME ) );
wc.hCursor = LoadCursor( NULL, IDC_ARROW );
wc.hbrBackground = ( HBRUSH )( COLOR_WINDOW + 1 ); // COLOR_で始まるのはシステムカラーを示す定数
wc.lpszMenuName = 0;
wc.lpszMenuName = MAKEINTRESOURCE( IDC_PROJECTNAME );
wc.lpszClassName = CLASSNAME; // クラス名
HICON LoadIcon(
HINSTANCE hInstance,
LPCTSTR lpIconName
);
事前に定義されたアイコンを使用するには、
hInstanceにNULLを設定し
lpIconNameに以下の値の1つを設定してください。
IDI_APPLICATION | Default application icon. |
IDI_ASTERISK | Same as IDI_INFORMATION. |
IDI_ERROR | Hand-shaped icon. |
IDI_EXCLAMATION | Same as IDI_WARNING. |
IDI_HAND | Same as IDI_ERROR. |
IDI_INFORMATION | Asterisk icon. |
IDI_QUESTION | Question mark icon. |
IDI_WARNING | Exclamation point icon. |
IDI_WINLOGO | Windows logo icon. Windows XP: Default application icon. |
HCURSOR LoadCursor(
HINSTANCE hInstance,
LPCTSTR lpCursorName
);
事前に定義されたカーソルを使用するためには、
hInstanceにNULLを設定し
lpCursorNameに以下の値の1つを設定してください。
IDC_APPSTARTING | Standard arrow and small hourglass |
IDC_ARROW | Standard arrow |
IDC_CROSS | Crosshair |
IDC_HAND | Windows 98/Me, Windows 2000/XP: Hand |
IDC_HELP | Arrow and question mark |
IDC_IBEAM | I-beam |
IDC_ICON | Obsolete for applications marked version 4.0 or later. |
IDC_NO | Slashed circle |
IDC_SIZE | Obsolete for applications marked version 4.0 or later. Use IDC_SIZEALL. |
IDC_SIZEALL | Four-pointed arrow pointing north, south, east, and west |
IDC_SIZENESW | Double-pointed arrow pointing northeast and southwest |
IDC_SIZENS | Double-pointed arrow pointing north and south |
IDC_SIZENWSE | Double-pointed arrow pointing northwest and southeast |
IDC_SIZEWE | Double-pointed arrow pointing west and east |
IDC_UPARROW | Vertical arrow |
IDC_WAIT | Hourglass |
Comments