ウィンドウプロシージャー!

「ウィンドウプロシージャー!」の編集履歴(バックアップ)一覧はこちら

ウィンドウプロシージャー!」(2008/07/24 (木) 00:43:50) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

#include <windows.h> //定数いろいろ const LPCTSTR WIN_CLASS_NAME = TEXT("RDD"); const LPCTSTR WINDOW_NAME = TEXT("RozenMaidenDuoDectet!!"); //関数のプロトタイプ宣言 HWND createWindow(HINSTANCE hInstance, LPCTSTR className); int resisterWindowClass(HINSTANCE hInstance, LPCTSTR className); LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp); ///////////////////////////////////////////////////////////////////////// // エントリポイントー ///////////////////////////////////////////////////////////////////////// int WINAPI WinMain(HINSTANCE hInstance, //このプログラムのIDみたいなもの、よく使う HINSTANCE hPrevInstance, //使わない PSTR lpCmdLine, //使わない int nCmdShow) //いらない { HWND hWnd; //ウィンドウのIDを保持するとこ MSG msg; //メッセージを保持するとこ if(!resisterWindowClass(hInstance,WIN_CLASS_NAME)) return 0; if((hWnd = createWindow(hInstance, WIN_CLASS_NAME)) == NULL) return 0; while(1){ GetMessage(&msg, NULL, 0, 0); //MSG構造体にメッセージをゲットだぜ DispatchMessage(&msg); //メッセージをウィンドウプロシージャにお裾分けする } return 0; } //////////////////////////////////////////////////////////////////////////// // ウィンドウプロシージャー! //////////////////////////////////////////////////////////////////////////// LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp){ switch(msg){ case WM_DESTROY: MessageBox(NULL, TEXT("続きは製品版で!"), TEXT("RDD"), MB_ICONINFORMATION); PostQuitMessage(0); return 0; } return DefWindowProc(hWnd, msg, wp, lp); //デフォルトのも呼ばないと普通のウィンドウの働きをしない } HWND createWindow(HINSTANCE hInstance, LPCTSTR className){ return CreateWindow(className, WINDOW_NAME, WS_OVERLAPPEDWINDOW | WS_VISIBLE, CW_USEDEFAULT, CW_USEDEFAULT, //初期位置x,y 640, 480, //横幅、縦幅 NULL, NULL, hInstance, NULL); } int resisterWindowClass(HINSTANCE hInstance, LPCTSTR className){ WNDCLASS winc; winc.style =CS_HREDRAW | CS_VREDRAW; winc.lpfnWndProc = WndProc; //自分で作ったウィンドウプロシージャの関数ポインタを指定する winc.cbClsExtra = winc.cbWndExtra = 0; winc.hInstance = hInstance; winc.hIcon = LoadIcon(NULL, IDI_APPLICATION); winc.hCursor = LoadCursor(NULL, IDC_ARROW); winc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); winc.lpszClassName = className; //ウィンドウクラスを登録して使えるようにします return RegisterClass(&winc); }
//C++ #include <windows.h> //定数いろいろ const LPCTSTR WIN_CLASS_NAME = TEXT("RDD"); const LPCTSTR WINDOW_NAME = TEXT("RozenMaidenDuoDectet!!"); //関数のプロトタイプ宣言 HWND createWindow(HINSTANCE hInstance, LPCTSTR className); int resisterWindowClass(HINSTANCE hInstance, LPCTSTR className); LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp); ///////////////////////////////////////////////////////////////////////// // エントリポイントー ///////////////////////////////////////////////////////////////////////// int WINAPI WinMain(HINSTANCE hInstance, //このプログラムのIDみたいなもの、よく使う HINSTANCE hPrevInstance, //使わない PSTR lpCmdLine, //使わない int nCmdShow) //いらない { HWND hWnd; //ウィンドウのIDを保持するとこ MSG msg; //メッセージを保持するとこ if(!resisterWindowClass(hInstance,WIN_CLASS_NAME)) return 0; if((hWnd = createWindow(hInstance, WIN_CLASS_NAME)) == NULL) return 0; while(1){ GetMessage(&msg, NULL, 0, 0); //MSG構造体にメッセージをゲットだぜ DispatchMessage(&msg); //メッセージをウィンドウプロシージャにお裾分けする } return 0; } //////////////////////////////////////////////////////////////////////////// // ウィンドウプロシージャー! //////////////////////////////////////////////////////////////////////////// LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp){ switch(msg){ case WM_DESTROY: MessageBox(NULL, TEXT("続きは製品版で!"), TEXT("RDD"), MB_ICONINFORMATION); PostQuitMessage(0); return 0; } return DefWindowProc(hWnd, msg, wp, lp); //デフォルトのも呼ばないと普通のウィンドウの働きをしない } HWND createWindow(HINSTANCE hInstance, LPCTSTR className){ return CreateWindow(className, WINDOW_NAME, WS_OVERLAPPEDWINDOW | WS_VISIBLE, CW_USEDEFAULT, CW_USEDEFAULT, //初期位置x,y 640, 480, //横幅、縦幅 NULL, NULL, hInstance, NULL); } int resisterWindowClass(HINSTANCE hInstance, LPCTSTR className){ WNDCLASS winc; winc.style =CS_HREDRAW | CS_VREDRAW; winc.lpfnWndProc = WndProc; //自分で作ったウィンドウプロシージャの関数ポインタを指定する winc.cbClsExtra = winc.cbWndExtra = 0; winc.hInstance = hInstance; winc.hIcon = LoadIcon(NULL, IDI_APPLICATION); winc.hCursor = LoadCursor(NULL, IDC_ARROW); winc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); winc.lpszClassName = className; //ウィンドウクラスを登録して使えるようにします return RegisterClass(&winc); }

表示オプション

横に並べて表示:
変化行の前後のみ表示:
ツールボックス

下から選んでください:

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