戻る 第13章 コントロールの使用
(グループボックス)
次へ

ソース 実行ファイル
sdk13.cpp sdk13.exe

今回はグループボックスです。
コントロールを種類ごとにわかりやすくくくっているあれです。
意外ですがグループボックスはボタンコントロールスタイルで作成します。


#include <windows.h>
HWND	group;
HWND	btn;
HWND	combo;
LRESULT CALLBACK WinProc(HWND hwnd, UINT msg,WPARAM wP, LPARAM lP)
{
	HDC	hdc;
	PAINTSTRUCT ps;
	char str[40];
	switch(msg){
		case WM_CREATE:
			group=CreateWindowEx(0, 
				"BUTTON", //ボタンコントロールクラスを指定 
				caption[i],//項目名にするテキストを入力する
				WS_CHILD|BS_GROUPBOX,//子Window指定 グループボックススタイル指定
				16, 8+i*32,128, 96,//グループボックスのサイズ
				hwnd,
				NULL,
				(HINSTANCE)GetWindowLong(hwnd, GWL_HINSTANCE),
				NULL);
			ShowWindow(group,SW_SHOW);//グループボックスを表示
			//グループボックスの中身を描画
			btn=CreateWindowEx(0,"BUTTON","表示",WS_CHILD,
					16,24,64, 32,group,NULL,//親Windowのハンドルをグループボックスにする
					(HINSTANCE)GetWindowLong(hwnd, GWL_HINSTANCE),NULL);
			ShowWindow(btn,SW_SHOW);
			combo=CreateWindowEx(0,"BUTTON","削除",WS_CHILD,
					16,64,64, 32,group,NULL,//親Windowのハンドルをグループボックスにする
					(HINSTANCE)GetWindowLong(hwnd, GWL_HINSTANCE),NULL);
			ShowWindow(combo,SW_SHOW);
			break;
		case WM_DESTROY:
			PostQuitMessage(0);
			break;
		default:
		return DefWindowProc(hwnd, msg, wP, lP);
	}
	return 0;
}
これで色々なコントロールをすっきりと整理することが出来ますね。
グループボックスの内部に描画する場合は座標はグループボックス
の始点からということに注意してください。