본문 바로가기

프로그램언어/C++

윈도우 프로그램기초예제

음과 같은 형태의 윈도우를 만들라.

  • 윈도우 타이틀 바에 '홍길동의 첫 번째 윈도우'라고 나타나게 한다.
  • 윈도우의 배경 색은 검은색으로 한다.
  • 아이콘은 물음표가 되게 한다.
  • 마우스는 대문자 I 모양으로 한다.
  • 윈도우가 나타날 위치는 (200,300)으로 한다.
  • 윈도우의 크기는 600*400이 되게 한다.

 

#include <windows.h>
#include <TCHAR.H>
LRESULT CALLBACK WndProc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam);

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow)
{
    HWND   hwnd;
    MSG   msg;
    WNDCLASS WndClass;
    WndClass.style = CS_HREDRAW | CS_VREDRAW;
    WndClass.lpfnWndProc = WndProc;
    WndClass.cbClsExtra = 0;
    WndClass.cbWndExtra = 0;
    WndClass.hInstance = hInstance;
    WndClass.hIcon = LoadIcon(NULL, IDI_QUESTION);
    WndClass.hCursor = LoadCursor(NULL, IDC_IBEAM);
    WndClass.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);
    WndClass.lpszMenuName = NULL;
    WndClass.lpszClassName = _T("Window Class Name");
    RegisterClass(&WndClass);
    hwnd = CreateWindow(_T("Window Class Name"), _T("홍길동의 첫 번째 윈도우"), WS_OVERLAPPEDWINDOW,
        200, 300, 600, 400, NULL, NULL, hInstance, NULL);
    ShowWindow(hwnd, nCmdShow);
    UpdateWindow(hwnd);
    while (GetMessage(&msg, NULL, 0, 0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
    return (int)msg.wParam;
}

LRESULT CALLBACK WndProc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
{
    switch (iMsg)
    {
    case WM_CREATE:
        break;
    case WM_DESTROY:
        PostQuitMessage(0);
        break;
    }
    return DefWindowProc(hwnd, iMsg, wParam, lParam);
}

 

'프로그램언어 > C++' 카테고리의 다른 글

c++ 표준 라이브러리 array  (0) 2022.07.06
스레드  (0) 2021.01.14
윈도우 소켓2  (0) 2021.01.13
윈도우 소켓1  (0) 2021.01.12
파일 입출력2  (0) 2021.01.11