APIを使用してポップアップ・ウインドウを作成


APIでウインドウを作成する、簡単な例としてポップアップ・ウインドウを作ってみました。
(備考:ポップアップ・ウインドウは、ダイアログなどに使用します。)


#include < windows.h >


//ウィンドウ・プロシジャー
LRESULT CALLBACK WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	return DefWindowProc(hWnd, uMsg, wParam, lParam);
}


int APIENTRY WinMain(HINSTANCE hInst, HINSTANCE hInstPrev, LPSTR lpCmdLine, int nCmdShow)
{
    MSG msg;
    WNDCLASSEX wc;
    HWND hWnd;

    //ウィンドウ・プロシジャーを登録
    ZeroMemory(&wc, sizeof(wc));
    wc.cbSize           = sizeof(WNDCLASSEX); 
    wc.lpfnWndProc      = WindowProc;
    wc.hInstance        = hInst;
    wc.hCursor          = LoadCursor(NULL, MAKEINTRESOURCE(IDC_ARROW));
    wc.hbrBackground    = (HBRUSH)(COLOR_WINDOWFRAME);
    wc.lpszClassName    = "WNDCLASS";
    RegisterClassEx(&wc);

    //ポップアップ・ウィンドウを作成する
    hWnd = CreateWindowEx(WS_EX_APPWINDOW, 
                "WNDCLASS",
                "ポップアップ・ウインドウ",	//タイトルは、省略可能です。
                WS_POPUPWINDOW | WS_CAPTION,    //WS_POPUPWINDOWを指定(WS_CAPTIONは、気分で付けてみました。)
                0, 0, 640, 480,			//表示位置と大きさは、必ず指定
                NULL,
                NULL,
                hInst,
                NULL);
    ShowWindow(hWnd, nCmdShow);


    //メッセージ・ループ
    while (GetMessage(&msg, NULL, 0, 0)) {
	//仮想キーメッセージを文字メッセージに変換
        TranslateMessage(&msg);

	//ウィンドウプロシージャにメッセージをディスパッチ (送出)
        DispatchMessage(&msg);
    }
    return msg.wParam;
}