목록Windows (3)
cyphen156

우선 프로젝트 코드를 정리하자. 다음과 같이 정리하면 깔끔해진다.+++pch.h 관련 설정 추가// dontstarveCopy.cpp : 애플리케이션에 대한 진입점을 정의합니다.//#include "pch.h"#include "framework.h"#include "dontstarveCopy.h"#define MAX_LOADSTRING 100#define WSREGULAR 5000#define WSLARGE 10000// 전역 변수:HINSTANCE hInst; // 현재 인스턴스입니다.HWND hWnd; // 메인 윈도우WCHAR szTitle[MAX_LOADSTRING]; ..

현재 윈도우 기본 메세지 루프를 사용하고 있다. 이 방식의 최대 단점은 사용자 입력이 윈도우에서 발생해야만 프로그램이 동작하고, 그 외에는 무한정 대기하고 있다는 것이다. 잠깐 생각해보면 백그라운드 작업시 돌아가지 않는 게임을 생각할 수 있다. 윈도우가 최상단에서 실행되고 있어 무효화 영역이 발생하지 않을때만 프로그램이 동작하고, 조금이라도 무효화 영역이 발생하거나, 백그라운드로 넘어가면 일시정지되어 프로그램이 멈추는 것들을 생각하면 될 것같다.최종 완성된 결과물은 다음과 같이 동작한다. 이러한 원인이 발생되는 함수가 다음 반복문에 존재하는 조건 GetMessage()함수의 사용때문이다.// 기본 메시지 루프입니다:while (GetMessage(&msg, nullptr, 0, 0)){ if (!..

맨 처음에는 png를 그대로 쓰고싶어서 gdi+를 통해 작업하려고 했는데 왜인지 모르게 이미지가 로드되지 않더라. 그래서 그냥 개별적으로 파이썬 스크립트를 통해 ktech룰 통해.png로 변환된 latex파일을 다시 bmp파일로 변환해주는 스크립트를 통해 자동화해서 리소스를 죄다 추출했더니 용량이 1.5기가쯤 되더라. 아마 애니메이션을 표현하기 위한 scml파일도 포함되어 있어서 그럴거다. 어쨋든 주말동안 했던 내용을 정리하자면 WM_KEYDOWN 케이스문을 작성하여 개별적으로 키입력 동작 메세지 발생시 hBitMap 객체가 좌표이동을 하도록 하고, invalidateRect() 함수를 통해 무효화 영역을 강제로 발생시켜 다시 그리도록 지시했다.우선 화면에 표시될 오브젝트 한개의 좌표를 저장할 정적 변수..