MFC 그리기 모드, 속성함수
1. DC 는 내부적으로 다양한 속성을 가지며, 이 속성에 따라 GDI 출력 함수의 결과가 다르다.
속성 |
초기값 |
속성을 얻는 함수 |
속성을 변경하는 함수 |
문자색상 |
검정색 |
GetTextColor() |
SetTextColor() |
배경색상 |
흰색 |
GetBkColor() |
SetBkColor() |
배경모드 |
OPAQUE (불투명) |
GetBkMode() |
SetBkMode() |
매핑모드 |
MM_TEXT |
GetMapMode() |
SetMapMode() |
그리기모드 |
R2_COPTPEN |
GetROP2() |
SetROP2() |
현재위치 |
(0, 0) |
GetCurrentPosition() |
MoveTo() |
펜 |
BALACK_PEN |
SelectObject() |
SelectObject() |
브러시 |
WHITE_BRUSH |
SelectObject() |
SelectObject() |
폰트 |
SYSTEM_FONT |
SelectObject() |
SelectObject() |
비트맵 |
- |
SelectObject() |
SelectObject() |
팔레트 |
- |
SelectPalette() |
SelectPalette() |
영역 |
- |
SelectObject() |
SelectObject() |
- 그림이나 문자 출력할때 배경모드는 OPAQUE (불투명, DC에 설정된 배경색사용), TRANSPARENT(투명) 가 있다.
1
2
3
4
5
6
7
8
9
10 |
void CMFCApplication3View::OnPaint()
{
CPaintDC dc(this); // device context for painting
dc.SelectStockObject(LTGRAY_BRUSH);
CRect rect;
GetClientRect(&rect);
dc.Rectangle(&rect);
dc.SetBkMode(TRANSPARENT);
dc.TextOutW(50, 50, CString("Hello"));
} |
cs |
배경모드 : TRANSPARENT |
배경모드 : OPAQUE |
|
|
2. 그리기 모드
그림을 그릴때 사용하는 색상이 스크린의 원래 색상과 섞이는 방법을 정의한다.
그리기모드 |
연산 |
그리기모드 |
연산 |
R2_NOP |
D = D |
R2_NOT |
D = ~D |
R2_BLACK |
D = BALCK |
R2_WHITE |
D = WHITE |
R2_COPYPEN |
D = S |
R2_NOTCOPYPEN |
D = ~S |
R2_MERGEPENNOT |
D = ~D | S |
R2_MASKPENNOT |
D = ~D & S |
R2_MERGENOTPEN |
D = ~S | D |
R2_MASKNOTPEN |
D = ~S & D |
R2_MERGEPEN |
D = D | S |
R2_NOTMERGEPEN |
D = ~D | S |
R2_MASKPEN |
D = D & S |
R2_NOTMASKPEN |
D = ~(D | S) |
R2_XORPEN |
D = S ^ D |
R2_NOTXORPEN |
D + ~(S ^ D) |
D : Destination, S : Source