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_OVERLAPPEDWINDOW,          //WS_OVERLAPPEDWINDOWを指定します。タイトルバーが付きます。
                CW_USEDEFAULT,
		CW_USEDEFAULT,
		CW_USEDEFAULT,
		CW_USEDEFAULT,
                NULL,
                NULL,
                hInst,
                NULL);
    ShowWindow(hWnd, nCmdShow);


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

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