#include //------------------------------------------------------------- // メッセージ処理用コールバック関数 // 引数 // hWnd : ウィンドウハンドル // msg : メッセージ // wParam : メッセージの最初のパラメータ // lParam : メッセージの2番目のパラメータ // 戻り値 // メッセージ処理結果 //------------------------------------------------------------- LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) { switch (msg) { case WM_KEYDOWN: // キーが押されたときの処理 if (wParam == VK_ESCAPE) // ESCキーqが押されたら終了 { //DestroyWindow関数は、WM_DESTROYメッセージを発生させる DestroyWindow(hWnd); } break; case WM_CLOSE: int id; id = MessageBox(hWnd, TEXT("終了してもよろしいですか"), TEXT("確認"), MB_YESNO | MB_ICONQUESTION); if (id == IDYES) //DestroyWindow関数は、WM_DESTROYメッセージを発生させる DestroyWindow(hWnd); break; case WM_DESTROY: PostQuitMessage(0); // アプリケーションを終了する break; default: return DefWindowProc(hWnd , msg , wParam , lParam); } return 0; } //------------------------------------------------------------- // アプリケーションのエントリポイント // 引数 // hInstance : 現在のインスタンスのハンドル // hPrevInstance : 以前のインスタンスのハンドル // lpCmdLine : コマンドラインパラメータ // nCmdShow : ウィンドウの表示状態 // 戻り値 // 成功したら0以外の値 //------------------------------------------------------------- int WINAPI WinMain( HINSTANCE l_hInst, HINSTANCE hPrevInstance, PSTR lpCmdLine, int nCmdShow ) { HWND hWnd; MSG msg; // マルチ・バイト文字をUNICODEに変換 WCHAR l_wcAppName[MAX_PATH] = L"aaa"; // ウィンドウクラスの初期化 WNDCLASSEX wndclass = { sizeof(WNDCLASSEX), // この構造体のサイズ NULL, // ウインドウのスタイル(default) WndProc, // メッセージ処理関数の登録 0, // 通常は使わないので常に0 0, // 通常は使わないので常に0 l_hInst, // インスタンスへのハンドル LoadIcon(l_hInst, L"MYICON"), // アイコン LoadCursor( NULL, IDC_ARROW), // カーソルの形 (HBRUSH)GetStockObject(WHITE_BRUSH), // 背景 NULL, // メニューなし l_wcAppName, // クラス名の指定 NULL // 小アイコン(なし) }; if( !RegisterClassEx(&wndclass) ) { MessageBoxA( NULL, "ウィンドウクラスの作成\nに失敗しました", NULL, MB_OK ); return 0; } hWnd = CreateWindow( l_wcAppName, l_wcAppName, WS_OVERLAPPEDWINDOW ^ WS_MAXIMIZEBOX ^ WS_THICKFRAME | WS_VISIBLE, CW_USEDEFAULT, //CW_USEDEFAULTでもOK CW_USEDEFAULT, //CW_USEDEFAULTでもOK 640, 480, NULL, NULL, l_hInst, NULL ); while(GetMessage(&msg, NULL, 0, 0) > 0) { TranslateMessage(&msg); DispatchMessage(&msg); } return (int)msg.wParam; }