ウィンドウクラスの登録


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_APPLICATIONDefault application icon.
IDI_ASTERISKSame as IDI_INFORMATION.
IDI_ERRORHand-shaped icon.
IDI_EXCLAMATIONSame as IDI_WARNING.
IDI_HANDSame as IDI_ERROR.
IDI_INFORMATIONAsterisk icon.
IDI_QUESTIONQuestion mark icon.
IDI_WARNINGExclamation point icon.
IDI_WINLOGOWindows logo icon. Windows XP: Default application icon.


HCURSOR LoadCursor(
 HINSTANCE hInstance,
 LPCTSTR lpCursorName
);

事前に定義されたカーソルを使用するためには、
hInstanceにNULLを設定し
lpCursorNameに以下の値の1つを設定してください。

IDC_APPSTARTINGStandard arrow and small hourglass
IDC_ARROWStandard arrow
IDC_CROSSCrosshair
IDC_HANDWindows 98/Me, Windows 2000/XP: Hand
IDC_HELPArrow and question mark
IDC_IBEAMI-beam
IDC_ICONObsolete for applications marked version 4.0 or later.
IDC_NOSlashed circle
IDC_SIZEObsolete for applications marked version 4.0 or later. Use IDC_SIZEALL.
IDC_SIZEALLFour-pointed arrow pointing north, south, east, and west
IDC_SIZENESWDouble-pointed arrow pointing northeast and southwest
IDC_SIZENSDouble-pointed arrow pointing north and south
IDC_SIZENWSEDouble-pointed arrow pointing northwest and southeast
IDC_SIZEWEDouble-pointed arrow pointing west and east
IDC_UPARROWVertical arrow
IDC_WAITHourglass
Windows > ウィンドウの作成 | comments (0) | trackbacks (0)

Comments

Comment Form

icons:

Trackbacks