「メッセージを受け取ってみる!」の編集履歴(バックアップ)一覧はこちら
「メッセージを受け取ってみる!」(2008/07/24 (木) 00:04:17) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
#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);
}
//C++
#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);
}