MFC-GDI
Windows는 장치 컨텍스트에서 사용할 수있는 다양한 그리기 도구를 제공합니다. 선을 그리는 펜, 내부를 채우는 브러시, 텍스트를 그리는 글꼴을 제공합니다. MFC는 Windows의 그리기 도구에 해당하는 그래픽 개체 클래스를 제공합니다.
그림
장치 컨텍스트는 디스플레이 또는 프린터와 같은 장치의 그리기 속성에 대한 정보를 포함하는 Windows 데이터 구조입니다. 모든 그리기 호출은 선, 도형 및 텍스트를 그리기위한 Windows API를 캡슐화하는 장치 컨텍스트 개체를 통해 이루어집니다.
장치 컨텍스트를 사용하면 Windows에서 장치 독립적 인 그림을 그릴 수 있습니다. 장치 컨텍스트를 사용하여 화면, 프린터 또는 메타 파일에 그릴 수 있습니다.
CDCMFC에서 그리는 가장 기본적인 클래스입니다. CDC 개체는 기본 그리기 단계를 수행하는 멤버 함수와 창의 클라이언트 영역과 연관된 표시 컨텍스트 작업을위한 멤버를 제공합니다.
Sr. No. | 이름 및 설명 |
---|---|
1 | AbortDoc 현재 인쇄 작업을 종료하고 마지막 호출 이후 응용 프로그램이 장치에 기록한 모든 내용을 지 웁니다. StartDoc 멤버 함수. |
2 | AbortPath 장치 컨텍스트의 모든 경로를 닫고 버립니다. |
삼 | AddMetaFileComment 버퍼의 주석을 지정된 확장 형식 메타 파일로 복사합니다. |
4 | AlphaBlend 투명 또는 반투명 픽셀이있는 비트 맵을 표시합니다. |
5 | AngleArc 선 세그먼트와 호를 그리고 현재 위치를 호의 끝점으로 이동합니다. |
6 | Arc 타원형 호를 그립니다. |
7 | ArcTo 타원형 호를 그립니다. 이 기능은 현재 위치가 업데이트된다는 점을 제외하면 Arc와 유사합니다. |
8 | Attach 이 CDC 개체에 Windows 장치 컨텍스트를 연결합니다. |
9 | BeginPath 장치 컨텍스트에서 경로 브래킷을 엽니 다. |
10 | BitBlt 지정된 장치 컨텍스트에서 비트 맵을 복사합니다. |
11 | Chord 현 (타원과 선 세그먼트의 교차점으로 둘러싸인 닫힌 그림)을 그립니다. |
12 | CloseFigure 경로에서 열린 Figure를 닫습니다. |
13 | CreateCompatibleDC 다른 장치 컨텍스트와 호환되는 메모리 장치 컨텍스트를 만듭니다. 메모리에 이미지를 준비하는 데 사용할 수 있습니다. |
14 | CreateDC 특정 장치에 대한 장치 컨텍스트를 만듭니다. |
15 | CreateIC 특정 장치에 대한 정보 컨텍스트를 만듭니다. 이렇게하면 장치 컨텍스트를 만들지 않고도 장치에 대한 정보를 빠르게 얻을 수 있습니다. |
16 | DeleteDC 이 CDC 개체와 연결된 Windows 장치 컨텍스트를 삭제합니다. |
17 | DeleteTempMap 에 의해 호출 CWinAppFromHandle에 의해 생성 된 임시 CDC 개체를 삭제하는 유휴 시간 처리기. 또한 장치 컨텍스트를 분리합니다. |
18 | Detach 이 CDC 개체에서 Windows 장치 컨텍스트를 분리합니다. |
19 | DPtoHIMETRIC 장치 단위를 HIMETRIC 단위. |
20 | DPtoLP 장치 단위를 논리 단위로 변환합니다. |
21 | Draw3dRect 3 차원 직사각형을 그립니다. |
22 | DrawDragRect 드래그 할 때 직사각형을 지우고 다시 그립니다. |
23 | DrawEdge 직사각형의 가장자리를 그립니다. |
24 | DrawEscape 그래픽 장치 인터페이스 (GDI)를 통해 직접 사용할 수없는 비디오 디스플레이의 그리기 기능에 액세스합니다. |
25 | DrawFocusRect 초점을 표시하는 데 사용되는 스타일로 직사각형을 그립니다. |
26 | DrawFrameControl 프레임 컨트롤을 그립니다. |
27 | DrawIcon 아이콘을 그립니다. |
28 | DrawState 이미지를 표시하고 시각적 효과를 적용하여 상태를 나타냅니다. |
29 | DrawText 지정된 사각형에 서식있는 텍스트를 그립니다. |
30 | DrawTextEx 추가 형식을 사용하여 지정된 사각형에 서식있는 텍스트를 그립니다. |
31 | Ellipse 타원을 그립니다. |
32 | EndDoc StartDoc 멤버 함수에 의해 시작된 인쇄 작업을 종료합니다. |
33 | EndPage 페이지가 끝나는 것을 장치 드라이버에 알립니다. |
34 | EndPath 경로 대괄호를 닫고 대괄호로 정의 된 경로를 장치 컨텍스트에 선택합니다. |
35 | EnumObjects 장치 컨텍스트에서 사용할 수있는 펜과 브러시를 열거합니다. |
36 | Escape 애플리케이션이 GDI를 통해 특정 장치에서 직접 사용할 수없는 시설에 액세스 할 수 있도록합니다. 또한 Windows 이스케이프 기능에 액세스 할 수 있습니다. 응용 프로그램에서 만든 이스케이프 호출이 번역되어 장치 드라이버로 전송됩니다. |
37 | ExcludeClipRect 지정된 사각형을 뺀 기존 클리핑 영역으로 구성된 새 클리핑 영역을 만듭니다. |
38 | ExcludeUpdateRgn 창의 업데이트 된 영역을 클리핑 영역에서 제외하여 창의 유효하지 않은 영역 내에 그리는 것을 방지합니다. |
39 | ExtFloodFill 현재 브러시로 영역을 채 웁니다. 보다 많은 유연성을 제공합니다.FloodFill 멤버 함수. |
40 | ExtTextOut 현재 선택된 글꼴을 사용하여 직사각형 영역 내에 문자열을 씁니다. |
41 | FillPath 현재 경로에서 열려있는 Figure를 모두 닫고 현재 브러시 및 다각형 채우기 모드를 사용하여 경로의 내부를 채 웁니다. |
42 | FillRect 특정 브러시를 사용하여 주어진 사각형을 채 웁니다. |
43 | FillRgn 특정 영역을 지정된 브러시로 채 웁니다. |
44 | FillSolidRect 사각형을 단색으로 채 웁니다. |
45 | FlattenPath 선택한 경로의 모든 곡선을 현재 장치 컨텍스트로 변환하고 각 곡선을 일련의 선으로 변환합니다. |
46 | FloodFill 현재 브러시로 영역을 채 웁니다. |
47 | FrameRect 직사각형 주위에 테두리를 그립니다. |
48 | FrameRgn 브러시를 사용하여 특정 영역 주위에 테두리를 그립니다. |
49 | FromHandle 장치 컨텍스트에 대한 핸들이 주어지면 CDC 개체에 대한 포인터를 반환합니다. CDC 개체가 핸들에 연결되어 있지 않으면 임시 CDC 개체가 만들어지고 연결됩니다. |
50 | GetArcDirection 장치 컨텍스트의 현재 호 방향을 반환합니다. |
51 | GetAspectRatioFilter 현재 종횡비 필터에 대한 설정을 검색합니다. |
52 | GetBkColor 현재 배경색을 검색합니다. |
53 | GetBkMode 백그라운드 모드를 검색합니다. |
54 | GetBoundsRect 지정된 장치 컨텍스트에 대해 현재 누적 된 경계 사각형을 반환합니다. |
55 | GetBrushOrg 현재 브러시의 원점을 검색합니다. |
56 | GetCharABCWidths 현재 글꼴에서 주어진 범위에있는 연속 문자의 너비 (논리 단위)를 검색합니다. |
57 | GetCharABCWidthsI 현재 트루 타입 글꼴에서 지정된 범위에있는 연속 글리프 인덱스의 너비 (논리 단위)를 검색합니다. |
58 | GetCharacterPlacement 문자열에 대한 다양한 유형의 정보를 검색합니다. |
59 | GetCharWidth 현재 글꼴에서 지정된 범위에있는 연속 문자의 소수 너비를 검색합니다. |
60 | GetCharWidthI 현재 글꼴에서 지정된 범위에있는 연속 글리프 인덱스의 너비를 논리적 좌표로 검색합니다. |
61 | GetClipBox 현재 자르기 경계 주위의 가장 좁은 경계 사각형의 치수를 검색합니다. |
62 | GetColorAdjustment 장치 컨텍스트에 대한 색상 조정 값을 검색합니다. |
63 | GetCurrentBitmap 현재 선택된 포인터를 반환합니다. CBitmap 목적. |
64 | GetCurrentBrush 현재 선택된 포인터를 반환합니다. CBrush 목적. |
65 | GetCurrentFont 현재 선택된 포인터를 반환합니다. CFont 목적. |
66 | GetCurrentPalette 현재 선택된 포인터를 반환합니다. CPalette 목적. |
48 | GetCurrentPen 현재 선택된 포인터를 반환합니다. CPen 목적. |
67 | GetCurrentPosition 펜의 현재 위치 (논리적 좌표)를 검색합니다. |
68 | GetDCBrushColor 현재 브러시 색상을 검색합니다. |
69 | GetDCPenColor 현재 펜 색상을 검색합니다. |
70 | GetDeviceCaps 지정된 디스플레이 장치의 기능에 대한 지정된 종류의 장치 별 정보를 검색합니다. |
71 | GetFontData 확장 가능한 글꼴 파일에서 글꼴 메트릭 정보를 검색합니다. 검색 할 정보는 글꼴 파일의 오프셋과 반환 할 정보의 길이를 지정하여 식별됩니다. |
72 | GetFontLanguageInfo 지정된 표시 컨텍스트에 대해 현재 선택된 글꼴에 대한 정보를 반환합니다. |
73 | GetGlyphOutline 현재 글꼴의 윤곽선 문자에 대한 윤곽선 곡선 또는 비트 맵을 검색합니다. |
74 | GetGraphicsMode 지정된 장치 컨텍스트에 대한 현재 그래픽 모드를 검색합니다. |
75 | GetHalftoneBrush 하프 톤 브러시를 검색합니다. |
76 | GetKerningPairs 지정된 장치 컨텍스트에서 현재 선택된 글꼴에 대한 문자 커닝 쌍을 검색합니다. |
77 | GetLayout 장치 컨텍스트 (DC)의 레이아웃을 검색합니다. 레이아웃은 왼쪽에서 오른쪽 (기본값) 또는 오른쪽에서 왼쪽 (미러링) 일 수 있습니다. |
78 | GetMapMode 현재 매핑 모드를 검색합니다. |
79 | GetMiterLimit 장치 컨텍스트에 대한 마이 터 제한을 반환합니다. |
80 | GetNearestColor 주어진 장치가 나타낼 수있는 지정된 논리적 색에 가장 가까운 논리적 색을 검색합니다. |
81 | GetOutlineTextMetrics TrueType 글꼴에 대한 글꼴 메트릭 정보를 검색합니다. |
82 | GetOutputCharWidth 출력 장치 컨텍스트를 사용하여 현재 글꼴에서 연속 문자 그룹의 개별 문자 너비를 검색합니다. |
83 | GetOutputTabbedTextExtent 출력 장치 컨텍스트에서 문자열의 너비와 높이를 계산합니다. |
84 | GetOutputTextExtent 크기를 결정하기 위해 현재 글꼴을 사용하여 출력 장치 컨텍스트에서 텍스트 줄의 너비와 높이를 계산합니다. |
85 | GetOutputTextMetrics 출력 장치 컨텍스트에서 현재 글꼴에 대한 메트릭을 검색합니다. |
86 | GetPath 선의 끝점을 정의하는 좌표와 장치 컨텍스트로 선택한 경로에있는 곡선의 제어점을 검색합니다. |
87 | GetPixel 지정된 지점에서 픽셀의 RGB 색상 값을 검색합니다. |
88 | GetPolyFillMode 현재 다각형 채우기 모드를 검색합니다. |
89 | GetROP2 현재 그리기 모드를 검색합니다. |
90 | GetSafeHdc 보고 m_hDC, 출력 장치 컨텍스트. |
91 | GetStretchBltMode 현재 비트 맵 확장 모드를 검색합니다. |
92 | GetTabbedTextExtent 속성 장치 컨텍스트에서 문자열의 너비와 높이를 계산합니다. |
93 | GetTextAlign 텍스트 정렬 플래그를 검색합니다. |
94 | GetTextCharacterExtra 문자 간 간격에 대한 현재 설정을 검색합니다. |
95 | GetTextColor 현재 텍스트 색상을 검색합니다. |
96 | GetTextExtent 크기를 결정하기 위해 현재 글꼴을 사용하여 속성 장치 컨텍스트에서 텍스트 줄의 너비와 높이를 계산합니다. |
97 | GetTextExtentExPointI 지정된 공간에 맞는 지정된 문자열의 문자 수를 검색하고 각 문자에 대한 텍스트 범위로 배열을 채 웁니다. |
98 | GetTextExtentPointI 지정된 글리프 인덱스 배열의 너비와 높이를 검색합니다. |
99 | GetTextFace 현재 글꼴의 서체 이름을 null로 끝나는 문자열로 버퍼에 복사합니다. |
100 | GetTextMetrics 속성 장치 컨텍스트에서 현재 글꼴에 대한 메트릭을 검색합니다. |
101 | GetViewportExt 뷰포트의 x 및 y 범위를 검색합니다. |
102 | GetViewportOrg 뷰포트 원점의 x 및 y 좌표를 검색합니다. |
103 | GetWindow 디스플레이 장치 컨텍스트와 관련된 창을 반환합니다. |
104 | GetWindowExt 연관된 창의 x 및 y 범위를 검색합니다. |
105 | GetWindowOrg 연결된 창의 원점에 대한 x 및 y 좌표를 검색합니다. |
106 | GetWorldTransform 현재 세계 공간에서 페이지 공간으로의 변환을 검색합니다. |
107 | GradientFill 직사각형 및 삼각형 구조를 그라데이션 색상으로 채 웁니다. |
108 | GrayString 주어진 위치에 희미한 (회색) 텍스트를 그립니다. |
109 | HIMETRICtoDP HIMETRIC 단위를 장치 단위로 변환합니다. |
110 | HIMETRICtoLP HIMETRIC 단위를 논리 단위로 변환합니다. |
111 | IntersectClipRect 현재 영역과 직사각형의 교차점을 형성하여 새 클리핑 영역을 만듭니다. |
112 | InvertRect 직사각형의 내용을 반전합니다. |
113 | InvertRgn 영역의 색상을 반전합니다. |
114 | IsPrinting 장치 컨텍스트가 인쇄에 사용되고 있는지 여부를 결정합니다. |
115 | LineTo 현재 위치에서 점을 포함하지 않는 선을 그립니다. |
116 | LPtoDP 논리 단위를 장치 단위로 변환합니다. |
117 | LPtoHIMETRIC 논리 단위를 HIMETRIC 단위로 변환합니다. |
118 | MaskBlt 지정된 마스크 및 래스터 작업을 사용하여 소스 및 대상 비트 맵에 대한 색상 데이터를 결합합니다. |
119 | ModifyWorldTransform 지정된 모드를 사용하여 장치 컨텍스트에 대한 세계 변환을 변경합니다. |
120 | MoveTo 현재 위치를 이동합니다. |
121 | OffsetClipRgn 주어진 장치의 클리핑 영역을 이동합니다. |
122 | OffsetViewportOrg 현재 뷰포트 원점의 좌표를 기준으로 뷰포트 원점을 수정합니다. |
123 | OffsetWindowOrg 현재 창 원점의 좌표를 기준으로 창 원점을 수정합니다. |
124 | PaintRgn 선택한 브러시로 영역을 채 웁니다. |
125 | PatBlt 비트 패턴을 만듭니다. |
126 | Pie 파이 모양의 쐐기를 그립니다. |
127 | PlayMetaFile 지정된 장치에서 지정된 메타 파일의 내용을 재생합니다. PlayMetaFile의 향상된 버전은 주어진 확장 형식 메타 파일에 저장된 그림을 표시합니다. 메타 파일은 여러 번 재생할 수 있습니다. |
128 | PlgBlt 소스 장치 컨텍스트의 지정된 사각형에서 지정된 장치 컨텍스트의 지정된 평행 사변형으로 색상 데이터 비트의 비트 블록 전송을 수행합니다. |
129 | PolyBezier 하나 이상의 Bzier 스플라인을 그립니다. 현재 위치는 사용되거나 업데이트되지 않습니다. |
130 | PolyBezierTo 하나 이상의 Bzier 스플라인을 그리고 현재 위치를 마지막 Bzier 스플라인의 끝점으로 이동합니다. |
131 | PolyDraw 선 세그먼트 및 Bzier 스플라인 세트를 그립니다. 이 기능은 현재 위치를 업데이트합니다. |
132 | Polygon 선으로 연결된 두 개 이상의 점 (정점)으로 구성된 다각형을 그립니다. |
133 | Polyline 지정된 점을 연결하는 선 세그먼트 세트를 그립니다. |
134 | PolylineTo 하나 이상의 직선을 그리고 현재 위치를 마지막 선의 끝점으로 이동합니다. |
135 | PolyPolygon 현재 다각형 채우기 모드를 사용하여 채워지는 둘 이상의 다각형을 만듭니다. 다각형이 분리되거나 겹칠 수 있습니다. |
136 | PolyPolyline 여러 일련의 연결된 선 세그먼트를 그립니다. 이 함수는 현재 위치를 사용하거나 업데이트하지 않습니다. |
137 | PtVisible 지정된 지점이 클리핑 영역 내에 있는지 여부를 지정합니다. |
138 | RealizePalette 현재 논리 팔레트의 팔레트 항목을 시스템 팔레트에 매핑합니다. |
139 | Rectangle 현재 펜을 사용하여 사각형을 그리고 현재 브러시를 사용하여 채 웁니다. |
140 | RectVisible 지정된 사각형의 일부가 클리핑 영역 내에 있는지 여부를 확인합니다. |
141 | ReleaseAttribDC 릴리스 m_hAttribDC, 속성 장치 컨텍스트. |
142 | ReleaseOutputDC 릴리스 m_hDC, 출력 장치 컨텍스트. |
143 | ResetDC m_hAttribDC 장치 컨텍스트를 업데이트합니다. |
144 | RestoreDC 장치 컨텍스트를 다음에 저장된 이전 상태로 복원합니다. SaveDC. |
145 | RoundRect 현재 펜을 사용하여 모서리가 둥근 사각형을 그리고 현재 브러시를 사용하여 채워진 사각형을 그립니다. |
146 | SaveDC 장치 컨텍스트의 현재 상태를 저장합니다. |
147 | ScaleViewportExt 현재 값을 기준으로 뷰포트 범위를 수정합니다. |
148 | ScaleWindowExt 현재 값을 기준으로 창 범위를 수정합니다. |
149 | ScrollDC 비트 사각형을 가로 및 세로로 스크롤합니다. |
150 | SelectClipPath 지정된 모드를 사용하여 새 영역을 기존 클리핑 영역과 결합하여 현재 경로를 장치 컨텍스트의 클리핑 영역으로 선택합니다. |
151 | SelectClipRgn 지정된 모드를 사용하여 지정된 영역을 현재 클리핑 영역과 결합합니다. |
152 | SelectObject 펜과 같은 GDI 그리기 개체를 선택합니다. |
153 | SelectPalette 논리적 팔레트를 선택합니다. |
154 | SelectStockObject Windows에서 제공하는 미리 정의 된 스톡 펜, 브러시 또는 글꼴 중 하나를 선택합니다. |
155 | SetAbortProc 인쇄 작업을 중단해야하는 경우 Windows에서 호출하는 프로그래머 제공 콜백 함수를 설정합니다. |
156 | SetArcDirection 호 및 직사각형 기능에 사용할 그리기 방향을 설정합니다. |
157 | SetAttribDC 속성 장치 컨텍스트 인 m_hAttribDC를 설정합니다. |
158 | SetBkColor 현재 배경색을 설정합니다. |
159 | SetBkMode 배경 모드를 설정합니다. |
160 | SetBoundsRect 지정된 장치 컨텍스트에 대한 경계 사각형 정보의 누적을 제어합니다. |
161 | SetBrushOrg 장치 컨텍스트로 선택한 다음 브러시의 원점을 지정합니다. |
162 | SetColorAdjustment 지정된 값을 사용하여 장치 컨텍스트에 대한 색상 조정 값을 설정합니다. |
163 | SetDCBrushColor 현재 브러시 색상을 설정합니다. |
164 | SetDCPenColor 현재 펜 색상을 설정합니다. |
165 | SetGraphicsMode 지정된 장치 컨텍스트에 대한 현재 그래픽 모드를 설정합니다. |
166 | SetLayout 장치 컨텍스트 (DC)의 레이아웃을 변경합니다. |
167 | SetMapMode 현재 매핑 모드를 설정합니다. |
168 | SetMapperFlags 글꼴 매퍼가 논리적 글꼴을 물리적 글꼴에 매핑 할 때 사용하는 알고리즘을 변경합니다. |
169 | SetMiterLimit 장치 컨텍스트에 대한 마이 터 결합 길이 제한을 설정합니다. |
170 | SetOutputDC 출력 장치 컨텍스트 인 m_hDC를 설정합니다. |
171 | SetPixel 지정된 지점의 픽셀을 지정된 색상의 가장 가까운 근사값으로 설정합니다. |
172 | SetPixelV 지정된 좌표의 픽셀을 지정된 색상의 가장 가까운 근사값으로 설정합니다. SetPixelV 보다 빠릅니다 SetPixel 실제로 칠해진 점의 색상 값을 반환 할 필요가 없기 때문입니다. |
173 | SetPolyFillMode 다각형 채우기 모드를 설정합니다. |
175 | SetROP2 현재 그리기 모드를 설정합니다. |
176 | SetStretchBltMode 비트 맵 확장 모드를 설정합니다. |
177 | SetTextAlign 텍스트 정렬 플래그를 설정합니다. |
178 | SetTextCharacterExtra 문자 간 간격을 설정합니다. |
179 | SetTextColor 텍스트 색상을 설정합니다. |
180 | SetTextJustification 문자열의 구분 문자에 공백을 추가합니다. |
181 | SetViewportExt 뷰포트의 x 및 y 범위를 설정합니다. |
182 | SetViewportOrg 뷰포트 원점을 설정합니다. |
183 | SetWindowExt 연관된 창의 x 및 y 범위를 설정합니다. |
184 | SetWindowOrg 장치 컨텍스트의 창 원점을 설정합니다. |
185 | SetWorldTransform 현재 세계 공간을 페이지 공간 변환으로 설정합니다. |
186 | StartDoc 새 인쇄 작업이 시작되고 있음을 장치 드라이버에 알립니다. |
187 | StartPage 새 페이지가 시작되고 있음을 장치 드라이버에 알립니다. |
188 | StretchBlt 소스 사각형 및 장치에서 대상 사각형으로 비트 맵을 이동하여 필요한 경우 대상 사각형의 크기에 맞게 비트 맵을 늘리거나 압축합니다. |
189 | StrokeAndFillPath 패스에 열려있는 모든 그림을 닫고 현재 펜을 사용하여 패스의 윤곽선을 칠한 다음 현재 브러시를 사용하여 내부를 채 웁니다. |
190 | StrokePath 현재 펜을 사용하여 지정된 경로를 렌더링합니다. |
191 | TabbedTextOut 지정된 위치에 문자열을 쓰고 탭 정지 위치 배열에 지정된 값으로 탭을 확장합니다. |
192 | TextOut 현재 선택된 글꼴을 사용하여 지정된 위치에 문자열을 씁니다. |
193 | TransparentBlt 지정된 소스 장치 컨텍스트의 색상 데이터 비트 블록을 대상 장치 컨텍스트로 전송하여 지정된 색상을 전송에서 투명하게 렌더링합니다. |
194 | UpdateColors 픽셀 단위로 클라이언트 영역의 현재 색상을 시스템 팔레트에 일치시켜 장치 컨텍스트의 클라이언트 영역을 업데이트합니다. |
195 | WidenPath 현재 경로를 장치 컨텍스트에 현재 선택한 펜을 사용하여 획을 그을 경우 칠할 영역으로 다시 정의합니다. |
윤곽
Step 1 − 다음을 사용하여 새로운 MFC 기반 단일 문서 프로젝트를 만들어 간단한 예를 살펴 보겠습니다. MFCGDIDemo 이름.
Step 2 − 프로젝트가 생성되면 솔루션 탐색기로 이동하여 MFCGDIDemoView.cpp Source Files 폴더 아래에 파일이 있습니다.
Step 3 − 아래 그림과 같이 선을 그립니다. CMFCGDIDemoView::OnDraw() 방법.
void CMFCGDIDemoView::OnDraw(CDC* pDC) {
pDC->MoveTo(95, 125);
pDC->LineTo(230, 125);
CMFCGDIDemoDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
// TODO: add draw code for native data here
}
Step 4−이 응용 프로그램을 실행하십시오. 다음과 같은 출력이 표시됩니다.
Step 5 − CDC :: MoveTo () 메서드는 라인의 시작 위치를 설정하는 데 사용됩니다.
LineTo ()를 사용할 때 프로그램은 MoveTo () 지점에서 LineTo () 끝까지 시작됩니다.
LineTo () 이후 MoveTo ()를 호출하지 않고 다른 포인트 값으로 LineTo ()를 다시 호출하면 프로그램은 이전 LineTo ()에서 새로운 LineTo () 포인트까지 선을 그립니다.
Step 6 − 다른 선을 그리려면 다음 코드와 같이이 속성을 사용할 수 있습니다.
void CMFCGDIDemoView::OnDraw(CDC* pDC) {
pDC->MoveTo(95, 125);
pDC->LineTo(230, 125);
pDC->LineTo(230, 225);
pDC->LineTo(95, 325);
CMFCGDIDemoDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
// TODO: add draw code for native data here
}
Step 7−이 응용 프로그램을 실행하십시오. 다음과 같은 출력이 표시됩니다.
폴리 라인
ㅏ polyline일련의 연결된 선입니다. 선은 POINT 또는 CPoint 값의 배열에 저장됩니다. 폴리 라인을 그리려면 CDC :: Polyline () 메서드를 사용합니다. 폴리 라인을 그리려면 두 개 이상의 점이 필요합니다. 두 개 이상의 점을 정의하면 모든 점이 포함될 때까지 첫 번째 점 이후의 각 선이 이전 점에서 다음 점으로 그려집니다.
Step 1 − 간단한 예를 살펴 보겠습니다.
void CMFCGDIDemoView::OnDraw(CDC* pDC) {
CPoint Pt[7];
Pt[0] = CPoint(20, 150);
Pt[1] = CPoint(180, 150);
Pt[2] = CPoint(180, 20);
pDC−Polyline(Pt, 3);
CMFCGDIDemoDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
// TODO: add draw code for native data here
}
Step 2 −이 응용 프로그램을 실행하면 다음과 같은 출력이 표시됩니다.
직사각형
ㅏ rectangle네 개의 직각을 구성하는 네 변으로 구성된 기하학적 도형입니다. 선과 마찬가지로 직사각형을 그리려면 시작 위치와 끝 위치를 정의해야합니다. 직사각형을 그리려면 CDC :: Rectangle () 메서드를 사용할 수 있습니다.
Step 1 − 간단한 예를 살펴 보겠습니다.
void CMFCGDIDemoView::OnDraw(CDC* pDC) {
pDC->Rectangle(15, 15, 250, 160);
CMFCGDIDemoDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
// TODO: add draw code for native data here
}
Step 2 −이 응용 프로그램을 실행하면 다음과 같은 출력이 표시됩니다.
정사각형
ㅏ square 4 개의 직각을 구성하는 4 개의 변으로 이루어진 기하학적 도형이지만 각 변의 길이는 같아야합니다.
간단한 예를 살펴 보겠습니다.
void CMFCGDIDemoView::OnDraw(CDC* pDC) {
pDC->Rectangle(15, 15, 250, 250);
CMFCGDIDemoDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
// TODO: add draw code for native data here
}
이 애플리케이션을 실행하면 다음 출력이 표시됩니다.
파이
ㅏ pie타원의 중심에서 한면으로 이어지는 두 줄로 구분 된 타원의 일부입니다. 파이를 그리려면 아래와 같이 CDC :: Pie () 메서드를 사용할 수 있습니다.
BOOL Pie (int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4);
(x1, y1) 점은 원형을 나타내는 타원이 맞는 직사각형의 왼쪽 위 모서리를 결정합니다. (x2, y2) 점은 직사각형의 오른쪽 하단 모서리입니다.
(x3, y3) 점은 기본 시계 반대 방향으로 원형의 시작 모서리를 지정합니다.
(x4, y4) 점은 파이의 끝점을 지정합니다.
간단한 예를 살펴 보겠습니다.
void CMFCGDIDemoView::OnDraw(CDC* pDC) {
pDC->Pie(40, 20, 226, 144, 155, 32, 202, 115);
CMFCGDIDemoDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
// TODO: add draw code for native data here
}
Step 2 −이 응용 프로그램을 실행하면 다음과 같은 출력이 표시됩니다.
호
호는 타원의 일부 또는 세그먼트입니다. 즉, 호는 완전하지 않은 타원입니다. 호를 그리려면 CDC :: Arc () 메서드를 사용할 수 있습니다.
BOOL Arc (int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4);
CDC 클래스에는 SetArcDirection () 메서드가 있습니다.
다음은 구문입니다.
int SetArcDirection(int nArcDirection)
Sr. 아니. | 가치 및 방향 |
---|---|
1 | AD_CLOCKWISE 그림은 시계 방향으로 그려집니다. |
2 | AD_COUNTERCLOCKWISE 그림은 시계 반대 방향으로 그려집니다. |
Step 1 − 간단한 예를 살펴 보겠습니다.
void CMFCGDIDemoView::OnDraw(CDC* pDC) {
pDC->SetArcDirection(AD_COUNTERCLOCKWISE);
pDC->Arc(20, 20, 226, 144, 202, 115, 105, 32);
CMFCGDIDemoDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
// TODO: add draw code for native data here
}
Step 2 −이 응용 프로그램을 실행하면 다음과 같은 출력이 표시됩니다.
화음
지금까지 그린 호는 시작과 끝이있는 선으로 만들어 졌기 때문에 열린 도형으로 간주됩니다 (원이나 그렇지 않은 직사각형과 달리). ㅏchord 두 끝이 직선으로 연결된 호입니다.
코드를 그리기 위해 CDC :: Chord () 메서드를 사용할 수 있습니다.
BOOL 코드 (int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4);
간단한 예를 살펴 보겠습니다.
void CMFCGDIDemoView::OnDraw(CDC* pDC) {
pDC->SetArcDirection(AD_CLOCKWISE);
pDC->Chord(20, 20, 226, 144, 202, 115, 105, 32);
CMFCGDIDemoDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
// TODO: add draw code for native data here
}
위의 응용 프로그램을 실행하면 다음 출력이 표시됩니다.
이 예에서 호 방향은 시계 방향으로 설정됩니다.
그림 물감
그만큼 color물체의 미적 외관을 향상시키는 가장 기본적인 물체 중 하나입니다. 색상은 시각적 측면의 일부를 수정하기 위해 개체에 추가되는 비 공간 개체입니다. Win32 API와 결합 된 MFC 라이브러리는 색상의 다양한 측면을 활용하는 데 사용할 수있는 다양한 작업을 제공합니다.
RGB 매크로는 함수처럼 작동하며 쉼표로 구분 된 세 개의 숫자 값을 전달할 수 있습니다. 다음 코드와 같이 각 값은 0에서 255 사이 여야합니다.
void CMFCGDIDemoView::OnDraw(CDC* pDC) {
COLORREF color = RGB(239, 15, 225);
}
간단한 예를 살펴 보겠습니다.
void CMFCGDIDemoView::OnDraw(CDC* pDC) {
COLORREF color = RGB(239, 15, 225);
pDC->SetTextColor(color);
pDC->TextOut(100, 80, L"MFC GDI Tutorial", 16);
CMFCGDIDemoDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
// TODO: add draw code for native data here
}
이 애플리케이션을 실행하면 다음 출력이 표시됩니다.
글꼴
CFontWindows GDI (그래픽 장치 인터페이스) 글꼴을 캡슐화하고 글꼴을 조작하기위한 멤버 함수를 제공합니다. CFont 개체를 사용하려면 CFont 개체를 구성하고 여기에 Windows 글꼴을 첨부 한 다음 개체의 멤버 함수를 사용하여 글꼴을 조작합니다.
Sr. 아니. | 이름 및 설명 |
---|---|
1 | CreateFont 지정된 특성으로 CFont를 초기화합니다. |
2 | CreateFontIndirect 에 주어진 특성으로 CFont 객체를 초기화합니다. LOGFONT 구조. |
삼 | CreatePointFont 포인트의 10 분의 1 단위로 측정 된 지정된 높이 및 서체를 사용하여 CFont를 초기화합니다. |
4 | CreatePointFontIndirect 같음 CreateFontIndirect 글꼴 높이가 논리 단위가 아닌 10 분의 1 포인트로 측정된다는 점을 제외하고. |
5 | FromHandle Windows가 주어지면 CFont 객체에 대한 포인터를 반환합니다. HFONT. |
6 | GetLogFont CFont 객체에 첨부 된 논리 글꼴에 대한 정보로 LOGFONT를 채 웁니다. |
간단한 예를 살펴 보겠습니다.
void CMFCGDIDemoView::OnDraw(CDC* pDC) {
CFont font;
font.CreatePointFont(920, L"Garamond");
CFont *pFont = pDC->SelectObject(&font);
COLORREF color = RGB(239, 15, 225);
pDC->SetTextColor(color);
pDC->TextOut(100, 80, L"MFC GDI Tutorial", 16);
pDC->SelectObject(pFont);
font.DeleteObject();
CMFCGDIDemoDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
// TODO: add draw code for native data here
}
위의 응용 프로그램을 실행하면 다음 출력이 표시됩니다.
펜
ㅏ pen장치 컨텍스트에서 선과 곡선을 그리는 데 사용되는 도구입니다. 그래픽 프로그래밍에서 펜은 직사각형 또는 다각형과 같은 기하학적 닫힌 모양의 테두리를 그리는데도 사용됩니다. Microsoft Windows는 두 가지 유형의 펜을 고려합니다.cosmetic 과 geometric.
펜은 1 픽셀 이하의 고정 된 너비의 단순한 선만 그리는 데 사용할 수있는 경우 화장품이라고합니다. 펜은 너비와 끝이 서로 다를 때 기하학적입니다. MFC는 클래스를 제공합니다CPen Windows GDI (그래픽 장치 인터페이스) 펜을 캡슐화합니다.
Sr. 아니. | 이름 및 설명 |
---|---|
1 | CreatePen 지정된 스타일, 너비 및 브러시 속성을 사용하여 논리적 장식 또는 기하학적 펜을 만들어 CPen 개체에 연결합니다. |
2 | CreatePenIndirect LOGPEN 구조에 지정된 스타일, 너비 및 색상으로 펜을 만들고 CPen 개체에 연결합니다. |
삼 | FromHandle Windows가 주어지면 CPen 객체에 대한 포인터를 반환합니다. HPEN. |
4 | GetExtLogPen EXTLOGPEN 기본 구조를 가져옵니다. |
5 | GetLogPen LOGPEN 기본 구조를 가져 옵니다 . |
Sr. 아니. | Name & Description |
---|---|
1 | PS_SOLID 연속 실선. |
2 | PS_DASH 점선 중단이있는 연속 선입니다. |
삼 | PS_DOT 다른 모든 픽셀에서 점 중단이있는 선. |
4 | PS_DASHDOT 점선과 점선이 번갈아 나타나는 조합. |
5 | PS_DASHDOTDOT 대시 및 이중 점선 중단의 조합입니다. |
6 | PS_NULL 눈에 보이는 선이 없습니다. |
7 | PS_INSIDEFRAME 닫힌 모양의 테두리 바로 안쪽에 그려진 선입니다. |
간단한 예를 살펴 보겠습니다.
void CMFCGDIDemoView::OnDraw(CDC* pDC) {
CPen pen;
pen.CreatePen(PS_DASHDOTDOT, 1, RGB(160, 75, 90));
pDC->SelectObject(&pen);
pDC->Rectangle(25, 35, 250, 125);
CMFCGDIDemoDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
// TODO: add draw code for native data here
}
위의 응용 프로그램을 실행하면 다음 출력이 표시됩니다.
브러쉬
ㅏ brush닫힌 모양이나 선의 내부를 채우는 데 사용되는 그리기 도구입니다. 브러시는 페인트 통을 집어 어딘가에 붓는 것처럼 작동합니다. MFC는 클래스를 제공합니다CBrush Windows GDI (그래픽 장치 인터페이스) 브러시를 캡슐화합니다.
Sr.NO. | 이름 및 설명 |
---|---|
1 | CreateBrushIndirect LOGBRUSH 구조에 지정된 스타일, 색상 및 패턴으로 브러시를 초기화합니다. |
2 | CreateDIBPatternBrush 장치 독립적 비트 맵 (DIB)에서 지정한 패턴으로 브러시를 초기화합니다. |
삼 | CreateHatchBrush 지정된 빗금 무늬와 색으로 브러시를 초기화합니다. |
4 | CreatePatternBrush 비트 맵으로 지정된 패턴으로 브러시를 초기화합니다. |
5 | CreateSolidBrush 지정된 단색으로 브러시를 초기화합니다. |
6 | CreateSysColorBrush 기본 시스템 색상 인 브러시를 만듭니다. |
7 | FromHandle Windows HBRUSH 개체에 대한 핸들이 주어지면 CBrush 개체에 대한 포인터를 반환합니다. |
8 | GetLogBrush LOGBRUSH 구조를 가져옵니다. |
간단한 예를 살펴 보겠습니다.
void CMFCGDIDemoView::OnDraw(CDC* pDC) {
CBrush brush(RGB(100, 150, 200));
CBrush *pBrush = pDC->SelectObject(&brush);
pDC->Rectangle(25, 35, 250, 125);
pDC->SelectObject(pBrush);
CMFCGDIDemoDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
// TODO: add draw code for native data here
}
이 애플리케이션을 실행하면 다음 출력이 표시됩니다.