본문 바로가기

Enginius/C / C++

[MFC] 그림을 그릴 수 있는 기본적인 프로젝트

MFC를 이용해서 무언가 프로젝트를 진행하고자 할 때, 그 베이스가 될 수 있는 VS프로젝트를 하나 저장해두면 좋을 것 같아서 만들어보았다. 먼저 Visual Studio 2013에서 작성하였음을 밝히는 바이다. 문자 속성은 유니코드이다. 


프로젝트 파일


기능은 다음과 같다. 

1. 프로젝트를 실행시키면 다음과 같은 창이 뜬다. 저 회색이 우리가 몬가 그림을 그릴 공간이라고 보면 된다. 


2. 좌클릭을 하면 해당 위치에 그림을 그릴 수 있다. 별건 아니지만, 뒤에서 나올 zoom과, 화살표로 화면 이동을 고려해서 그리기 때문에 꽤 유용하다. 


3. 마우스 휠을 돌리면 zoom in/out이 된다. 화살표를 누르면 화면이 이동한다. 


4. 이것은 zoom out을 한 화면이다. 


 그외: 모든 알고리즘은 타이머에서 돌아가도록 하였다. 타이머는 invalidate()를 호출해서 OnDraw를 주기적으로 호출하고, 이를 통해 그림을 계속 업데이트한다. 또한 오른쪽 아래에 Start/Stop 버튼이 있는데, Start 상태에선 초록색으로 변한다. 물론 한번 더 누르면 Stop 상태가 되어서 다시 붉은색으로 변한다. 

 마지막으로 왼쪽 아래에 있는 Open Status 버튼을 누르면 창이 뜬다. 거기는 우리가 실시간으로 디버깅을 할 때, 사용할 수 있도록 list box를 넣어놨다. 코드에선 CString으로 디버깅할 내용을 쓴 다음에, 해당 함수에 인자를 넣고 호출하면 추가 모달에서 보여줄 것이다.