Windows 프로그래밍

Windows 프로그래밍 맛보기와 프로그램 구성 파악하기

최문경 블로그 2020. 5. 9. 10:59
 

김성엽의 Windows 프로그래밍 이야기

기본적으로 Windows 프로그래밍을 배운다는 뜻은 Win32 API를 사용한 응용 프로그램을 만드는 방법에 ...

blog.naver.com

김성엽님의 Windows 프로그래밍 이야기를 보고 정리한 글입니다.

 

 

 

Win32 프로그래밍의 시작

 

Win32 프로그래밍의 시작

: Win32 프로그래밍 관련 전체 목차http://blog.naver.com/tipsware/2210599771931. Win32 프로젝트 생성...

blog.naver.com

새 프로젝트 만들기에서 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문: 메시지를 번역하고 실행하는 코드