戻る 第3章 Windowを作る。 次へ

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

ここからは実際にプログラムをしながら説明していきます。
せっかちな人は上にプログラムを置いてますので試してください。

さて,Windowsと言うくらいだからまずWindowを作らないと話になりません。
どんなものかわかりやすいように画面写真を載せます。

これでもWindowとしての基本的な機能は持ってます。
(最大化・最小化・閉じるのボタン・サイズ変更可能)

下のソースを見てください。
Windowを出すだけのプログラムのソースです。
少し長いと思うかもしれませんがこれがWindowsプログラムの雛型なので
今後何を作るときにでも使えます。

#include <windows.h>//ウインドウズのプログラムには必須!



WinProc関数:ウインドウプロシージャ
メッセージを受け取る場所です。

LRESULT CALLBACK WinProc(HWND hwnd, UINT msg,WPARAM wP, LPARAM lP)
{
	static HINSTANCE hInst;
	static	BOOL	mo;

	switch(msg){
		case WM_DESTROY:
			PostQuitMessage(0);
			break;
		default:
		return DefWindowProc(hwnd, msg, wP, lP);
	}
	return 0;
}
ここのSwitchでいろいろなメッセージを受け取ることが出来ます。
今回は何もしないので終了処理のメッセージだけ受け取っています。

Winmain関数:DOSでのmainに相当します
ここから実行されます

int WINAPI WinMain(HINSTANCE hThisInst, HINSTANCE hPrevInst, 
LPSTR lpszArgs, int nWinMode)
{
	HWND hwnd;
	MSG msg;
	WNDCLASSEX wcl;
	char szWinName[] = "new_win";

	wcl.cbSize = sizeof(WNDCLASSEX); 
	wcl.hInstance = hThisInst;//このインスタンスのハンドル
	wcl.lpszClassName = szWinName;//ウィンドウクラスの名前
	wcl.lpfnWndProc = WinProc; //ウィンドウプロシージャ関数
	wcl.style = 0; //デフォルトのスタイル

	wcl.hIcon = LoadIcon(NULL, IDI_APPLICATION);//標準アイコン
	wcl.hIconSm = LoadIcon(NULL, IDI_WINLOGO); //小さいアイコン
	wcl.hCursor = LoadCursor(NULL, IDC_ARROW); //カーソルのスタイル

	wcl.lpszMenuName = NULL; //メニューバーを使用しない
	wcl.cbClsExtra = 0; //そのほかの情報は必要ない
	wcl.cbWndExtra = 0; //そのほかの情報は必要ない

	//ウィンドウの背景を白にする
	wcl.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH); 

	if(!RegisterClassEx(&wcl)) return 0;

	hwnd = CreateWindow(szWinName,
	"ぶーにゃんのSDKプログラム",//タイトルバーに表示される文字
	WS_OVERLAPPEDWINDOW,
	100, 100,//初期x,y座標
	240, 160,//Windowの大きさ(x、y)
	HWND_DESKTOP, //親ウィンドウはない
	NULL, //メニューを使用しない
	hThisInst, //プログラムのこのインスタンスのハンドル
	NULL //このほかの引数は必要ないのでNULL指定
	);

	ShowWindow(hwnd, nWinMode);//Windowを表示する
	UpdateWindow(hwnd);

	while(GetMessage(&msg, NULL, 0, 0))
	{
		TranslateMessage(&msg); 
		DispatchMessage(&msg); 
	}
	return msg.wParam;
}
こちらはWindowの定義と表示をしています。
どのような種類でどれくらいの大きさでどこに表示するかを指定しています。
復習問題: 1.タイトルバーに表示される文字を変えてみましょう。 2.Windowのサイズを変えてみましょう。