メッセージを受け取ってみる!

#include <windows.h>
 
//関数のプロトタイプ宣言
HWND createWindow(HINSTANCE hInstance, LPCTSTR className);
int resisterWindowClass(HINSTANCE hInstance,  LPCTSTR className);
 
//クラス名とウィンドウ名を定数化してみた
const LPCTSTR WIN_CLASS_NAME = TEXT("RDD");
const LPCTSTR WINDOW_NAME = TEXT("RozenMaidenDuoDectet!!");
 
 
/////////////////////////////////////////////////////////////////////////
// エントリポイントー
/////////////////////////////////////////////////////////////////////////
int WINAPI WinMain(HINSTANCE hInstance,		//このプログラムのIDみたいなもの、よく使う
				   HINSTANCE hPrevInstance, //使わない
				   PSTR lpCmdLine,			//使わない
				   int nCmdShow)			//いらない
{
	HWND hWnd;		//ウィンドウのIDを保持するとこ
	MSG msg;		//MGSじゃありません。メッセージを保持するとこ
 
	if(!resisterWindowClass(hInstance,WIN_CLASS_NAME))
		return 0;
 
	if((hWnd = createWindow(hInstance, WIN_CLASS_NAME)) == NULL)
		return 0;
 
	while(1){
		//MSG構造体にメッセージをゲットだぜ
		GetMessage(&msg,	//メッセージを格納するMSG構造体を指定
					NULL,	//メッセージを受け取るウィンドウのハンドラ、NULLで全てのウィンドウを指定
					0,		//受け取るメッセージの最小時、0指定で無効
					0);		//受け取るメッセージの最大値、0指定で無効
 
		if(msg.message == WM_LBUTTONUP) //メッセージが「マウスの左ボタンあーげた!」 だったらbreak
			break;
		DispatchMessage(&msg); //メッセージをウィンドウプロシージャにお裾分けする
	}
 
	MessageBox(NULL, TEXT("続きは製品版で!"), TEXT("RDD"), MB_ICONINFORMATION);
 
	return 0;
}
 
 
 
HWND createWindow(HINSTANCE hInstance, LPCTSTR className){
	return CreateWindow(className,
						WINDOW_NAME,
						WS_OVERLAPPEDWINDOW | WS_VISIBLE, //ShowWindow関数を削除したのでWS_VISIBLEを指定
						100, 100,	//初期位置x,y
						640, 480,	//横幅、縦幅
						NULL, NULL,
						hInstance,
						NULL);
}
 
 
int resisterWindowClass(HINSTANCE hInstance, LPCTSTR className){
	WNDCLASS winc;	//ウィンドウのオプションを設定するためのクラス
 
	winc.style			=CS_HREDRAW | CS_VREDRAW;				//ウィンドウのスタイルを記述
	winc.lpfnWndProc	= DefWindowProc;						//ウィンドウプロシージャを登録、関数ポインタで渡してます
	winc.cbClsExtra		= winc.cbWndExtra = 0;					//追加領域の設定、普通使わない
	winc.hInstance		= hInstance;							//インスタンスハンドルを渡してあげましょう
	winc.hIcon			= LoadIcon(NULL, IDI_APPLICATION);		//アイコンを登録、NULLでシステム定義
	winc.hCursor		= LoadCursor(NULL, IDC_ARROW);			//カーソルを登録
	winc.hbrBackground	= (HBRUSH)GetStockObject(WHITE_BRUSH);	//背景色を塗るブラシのハンドルを渡す。
	winc.lpszClassName	= className;							//このウィンドウクラスの名前
	//ウィンドウクラスを登録して使えるようにします
	return RegisterClass(&winc);
}
 

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2008年07月24日 00:04
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。