일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 미디언 필터링
- 딥러닝 공부
- 파이토치
- Pytorch Lecture
- c언어
- 모두의 딥러닝
- 골빈해커
- 파이토치 강의 정리
- 영상처리
- c++공부
- TensorFlow
- 컴퓨터 비전
- pytorch zero to all
- 케라스 정리
- pytorch
- 해리스 코너 검출
- 파이토치 김성훈 교수님 강의 정리
- tensorflow 예제
- c언어 정리
- object detection
- c++
- 딥러닝
- MFC 프로그래밍
- 딥러닝 스터디
- 팀프로젝트
- C언어 공부
- 모두의 딥러닝 예제
- 김성훈 교수님 PyTorch
- matlab 영상처리
- 가우시안 필터링
- Today
- Total
ComputerVision Jack
[MFC프로그래밍 - Chapter5] 본문
메뉴 만들기
리소스(Resource)
윈도우 프로그램에 사용자 인터페이스를 위한 부분, 메뉴 툴바 비트맵 단축키 등이 있고 주로 화면에 시각적으로 남
메뉴 항목은 주로 리소스 뷰를 이용하여 생성한다. 리소스 메뉴에 필요한 내용을 작성하고 문맥과 ID를 연결하여
핸들링할 수 있게 작업한다.
예제 : 메뉴 선택하고 도형 그리기
메뉴 ID를 토대로 이벤트 추가버튼을 눌러 함수 연동을 한다.
CCmdUI 클래스
메뉴의 각 항목을 수정하고 싶을 때 사용하는 클래스, 메뉴항 목을 변경 시킬 때 사용한다.
예제 : 메뉴 항목에 체크 표시 나타내기
메세지 형식으로 UPDATE_COMMAND_UI를 선택한다.
예제 : 글상자 그리기 메뉴 항목 추가하기
단축키 설정하기
메뉴를 이용할 때 단축키를 신경 써야한다.
메뉴 이름에 \t를 사용하여 오른쪽 정렬되게한다.
이제 단축키를 실제적으로 메뉴와 연동하는 작업이 필요하다.
비트맵
비트맵(Bitmap)
비트맵 이미지 또한 메뉴나 단축키와 마찬가지로 리소스에 속한다. 생성하고 사용하는 방법이 일반 리소스와 같다.
1.비트맵 가져오기
그림을 비주얼 스튜디오의 비트맵으로 불러온다.
2.비트맵 로드하기
비트맵의 ID와 CBitmap::LoadBitmap() 함수를 이용하여 CBitmap변수 bitmap에 브트맵을 로드한다.
3.화면 얻기
OnDraw()에 전달된 매개변수 pDC를 이용하거나 CClientDC객체를 만들어 출력에 대한 디바이스 콘텍스트를 얻는다
4.메모리 디바이스 콘텍스트 만들기
CDC::CreateCompatibleDC() 함수를 이용하여 디바이스 콘텍스트 dc와 호환되는 메모리 디바이스 콘텍스트인 memdc를 만든다. 도형이나 텍스트는 dc에 바로 그리거나 출력하지만 비트맵은 메모리 디바이스 콘텍스트 이용한다.
5.사용할 비트맵 선택하기
CDC::SelectObject() 함수를 이용하여 bitmap에 로드된 이미지를 선택하고 메모리 디바이스 콘텍스트 memdc 설정
6.비트맵을 화면에 전송한다.
CDC::BitBlt()나 CDC::StretchBlt() 함수를 이용하여 memdc의 그림을 디바이스 콘텍스트 dc에 옮긴다.
dc.BitBlt() 인자
- SRCPAINT : 배경색과 그림색상 OR연산
- SRCAND : 배경색과 그림색상 AND 연산
- SRCCOPY : 그림 색상 그대로 출력하기
레스터 연산
BitBlt() 함수를 이용하면 직사각형 모양을 출력하기 때문에 object만 따로 출력하기 어렵다.
마지막 인자를 사용하여 레스터 연산을 적용해 출력해야 한다.
예제 : 레스터 연산을 이용하여 캐릭터 이미지 출력하기
- 배경 이미지에 마스크 이미지를 AND연산으로 그린다.
- 마스크 이미지가 배경에 나타나면 마스크 이미지와 같은 위치에 캐릭터 이미지를 OR연산하여 출력한다.
'Image Processing > MFC Programming' 카테고리의 다른 글
[MFC프로그래밍 - Chapter7] (0) | 2020.02.26 |
---|---|
[MFC프로그래밍 - Chapter6] (0) | 2020.02.25 |
[MFC프로그래밍 -Chapter4] (0) | 2020.02.21 |
[MFC프로그래밍 - Chapter3] (1) | 2020.02.18 |
[MFC프로그래밍 - Chapter2] (0) | 2020.02.12 |