김성엽님의 Windows 프로그래밍 이야기를 보고 정리한 글입니다.
Win32 프로그래밍의 시작
새 프로젝트 만들기에서 Windows 데스크톱 마법사 선택하고 다음!
프로젝트 이름 정해주고 애플리케이션 종류는 데스크톱 애플리케이션으로 하고 추가 옵션은 미리 컴파일된 헤더를 선택한다.
// MyFirstWin32.cpp : 애플리케이션에 대한 진입점을 정의합니다.
//
#include "pch.h"
#include "framework.h"
LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
if (uMsg == WM_DESTROY) PostQuitMessage(0);
return DefWindowProc(hWnd, uMsg, wParam, lParam);
}
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int mCmdShow)
{
WNDCLASS wc;
wchar_t my_class_name[] = L"tipsoft";
wc.cbClsExtra = NULL;
wc.cbWndExtra = NULL;
wc.hbrBackground = (HBRUSH)COLOR_WINDOW;
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wc.hInstance = hInstance;
wc.lpfnWndProc = WndProc;
wc.lpszClassName = my_class_name;
wc.lpszMenuName = NULL;
wc.style = CS_HREDRAW | CS_VREDRAW;
RegisterClass(&wc);
HWND hWnd = CreateWindow(my_class_name, L"www.tipssoft.com",
WS_OVERLAPPEDWINDOW, 100, 90, 400, 350, NULL, NULL, hInstance, NULL);
ShowWindow(hWnd, mCmdShow);
UpdateWindow(hWnd);
MSG msg;
while (GetMessage(&msg, NULL, 0, 0)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
그리고 이렇게 코드를 써주면 끝! 실행을 시키면 작고 귀여운 윈도우가 하나 뜨는 것을 볼 수 있다.ㅋㅋ
코드 설명
1. WndProc: Window Procedure로 메시지를 처리하는 함수
2. WinMain: 윈도우 클래스를 등록
3. CreateWindow: 윈도우를 생성하는 코드
4. while문: 메시지를 번역하고 실행하는 코드
'Windows 프로그래밍' 카테고리의 다른 글
GDI 시스템의 이해 (0) | 2020.05.10 |
---|---|
Windows 운영체제는 화면에 그림을 어떻게 출력하는가? (0) | 2020.05.09 |
자신만의 Window를 사용하려면 자신만의 'Window Class'를 만들자 (0) | 2020.05.07 |
기본적으로 알아야 할 용어와 개념에 대하여 (0) | 2020.05.07 |