# 메모리DC와 화면DC
ㆍ 윈도우가 있다 = DC가 bmp를 가지고있다.
ㆍ 메모리dc는 화면 출력이 목적이 아니고 비트맵을 로딩해서 가지게 할 목적으로 있는 dc이다.
ㆍ BitBlt : 위 그림의 과정이라고 생각하자... 메모리 DC에 있는 비트 데이터들을 화면DC로 전송하는 함수.
ㆍ 메모리DC와 화면DC를 합성할 때 특수한 처리들이 가능 (특수한 케이스가 아닌 이상 덮어쓴다)
ㆍ dc에관한건 winAPI에서 GDI쓴거와 크게 다를거 없다.
ㆍ 위에 과정들이 코드로 되어있는 것
ㆍ GetBitmap을 통해 이 비트맵 이미지의 정보를 뽑아올 수 있다.
ㆍ 옵션을 통해 이미지의 옵션을 변경할 수 있다. 지금은 그냥 카피, 다양한 옵션이있다
# 이미지 출력API
ㆍ StratchBlt은 웬만하면 사용하지 않는것을 추천, 매우 이상하게됨
- 비트맵 이미지는 원본 그대로 사용하자
ㆍ TransparentBlt는 종종 쓸일이 있지만 막상 쓰면 좀 불편하다, RGB값으로 하나만 받기 때문 RGB(0,0,0)으로 하면 RGB(0,0,1)은 처리되지 않음
# CImage
ㆍ resourse에 넣는건 컴파일에서 다끝난다.... 런타임에 외부 파일을 열고싶다? -> CImage를 사용하자.
ㆍ기본적으로 bmp 32bit이미지는 ARGB인데 이거는 vs에서 인식을 못한다. (투명이 없는 24bit까지만 됨)
ㆍ 꼭 resourse파일에서 투명이미지를 다루고 싶다면.ico 파일을 이용해야함 그때 사용되는게 CImageList클래스다
-> 이 클래스엔 드래그and드롭에 관련된 옵션도 있다
-> 결국 CImage도 내부적으로는 GDI+를 사용한다
'MFC > MFC클라이언트' 카테고리의 다른 글
윈도우 영역 / 깜빡임방지 (더블버퍼) (0) | 2025.03.17 |
---|---|
GDI 매핑 모드 (0) | 2025.03.17 |
글꼴과 문자열 (0) | 2025.03.10 |
렌더링 시점과 DC (0) | 2025.03.10 |
윈도우 그래픽 시스템 (0) | 2025.03.10 |