まずはウインドウクラスの登録の部分から見てみましょう
WNDCLASS wc; はWNDCLASSのオブジェクトwcを作成するという意味です
WNDCLASSは以下のように宣言されています
typedef struct {
UINT style; //スタイル
WNDPROC lpfnWndProc; //ウィンドウプロシージャ
int cbClsExtra; //補助メモリ
int cbWndExtra; //補助メモリ
HINSTANCE hInstance; //インスタンスハンドル
HICON hIcon; //アイコン
HCURSOR hCursor; //カーソル
HBRUSH hbrBackground; //背景ブラシ
LPCTSTR lpszMenuName; //メニュー名
LPCTSTR lpszClassName; //クラス名
} WNDCLASS
次にやっていることはZeroMemory(&wc, sizeof(WNDCLASS));ですね
これはwsのアドレスのポインタ(&ws)からWNDCLASSの大きさだけ(sizeof(WNDCLASS))メモリを0で埋めるということです
アドレスのポインタとはとりあえずメモリの場所と思っていただければよいと思います
そして次はwc.style = CS_HREDRAW | CS_VREDRAW;です
スタイルはウィンドウのサイズが水平方向に変更されたときに再描画する(CS_HREDRAW)
と垂直方向に変更されたときに再描画する(CS_VREDRAW)の論理和です
ウィンドウプロシージャは後に回します
cbClsExtraおよびcbWndExtraは使わないので0です
インスタンスハンドルはWinMain()の引数で受け取ったhInstanceを設定します
アイコンおよびカーソルは標準のものを設定しました
背景ブラシは白(HBRUSH)(COLOR_WINDOW + 1)としました
(HBRUSH)GetStockObject(BLACK_BRUSH)とすれば黒になります
メニュー名は使わないので無し(NULL)にしました
クラス名はとりあえずWindowsとしました
そしてif(!RegisterClass(&wc)) return 0;と出て来ました
RegisterClass(&wc)) はウィンドウクラスを登録します
できなければreturn 0;(0を返すこの場合終了)します
ウインドウクラスの登録が終わりました
説明は次に続きます