Win API
-
더블 버퍼링 활용 - 애니메이션Win API/6. Double Buffering 2021. 4. 5. 10:41
소스 파일은 아래의 내용을 가지고 와서 구현을 할 것이다. designatedroom87.tistory.com/426?category=937686 더블 버퍼링의 기초 이미지 리소스와 소스 파일은 밑에서 작업한 것을 그대로 가지고 온다. designatedroom87.tistory.com/425 활용 - 애니메이션 애니메이션으로 쓸 이미지 파일은 아래의 사이트에서 구할 수 있다. 아래의 designatedroom87.tistory.com 애니메이션에 대한 처리에 하기 전에, 키 입력을 통해 플레이어를 이동 시켜 보자. 키 입력에 대한 처리는 WinMain 함수의 while 문에서 처리를 한다. BitBlt 함수에서 플레이어에 대한 정보로 g_hBackBufferDC에 저장한다. 플레이어 비트맵 이미지에서 ..
-
더블 버퍼링의 기초Win API/6. Double Buffering 2021. 4. 5. 09:55
이미지 리소스와 소스 파일은 밑에서 작업한 것을 그대로 가지고 온다. designatedroom87.tistory.com/425 활용 - 애니메이션 애니메이션으로 쓸 이미지 파일은 아래의 사이트에서 구할 수 있다. 아래의 사이트에서 적당한 이미지를 고르도록 하자. www.spriters-resource.com/ The Spriters Resource This page does not work well in port.. designatedroom87.tistory.com 백버퍼를 만드는 순서 (1). 백버퍼에 비어있는 이미지로 초기화. (2). 백 버퍼에 렌더할 데이터들을 렌더한다. (3). 출력 전에 스크린DC에 복사. (4). 모니터에 출력. 일단 기본 적인 더블 버퍼링의 기초 과정을 알아보자. 위의 ..
-
활용 - 애니메이션Win API/5. Bitmap 2021. 4. 4. 18:23
애니메이션으로 쓸 이미지 파일은 아래의 사이트에서 구할 수 있다. 아래의 사이트에서 적당한 이미지를 고르도록 하자. www.spriters-resource.com/ The Spriters Resource This page does not work well in portrait mode on mobile. Please rotate your device. www.spriters-resource.com 애니메이션으로 쓸 캐릭터는 아래와 같다. 왼쪽을 바라보는 IDLE 그림이 없네요.. 그리고 아래는 배경화면으로 쓸 이미지이다. 프로젝트 폴더에 2개의 비트맵 이미지 파일을 저장한다. 아래의 "리소스 추가" 창에서 Bitmap을 선택하고 "가져오기"를 선택하고 이 프로젝트 폴더에 있는 2개의 비트맵 이미지를 모두..
-
비트맵을 윈도우 창에 불러오기Win API/5. Bitmap 2021. 4. 4. 16:01
개발 환경은 Visual Studio 2008 이번에 진행할 내용은 아래의 윈도우 창을 띄우는 기본 소스를 바탕으로 구현을 할 것이다. designatedroom87.tistory.com/122?category=892369 프로젝트 생성 및 윈도우 창 띄우기 Visual Studio 2019를 실행시킨다. 그리고 새 프로젝트 만들기를 선택한다. Windows 데스크톱 마법사를 선택한다. 적당한 프로젝트 이름을 정하고 만들기를 선택한다. 애플리케이션 종류는 데스크톱 애 designatedroom87.tistory.com 불러올 비트맵 이미지를 아래와 같이 프로젝트 폴더로 가지고 온다. 불러올 비트맵 이미지의 이름은 Bitmap이다. 그리고 솔루션 탐색기에서 현재 프로젝트의 리소스 파일을 선택하고 우클릭해서..
-
활용 - 그림판 만들기Win API/4. GDI 2021. 4. 2. 22:28
개발 환경은 Visual Studio 2008 아래의 내용에서 마우스를 이용해서 그림 그리는 내용을 가지고 와서 만들 것이다. designatedroom87.tistory.com/420?category=937044 MoveToEx & LineTo 함수를 이용한 선 그리기 개발 환경은 Visual Studio 2008 위의 두 함수를 이용해서 간단한 직선을 그려 보자. 프로그램 실행결과 소스 파일 이번에는 마우스를 활용해서 그림을 그려보자. 마우스가 눌려있는 상태에서 마우스 designatedroom87.tistory.com 아래와 같이 UI를 만들도록 하자. 왼쪽 영역은 그림을 그릴 공간이며, 오른쪽의 각 각의 폰트 정보 리스트 박스에서 목록을 선택하면 그에 맞게 폰트의 정보를 변경하면 된다. 프로그램 ..
-
활용 - 메모장 만들기 ( 자동 개행, 엔터 키, 백 스페이스 바 기능 )Win API/4. GDI 2021. 4. 2. 12:20
개발 환경은 Visual Studio 2008 메모장을 만들기 전에, 아래의 프로그램을 통해 구현의 방향을 잡아보자. 프로그램에 대한 분석은 밑에서 하도록 하자. 분석을 해보자. 이 프로그램의 핵심은 키보드로 부터 문자를 입력받아 화면으로 출력한다. 입력된 키는 str버퍼에 누적되며 누적된 문자열을 WM_PAINT에서 출력하도록 하기 위해 작업 영역을 무효화한다. 이전 입력된 문자열이 누적되어 계속 출력되므로 작업 영역을 지울 필요가 없어 bErase는 FALSE로 주었다. InvalidateRect 호출문을 삭제하면 키보드를 눌러도 화면으로 문자열이 출력되지 않는다. 실행 결과는 아래와 같이 키보드를 누를 때마다 작업 영역이 무효화되며 눌러진 키가 화면으로 출력된다. 내부적인 변화에 의해 화면이 다시 ..
-
OS로부터 실시간으로 현재 시각 얻어오기Win API/4. GDI 2021. 4. 2. 11:58
먼저, 운영체제로부터 현재 시각을 얻어 오는 프로그램을 작성해보자. 시각의 출력은 TextOut 함수를 이용하도록 하자. 소스 파일 그리고 우리는 실시간으로 계속 시간을 얻어와야 하는데, 위의 프로그램에서는 한 번만 시각을 얻어온다. 무언가 계속 동작하라고 하는 키워드가 필요한데, 이는 WM_TIMER라는 메시지를 이용해서 하면 된다. 우선 이 WM_TIMER에 대한 사용법을 알아보자. 예제로 만들어볼 내용은 1초당 WM_TIMER 메시지를 발생시켜 WM_TIMER 메시지의 호출 회수를 출력하는 것이다. 아래는 SetTimer 함수에 대한 설명이다. 아래는 KillTimer 함수에 대한 설명이다. 프로그램 실행결과 소스 파일 위의 내용을 바탕으로 OS로부터 실시간으로 현재 시각을 얻어오는 프로그램을 작성..
-
MoveToEx & LineTo 함수를 이용한 선 그리기Win API/4. GDI 2021. 4. 2. 10:58
개발 환경은 Visual Studio 2008 위의 두 함수를 이용해서 간단한 직선을 그려 보자. 아래는 MoveToEx함수와 LineTo 함수에 대한 설명이다. 프로그램 실행결과 소스 파일 이번에는 마우스를 활용해서 그림을 그려보자. 마우스가 눌려있는 상태에서 마우스를 움직이면 선이 그려지며, 마우스가 눌려있는 상태에서 떼지면 그림 그리는 동작이 끝난다. 쉽게 설명해서 마우스 좌클릭된 상태에서 그림이 그려지고 마우스 좌클릭이 해제되면 그림 그리기가 종료 된다. 여기서 마우스가 좌클릭 상태인지 좌클릭 해제가 된 상태인지를 판단할 변수가 하나 필요한데 bool 변수로 두면 된다. 마우스의 눌림 상태, 이동 상태, 떼짐 상태는 다음의 메시지를 이용하면 된다. WM_LBUTTONDOWN, WM_MOUSEMOV..