CDC 클래스

디바이스 컨텍스트 개체의 클래스를 정의합니다.

구문

class CDC : public CObject

멤버

공용 생성자

속성 설명
CDC::CDC CDC 개체를 생성합니다.

공용 메서드

이름 설명
CDC::AbortDoc 멤버 함수의 마지막 호출 StartDoc 이후 애플리케이션이 디바이스에 쓴 모든 항목을 지우고 현재 인쇄 작업을 종료합니다.
CDC::AbortPath 디바이스 컨텍스트의 모든 경로를 닫고 카드.
CDC::AddMetaFileComment 버퍼의 주석을 지정된 고급 형식 메타파일로 복사합니다.
CDC::AlphaBlend 투명 또는 반투명 픽셀이 있는 비트맵을 표시합니다.
CDC::AngleArc 선 세그먼트와 호를 그리고 현재 위치를 호 끝점으로 이동합니다.
CDC::Arc 타원형 호를 그립니다.
CDC::ArcTo 타원형 호를 그립니다. 이 함수는 현재 위치가 업데이트된다는 점을 제외하고 유사 Arc합니다.
CDC::Attach CDC 개체에 Windows 디바이스 컨텍스트를 연결합니다.
CDC::BeginPath 디바이스 컨텍스트에서 경로 대괄호를 엽니다.
CDC::BitBlt 지정된 디바이스 컨텍스트에서 비트맵을 복사합니다.
CDC::Chord 화음(줄임표와 선 세그먼트의 교집합으로 경계가 지정된 닫힌 그림)을 그립니다.
CDC::CloseFigure 경로에서 열린 그림을 닫습니다.
CDC::CreateCompatibleDC 다른 디바이스 컨텍스트와 호환되는 메모리-디바이스 컨텍스트를 만듭니다. 메모리에 이미지를 준비하는 데 사용할 수 있습니다.
CDC::CreateDC 특정 디바이스에 대한 디바이스 컨텍스트를 만듭니다.
CDC::CreateIC 특정 디바이스에 대한 정보 컨텍스트를 만듭니다. 이렇게 하면 디바이스 컨텍스트를 만들지 않고 디바이스에 대한 정보를 빠르게 가져올 수 있습니다.
CDC::DeleteDC CDC 개체와 연결된 Windows 디바이스 컨텍스트를 삭제합니다.
CDC::DeleteTempMap 에서 만든 임시 개체를 CWinApp 삭제하기 위해 유휴 시간 처리기에서 CDC 호출됩니다 FromHandle. 또한 디바이스 컨텍스트를 분리합니다.
CDC::Detach CDC 개체에서 Windows 디바이스 컨텍스트를 분리합니다.
CDC::DPtoHIMETRIC 디바이스 단위를 단위로 HIMETRIC 변환합니다.
CDC::DPtoLP 디바이스 단위를 논리 단위로 변환합니다.
CDC::Draw3dRect 3차원 사각형을 그립니다.
CDC::DrawDragRect 사각형을 끌 때 지우고 다시 그립니다.
CDC::DrawEdge 사각형의 가장자리를 그립니다.
CDC::DrawEscape GDI(그래픽 디바이스 인터페이스)를 통해 직접 사용할 수 없는 비디오 디스플레이의 그리기 기능에 액세스합니다.
CDC::DrawFocusRect 포커스를 나타내는 데 사용되는 스타일에서 사각형을 그립니다.
CDC::DrawFrameControl 프레임 컨트롤을 그립니다.
CDC::DrawIcon 아이콘을 그립니다.
CDC::DrawState 이미지를 표시하고 시각적 효과를 적용하여 상태를 나타냅니다.
CDC::DrawText 지정된 사각형에 서식 있는 텍스트를 그립니다.
CDC::DrawTextEx 다른 형식을 사용하여 지정된 사각형에 서식이 지정된 텍스트를 그립니다.
CDC::Ellipse 줄임표를 그립니다.
CDC::EndDoc 멤버 함수에서 시작한 인쇄 작업을 종료합니다 StartDoc .
CDC::EndPage 페이지가 종료되고 있음을 디바이스 드라이버에 알릴 수 있습니다.
CDC::EndPath 경로 대괄호를 닫고 대괄호로 정의된 경로를 디바이스 컨텍스트로 선택합니다.
CDC::EnumObjects 디바이스 컨텍스트에서 사용할 수 있는 펜과 브러시를 열거합니다.
CDC::Escape 애플리케이션에서 GDI를 통해 특정 디바이스에서 직접 사용할 수 없는 기능에 액세스할 수 있습니다. 또한 Windows 이스케이프 함수에 대한 액세스를 허용합니다. 애플리케이션에서 수행한 이스케이프 호출은 변환되어 디바이스 드라이버로 전송됩니다.
CDC::ExcludeClipRect 지정된 사각형을 뺀 기존 클리핑 영역으로 구성된 새 클리핑 영역을 만듭니다.
CDC::ExcludeUpdateRgn 창의 업데이트된 영역을 클리핑 영역에서 제외하여 창의 잘못된 영역 내에서 그리기를 방지합니다.
CDC::ExtFloodFill 현재 브러시로 영역을 채웁니다. 멤버 함수보다 CDC::FloodFill 더 많은 유연성을 제공합니다.
CDC::ExtTextOut 현재 선택한 글꼴을 사용하여 사각형 영역 내에 문자 문자열을 씁니다.
CDC::FillPath 현재 경로의 열려 있는 그림을 닫고 현재 브러시 및 다각형 채우기 모드를 사용하여 경로의 내부를 채웁니다.
CDC::FillRect 특정 브러시를 사용하여 지정된 사각형을 채웁니다.
CDC::FillRgn 지정된 브러시로 특정 영역을 채웁니다.
CDC::FillSolidRect 사각형을 단색으로 채웁니다.
CDC::FlattenPath 선택한 경로의 모든 곡선을 현재 디바이스 컨텍스트로 변환하고 각 곡선을 선 시퀀스로 바꿉니다.
CDC::FloodFill 현재 브러시로 영역을 채웁니다.
CDC::FrameRect 사각형 주위에 테두리를 그립니다.
CDC::FrameRgn 브러시를 사용하여 특정 영역 주위에 테두리를 그립니다.
CDC::FromHandle 디바이스 컨텍스트에 대한 핸들이 CDC 제공되면 개체에 대한 포인터를 반환합니다. 개체가 CDC 핸들에 연결되지 않은 경우 임시 CDC 개체가 만들어지고 연결됩니다.
CDC::GetArcDirection 디바이스 컨텍스트의 현재 호 방향을 반환합니다.
CDC::GetAspectRatioFilter 현재 가로 세로 비율 필터에 대한 설정을 검색합니다.
CDC::GetBkColor 현재 배경색을 검색합니다.
CDC::GetBkMode 백그라운드 모드를 검색합니다.
CDC::GetBoundsRect 지정된 디바이스 컨텍스트에 대한 현재 누적 경계 사각형을 반환합니다.
CDC::GetBrushOrg 현재 브러시의 원본을 검색합니다.
CDC::GetCharABCWidths 현재 글꼴에서 지정된 범위의 연속 문자의 너비를 논리 단위로 검색합니다.
CDC::GetCharABCWidthsI 현재 TrueType 글꼴에서 지정된 범위의 연속 문자 모양 인덱스의 너비를 논리 단위로 검색합니다.
CDC::GetCharacterPlacement 문자열에 대한 다양한 유형의 정보를 검색합니다.
CDC::GetCharWidth 현재 글꼴에서 지정된 범위에서 연속된 문자의 소수 자릿수 너비를 검색합니다.
CDC::GetCharWidthI 현재 글꼴에서 지정된 범위의 연속 문자 모양 인덱스의 너비를 논리 좌표로 검색합니다.
CDC::GetClipBox 현재 클리핑 경계를 중심으로 가장 좁은 경계 사각형의 크기를 검색합니다.
CDC::GetColorAdjustment 디바이스 컨텍스트에 대한 색 조정 값을 검색합니다.
CDC::GetCurrentBitmap 현재 선택한 개체에 대한 포인터를 CBitmap 반환합니다.
CDC::GetCurrentBrush 현재 선택한 개체에 대한 포인터를 CBrush 반환합니다.
CDC::GetCurrentFont 현재 선택한 개체에 대한 포인터를 CFont 반환합니다.
CDC::GetCurrentPalette 현재 선택한 개체에 대한 포인터를 CPalette 반환합니다.
CDC::GetCurrentPen 현재 선택한 개체에 대한 포인터를 CPen 반환합니다.
CDC::GetCurrentPosition 펜의 현재 위치를 논리적 좌표로 검색합니다.
CDC::GetDCBrushColor 현재 브러시 색을 검색합니다.
CDC::GetDCPenColor 현재 펜 색을 검색합니다.
CDC::GetDeviceCaps 지정된 디스플레이 디바이스의 기능에 대한 지정된 종류의 디바이스 관련 정보를 검색합니다.
CDC::GetFontData 확장 가능한 글꼴 파일에서 글꼴 메트릭 정보를 검색합니다. 검색할 정보는 글꼴 파일의 오프셋과 반환할 정보의 길이를 지정하여 식별됩니다.
CDC::GetFontLanguageInfo 지정된 표시 컨텍스트에 대해 현재 선택한 글꼴에 대한 정보를 반환합니다.
CDC::GetGlyphOutline 현재 글꼴의 윤곽선 문자에 대한 윤곽선 곡선 또는 비트맵을 검색합니다.
CDC::GetGraphicsMode 지정된 디바이스 컨텍스트에 대한 현재 그래픽 모드를 검색합니다.
CDC::GetHalftoneBrush 하프톤 브러시를 검색합니다.
CDC::GetKerningPairs 지정된 디바이스 컨텍스트에서 현재 선택된 글꼴의 문자 커닝 쌍을 검색합니다.
CDC::GetLayout DC(디바이스 컨텍스트)의 레이아웃을 검색합니다. 레이아웃은 왼쪽에서 오른쪽(기본값) 또는 오른쪽에서 왼쪽(미러)일 수 있습니다.
CDC::GetMapMode 현재 매핑 모드를 검색합니다.
CDC::GetMiterLimit 디바이스 컨텍스트에 대한 miter 제한을 반환합니다.
CDC::GetNearestColor 지정된 디바이스에서 나타낼 수 있는 지정된 논리 색에 가장 가까운 논리 색을 검색합니다.
CDC::GetOutlineTextMetrics TrueType 글꼴에 대한 글꼴 메트릭 정보를 검색합니다.
CDC::GetOutputCharWidth 출력 디바이스 컨텍스트를 사용하여 현재 글꼴에서 연속된 문자 그룹의 개별 문자 너비를 검색합니다.
CDC::GetOutputTabbedTextExtent 출력 디바이스 컨텍스트에서 문자 문자열의 너비와 높이를 계산합니다.
CDC::GetOutputTextExtent 현재 글꼴을 사용하여 출력 디바이스 컨텍스트에서 텍스트 줄의 너비와 높이를 계산하여 차원을 결정합니다.
CDC::GetOutputTextMetrics 출력 디바이스 컨텍스트에서 현재 글꼴에 대한 메트릭을 검색합니다.
CDC::GetPath 선의 끝점과 디바이스 컨텍스트로 선택된 경로에 있는 곡선의 제어점을 정의하는 좌표를 검색합니다.
CDC::GetPixel 지정된 지점에서 픽셀의 RGB 색 값을 검색합니다.
CDC::GetPolyFillMode 현재 다각형 채우기 모드를 검색합니다.
CDC::GetROP2 현재 그리기 모드를 검색합니다.
CDC::GetSafeHdc 출력 디바이스 컨텍스트를 반환 CDC::m_hDC합니다.
CDC::GetStretchBltMode 현재 비트맵 스트레치 모드를 검색합니다.
CDC::GetTabbedTextExtent 특성 디바이스 컨텍스트에서 문자 문자열의 너비와 높이를 계산합니다.
CDC::GetTextAlign 텍스트 맞춤 플래그를 검색합니다.
CDC::GetTextCharacterExtra 문자 간 간격의 양에 대한 현재 설정을 검색합니다.
CDC::GetTextColor 현재 텍스트 색을 검색합니다.
CDC::GetTextExtent 현재 글꼴을 사용하여 특성 디바이스 컨텍스트에서 텍스트 줄의 너비와 높이를 계산하여 차원을 결정합니다.
CDC::GetTextExtentExPointI 지정된 공백 내에 들어갈 지정된 문자열의 문자 수를 검색하고 각 문자에 대한 텍스트 범위로 배열을 채웁니다.
CDC::GetTextExtentPointI 지정된 문자 모양 인덱스 배열의 너비와 높이를 검색합니다.
CDC::GetTextFace 현재 글꼴의 서체 이름을 null로 끝나는 문자열로 버퍼에 복사합니다.
CDC::GetTextMetrics 특성 디바이스 컨텍스트에서 현재 글꼴에 대한 메트릭을 검색합니다.
CDC::GetViewportExt 뷰포트의 x 및 y 익스텐트 검색
CDC::GetViewportOrg 뷰포트 원점의 x 및 y 좌표를 검색합니다.
CDC::GetWindow 디스플레이 디바이스 컨텍스트와 연결된 창을 반환합니다.
CDC::GetWindowExt 연결된 창의 x 및 y 익스텐트 검색
CDC::GetWindowOrg 연결된 창의 원점의 x 및 y 좌표를 검색합니다.
CDC::GetWorldTransform 페이지 공간 변환에 대한 현재 세계 공간을 검색합니다.
CDC::GradientFill 사각형 및 삼각형 구조를 그라데이팅 색으로 채웁니다.
CDC::GrayString 지정된 위치에 흐리게 표시된(회색) 텍스트를 그립니다.
CDC::HIMETRICtoDP HIMETRIC 단위를 디바이스 단위로 변환합니다.
CDC::HIMETRICtoLP HIMETRIC 단위를 논리 단위로 변환합니다.
CDC::IntersectClipRect 현재 영역과 사각형의 교집합을 형성하여 새 클리핑 영역을 만듭니다.
CDC::InvertRect 사각형의 내용을 반전합니다.
CDC::InvertRgn 영역의 색을 반전합니다.
CDC::IsPrinting 디바이스 컨텍스트가 인쇄에 사용되는지 여부를 확인합니다.
CDC::LineTo 현재 위치에서 점까지 선을 그립니다(포함 안 함).
CDC::LPtoDP 논리 단위를 디바이스 단위로 변환합니다.
CDC::LPtoHIMETRIC 논리 단위를 HIMETRIC 단위로 변환합니다.
CDC::MaskBlt 지정된 마스크 및 래스터 작업을 사용하여 원본 및 대상 비트맵의 색 데이터를 결합합니다.
CDC::ModifyWorldTransform 지정된 모드를 사용하여 디바이스 컨텍스트의 월드 변환을 변경합니다.
CDC::MoveTo 현재 위치를 이동합니다.
CDC::OffsetClipRgn 지정된 디바이스의 클리핑 영역을 이동합니다.
CDC::OffsetViewportOrg 현재 뷰포트 원점의 좌표를 기준으로 뷰포트 원본을 수정합니다.
CDC::OffsetWindowOrg 현재 창 원점의 좌표를 기준으로 창 원본을 수정합니다.
CDC::PaintRgn 선택한 브러시로 영역을 채웁니다.
CDC::PatBlt 비트 패턴을 만듭니다.
CDC::Pie 원형 쐐기를 그립니다.
CDC::PlayMetaFile 지정된 디바이스에서 지정된 메타파일의 내용을 재생합니다. 향상된 버전의 PlayMetaFile 표시는 지정된 고급 형식 메타파일에 저장된 그림을 표시합니다. 메타파일은 여러 번 재생할 수 있습니다.
CDC::PlgBlt 원본 디바이스 컨텍스트의 지정된 사각형에서 지정된 디바이스 컨텍스트의 지정된 병렬로 색 데이터의 비트를 비트 블록 전송합니다.
CDC::PolyBezier 하나 이상의 Bzier 스플라인을 그립니다. 현재 위치가 사용되거나 업데이트되지 않습니다.
CDC::PolyBezierTo 하나 이상의 Bzier 스플라인을 그리고 현재 위치를 마지막 Bzier 스플라인의 끝점으로 이동합니다.
CDC::PolyDraw 선 세그먼트 및 Bzier 스플라인 집합을 그립니다. 이 함수는 현재 위치를 업데이트합니다.
CDC::Polygon 선으로 연결된 두 개 이상의 점(꼭짓점)으로 구성된 다각형을 그립니다.
CDC::Polyline 지정된 점을 연결하는 선 세그먼트 집합을 그립니다.
CDC::PolylineTo 하나 이상의 직선을 그리고 현재 위치를 마지막 줄의 끝점으로 이동합니다.
CDC::PolyPolygon 현재 다각형 채우기 모드를 사용하여 채워진 두 개 이상의 다각형을 만듭니다. 다각형은 분리되거나 겹칠 수 있습니다.
CDC::PolyPolyline 여러 개의 연결된 선 세그먼트를 그립니다. 현재 위치는 이 함수에서 사용되거나 업데이트되지 않습니다.
CDC::PtVisible 지정된 점이 클리핑 영역 내에 있는지 여부를 지정합니다.
CDC::RealizePalette 현재 논리 팔레트의 색상표 항목을 시스템 팔레트에 지도.
CDC::Rectangle 현재 펜을 사용하여 사각형을 그리고 현재 브러시를 사용하여 채웁니다.
CDC::RectVisible 지정된 사각형의 일부가 클리핑 영역 내에 있는지 여부를 확인합니다.
CDC::ReleaseAttribDC m_hAttribDC릴리스, 특성 디바이스 컨텍스트입니다.
CDC::ReleaseOutputDC m_hDC릴리스, 출력 디바이스 컨텍스트.
CDC::ResetDC 디바이스 컨텍스트를 m_hAttribDC 업데이트.
CDC::RestoreDC 와 함께 저장된 이전 상태로 디바이스 컨텍스트를 SaveDC복원합니다.
CDC::RoundRect 현재 펜을 사용하여 둥근 모서리가 있는 사각형을 그리고 현재 브러시를 사용하여 채운 사각형을 그립니다.
CDC::SaveDC 디바이스 컨텍스트의 현재 상태를 저장합니다.
CDC::ScaleViewportExt 현재 값을 기준으로 뷰포트 익스텐트 수정
CDC::ScaleWindowExt 현재 값을 기준으로 창 익스텐트 수정
CDC::ScrollDC 비트의 사각형을 가로 및 세로로 스크롤합니다.
CDC::SelectClipPath 지정된 모드를 사용하여 새 영역을 기존 클리핑 영역과 결합하여 디바이스 컨텍스트에 대한 클리핑 영역으로 현재 경로를 선택합니다.
CDC::SelectClipRgn 지정된 모드를 사용하여 지정된 영역을 현재 클리핑 영역과 결합합니다.
CDC::SelectObject 펜과 같은 GDI 그리기 개체를 선택합니다.
CDC::SelectPalette 논리 팔레트를 선택합니다.
CDC::SelectStockObject Windows에서 제공하는 미리 정의된 스톡 펜, 브러시 또는 글꼴 중 하나를 선택합니다.
CDC::SetAbortProc 인쇄 작업을 중단해야 하는 경우 Windows에서 호출하는 프로그래머 제공 콜백 함수를 설정합니다.
CDC::SetArcDirection 호 및 사각형 함수에 사용할 그리기 방향을 설정합니다.
CDC::SetAttribDC 특성 디바이스 컨텍스트를 설정합니다 m_hAttribDC.
CDC::SetBkColor 현재 배경색을 설정합니다.
CDC::SetBkMode 백그라운드 모드를 설정합니다.
CDC::SetBoundsRect 지정된 디바이스 컨텍스트에 대한 경계 사각형 정보의 누적을 제어합니다.
CDC::SetBrushOrg 디바이스 컨텍스트로 선택한 다음 브러시의 원본을 지정합니다.
CDC::SetColorAdjustment 지정된 값을 사용하여 디바이스 컨텍스트의 색 조정 값을 설정합니다.
CDC::SetDCBrushColor 현재 브러시 색을 설정합니다.
CDC::SetDCPenColor 현재 펜 색을 설정합니다.
CDC::SetGraphicsMode 지정된 디바이스 컨텍스트에 대한 현재 그래픽 모드를 설정합니다.
CDC::SetLayout 디바이스 컨텍스트(DC)의 레이아웃을 변경합니다.
CDC::SetMapMode 현재 매핑 모드를 설정합니다.
CDC::SetMapperFlags 논리 글꼴을 실제 글꼴에 매핑할 때 글꼴 매퍼가 사용하는 알고리즘을 변경합니다.
CDC::SetMiterLimit 디바이스 컨텍스트에 대한 miter 조인의 길이 제한을 설정합니다.
CDC::SetOutputDC 설정 m_hDC, 출력 디바이스 컨텍스트입니다.
CDC::SetPixel 지정된 지점의 픽셀을 지정된 색의 근사치에 가장 가깝게 설정합니다.
CDC::SetPixelV 지정된 좌표의 픽셀을 지정된 색의 근사치로 설정합니다. SetPixelV 는 그린 점의 색 값을 반환할 필요가 없기 때문에 더 SetPixel 빠릅니다.
CDC::SetPolyFillMode 다각형 채우기 모드를 설정합니다.
CDC::SetROP2 현재 그리기 모드를 설정합니다.
CDC::SetStretchBltMode 비트맵 스트레치 모드를 설정합니다.
CDC::SetTextAlign 텍스트 맞춤 플래그를 설정합니다.
CDC::SetTextCharacterExtra 문자 간 간격을 설정합니다.
CDC::SetTextColor 텍스트 색을 설정합니다.
CDC::SetTextJustification 문자열의 나누기 문자에 공백을 추가합니다.
CDC::SetViewportExt 뷰포트의 x 및 y 익스텐트 집합입니다.
CDC::SetViewportOrg 뷰포트 원본을 설정합니다.
CDC::SetWindowExt 연결된 창의 x 및 y 익스텐트 집합입니다.
CDC::SetWindowOrg 디바이스 컨텍스트의 창 원본을 설정합니다.
CDC::SetWorldTransform 현재 세계 공간을 페이지 공간 변환으로 설정합니다.
CDC::StartDoc 디바이스 드라이버에 새 인쇄 작업이 시작되고 있음을 알릴 수 있습니다.
CDC::StartPage 디바이스 드라이버에 새 페이지가 시작되고 있음을 알릴 수 있습니다.
CDC::StretchBlt 원본 사각형 및 디바이스에서 대상 사각형으로 비트맵을 이동하여 필요한 경우 비트맵을 확장하거나 압축하여 대상 사각형의 크기에 맞도록 합니다.
CDC::StrokeAndFillPath 경로의 열려 있는 그림을 닫고, 현재 펜을 사용하여 경로의 윤곽선을 친 다음, 현재 브러시를 사용하여 내부를 채웁니다.
CDC::StrokePath 현재 펜을 사용하여 지정된 경로를 렌더링합니다.
CDC::TabbedTextOut 탭을 탭 중지 위치 배열에 지정된 값으로 확장하여 지정된 위치에 문자열을 씁니다.
CDC::TextOut 현재 선택한 글꼴을 사용하여 지정된 위치에 문자열을 씁니다.
CDC::TransparentBlt 지정된 원본 디바이스 컨텍스트에서 대상 디바이스 컨텍스트로 색 데이터의 비트 블록을 전송하여 전송할 때 지정된 색을 투명하게 렌더링합니다.
CDC::UpdateColors 클라이언트 영역의 현재 색을 픽셀 단위로 시스템 팔레트에 일치시켜 디바이스 컨텍스트의 클라이언트 영역을 업데이트.
CDC::WidenPath 현재 경로가 디바이스 컨텍스트에 선택된 펜을 사용하여 스트로크된 경우 그릴 영역으로 현재 경로를 다시 정의합니다.

Public 연산자

이름 설명
CDC::operator HDC 디바이스 컨텍스트의 핸들을 검색합니다.

공용 데이터 멤버

이름 설명
CDC::m_hAttribDC CDC 개체에서 사용하는 특성-디바이스 컨텍스트입니다.
CDC::m_hDC CDC 개체에서 사용하는 출력 디바이스 컨텍스트입니다.

설명

이 개체는 CDC 디스플레이 또는 프린터와 같은 디바이스 컨텍스트를 사용하기 위한 멤버 함수와 창의 클라이언트 영역과 연결된 표시 컨텍스트를 사용하기 위한 멤버를 제공합니다.

개체의 멤버 함수를 통해 모든 그리기를 CDC 수행합니다. 이 클래스는 디바이스 컨텍스트 작업, 그리기 도구 작업, GDI(형식이 안전한 그래픽 디바이스 인터페이스) 개체 선택, 색 및 색상표 작업 등에 대한 멤버 함수를 제공합니다. 또한 그리기 특성 가져오기 및 설정, 매핑, 뷰포트 작업, 창 익스텐트 작업, 좌표 변환, 영역 작업, 클리핑, 선 그리기, 간단한 도형, 줄임표 및 다각형 그리기 등의 멤버 함수를 제공합니다. 텍스트 그리기, 글꼴 작업, 프린터 이스케이프 사용, 스크롤 및 메타파일 재생을 위한 멤버 함수도 제공됩니다.

개체를 사용하려면 개체를 CDC 생성한 다음 디바이스 컨텍스트를 사용하는 Windows 함수와 병렬로 작동하는 해당 멤버 함수를 호출합니다.

참고 항목

Windows 95/98에서는 모든 화면 좌표가 16비트로 제한됩니다. 따라서 int 멤버 함수에 CDC 전달된 값은 -32768에서 32767까지의 범위에 있어야 합니다.

특정 용도로 Microsoft Foundation 클래스 라이브러리는 에서 CDC 파생된 여러 클래스를 제공합니다. CPaintDC 및 .에 대한 호출을 BeginPaintEndPaint캡슐화합니다. CClientDC 는 창의 클라이언트 영역과 연결된 표시 컨텍스트를 관리합니다. CWindowDC 는 프레임 및 컨트롤을 포함하여 전체 창과 연결된 표시 컨텍스트를 관리합니다. CMetaFileDC 는 디바이스 컨텍스트를 메타파일과 연결합니다.

CDC는 두 개의 멤버 함수를 제공하며SetLayout, GetLayout 창에서 레이아웃을 상속하지 않는 디바이스 컨텍스트의 레이아웃을 반전합니다. 이러한 오른쪽에서 왼쪽 방향은 문자 레이아웃이 유럽 표준이 아닌 아랍어 또는 히브리어와 같은 문화권용으로 작성된 애플리케이션에 필요합니다.

CDC 에는 두 개의 디바이스 컨텍스트가 m_hDC 포함되며 m_hAttribDC개체를 만들 CDC 때 동일한 디바이스를 참조합니다. CDC 는 모든 출력 GDI 호출 m_hDC 과 대부분의 특성 GDI 호출을 지시합니다 m_hAttribDC. (특성 호출의 예는 GetTextColor출력 호출이지만) SetTextColor 입니다.

예를 들어 프레임워크는 이러한 두 디바이스 컨텍스트를 사용하여 물리적 디바이스에서 특성을 읽는 동안 메타파일로 출력을 보내는 개체를 구현 CMetaFileDC 합니다. 인쇄 미리 보기는 프레임워크에서 비슷한 방식으로 구현됩니다. 애플리케이션별 코드에서 비슷한 방식으로 두 디바이스 컨텍스트를 사용할 수도 있습니다.

디바이스 컨텍스트와 m_hAttribDC 디바이스 컨텍스트 모두에서 m_hDC 텍스트 메트릭 정보가 필요할 수 있는 경우가 있습니다. 다음 함수 쌍은 이 기능을 제공합니다.

m_hAttribDC 사용 m_hDC 사용
GetTextExtent GetOutputTextExtent
GetTabbedTextExtent GetOutputTabbedTextExtent
GetTextMetrics GetOutputTextMetrics
GetCharWidth GetOutputCharWidth

자세한 CDC내용은 디바이스 컨텍스트를 참조 하세요.

상속 계층 구조

CObject

CDC

요구 사항

헤더afxwin.h:

CDC::AbortDoc

현재 인쇄 작업을 종료하고 멤버 함수에 대한 마지막 호출 StartDoc 이후 애플리케이션이 디바이스에 쓴 모든 항목을 지웁니다.

int AbortDoc();

Return Value

성공하면 0보다 크거나 같은 값이거나 오류가 발생한 경우 음수 값입니다. 다음 목록에서는 일반적인 오류 값과 그 의미를 보여 줍니다.

  • SP_ERROR 일반 오류입니다.

  • SP_OUTOFDISK 현재 스풀링에 사용할 수 있는 디스크 공간이 부족하며 더 이상 사용할 수 있는 공간이 없습니다.

  • SP_OUTOFMEMORY 스풀링에 사용할 수 있는 메모리가 부족합니다.

  • SP_USERABORT 사용자가 인쇄 관리자를 통해 작업을 종료했습니다.

설명

이 멤버 함수는 프린터 이스케이프를 ABORTDOC 대체합니다.

AbortDoc 를 사용하여 다음을 종료해야 합니다.

  • 를 사용하여 SetAbortProc중단 함수를 지정하지 않는 인쇄 작업

  • 아직 첫 번째 NEWFRAME 또는 NEXTBAND 이스케이프 호출에 도달하지 않은 인쇄 작업입니다.

애플리케이션에서 인쇄 오류 또는 취소된 인쇄 작업이 발생하는 경우 클래스CDC의 멤버 함수 또는 AbortDoc 멤버 함수를 사용하여 EndDoc 작업을 종료하려고 하면 안 됩니다. GDI는 오류 값을 반환하기 전에 작업을 자동으로 종료합니다.

응용 프로그램에서 사용자가 인쇄 작업을 취소할 수 있도록 대화 상자를 표시하는 경우 대화 상자를 삭제하기 전에 호출 AbortDoc 해야 합니다.

인쇄 관리자를 사용하여 인쇄 작업을 시작한 경우 호출 AbortDoc 하면 전체 스풀 작업이 지워집니다. 프린터는 아무 것도 받지 않습니다. 인쇄 관리자를 사용하여 인쇄 작업을 시작하지 않은 경우 데이터가 호출되기 전에 AbortDoc 프린터로 전송되었을 수 있습니다. 이 경우 프린터 드라이버가 프린터를 다시 설정(가능한 경우)하고 인쇄 작업을 닫습니다.

예시

에 대한 예제를 CDC::StartDoc참조하세요.

CDC::AbortPath

디바이스 컨텍스트의 모든 경로를 닫고 카드.

BOOL AbortPath();

Return Value

함수가 성공하면 0이 아니고 그렇지 않으면 0입니다.

설명

디바이스 컨텍스트에 열린 경로 대괄호가 있는 경우 경로 대괄호가 닫히고 경로가 해제됩니다카드. 디바이스 컨텍스트에 닫힌 경로가 있는 경우 경로가 해제됩니다카드.

CDC::AddMetaFileComment

버퍼의 주석을 지정된 고급 형식 메타파일로 복사합니다.

BOOL AddMetaFileComment(
    UINT nDataSize,
    const BYTE* pCommentData);

매개 변수

nDataSize
주석 버퍼의 길이(바이트)를 지정합니다.

pCommentData
주석이 포함된 버퍼를 가리킵니다.

Return Value

함수가 성공하면 0이 아니고 그렇지 않으면 0입니다.

설명

메모에는 사진 원본 및 만든 날짜와 같은 개인 정보가 포함될 수 있습니다. 주석은 애플리케이션 서명과 데이터로 시작해야 합니다. 주석에는 위치별 데이터가 포함되어서는 안 됩니다. 위치별 데이터는 레코드의 위치를 지정하며, 하나의 메타파일이 다른 메타파일 내에 포함될 수 있으므로 포함해서는 안 됩니다. 이 함수는 향상된 메타파일에서만 사용할 수 있습니다.

CDC::AlphaBlend

이 멤버 함수를 호출하여 투명 또는 반투명 픽셀이 있는 비트맵을 표시합니다.

BOOL AlphaBlend(
    int xDest,
    int yDest,
    int nDestWidth,
    int nDestHeight,
    CDC* pSrcDC,
    int xSrc,
    int ySrc,
    int nSrcWidth,
    int nSrcHeight,
    BLENDFUNCTION blend);

매개 변수

xDest
대상 사각형의 왼쪽 위 모서리에 있는 x 좌표(논리 단위)를 지정합니다.

yDest
대상 사각형의 왼쪽 위 모서리에 있는 y 좌표를 논리 단위로 지정합니다.

nDestWidth
대상 사각형의 너비를 논리 단위로 지정합니다.

nDestHeight
대상 사각형의 높이를 논리 단위로 지정합니다.

pSrcDC
원본 디바이스 컨텍스트에 대한 포인터입니다.

xSrc
원본 사각형의 왼쪽 위 모서리에 있는 x 좌표를 논리 단위로 지정합니다.

ySrc
원본 사각형의 왼쪽 위 모서리에 있는 y 좌표를 논리 단위로 지정합니다.

nSrcWidth
원본 사각형의 너비를 논리 단위로 지정합니다.

nSrcHeight
원본 사각형의 높이를 논리 단위로 지정합니다.

blend
구조를 지정합니다 BLENDFUNCTION .

Return Value

성공하면 TRUE이고, 그렇지 않으면 FALSE입니다.

설명

자세한 내용은 Windows SDK를 참조 AlphaBlend 하세요.

CDC::AngleArc

선 세그먼트와 호를 그립니다.

BOOL AngleArc(
    int x,
    int y,
    int nRadius,
    float fStartAngle,
    float fSweepAngle);

매개 변수

x
원 가운데의 논리적 x 좌표를 지정합니다.

y
원 가운데의 논리적 y 좌표를 지정합니다.

nRadius
원의 반지름을 논리 단위로 지정합니다. 이 값은 양수여야 합니다.

fStartAngle
x축을 기준으로 시작 각도를 도 단위로 지정합니다.

fSweepAngle
시작 각도를 기준으로 스윕 각도를 도 단위로 지정합니다.

Return Value

성공하면 0이 아니고, 그렇지 않으면 0입니다.

설명

선 세그먼트는 현재 위치에서 호의 시작 부분으로 그려집니다. 호는 지정된 반지름과 가운데를 사용하여 원의 경계를 따라 그려집니다. 호 길이는 지정된 시작 및 스윕 각도로 정의됩니다.

AngleArc 는 현재 위치를 호 끝점으로 이동합니다. 이 함수에 의해 그려진 호는 현재 변환 및 매핑 모드에 따라 타원형으로 보일 수 있습니다. 호를 그리기 전에 이 함수는 현재 위치에서 호의 시작 부분으로 선 세그먼트를 그립니다. 호는 지정된 중심점 주위에 지정된 반지름을 사용하여 가상의 원을 생성하여 그려집니다. 원의 시작점은 원의 x축에서 시작 각도의 도 수만큼 시계 반대 방향으로 측정하여 결정됩니다. 끝점은 마찬가지로 시작점에서 비우기 각도의 각도로 시계 반대 방향으로 측정하여 배치됩니다.

스윕 각도가 360도보다 크면 호가 여러 번 스윕됩니다. 이 함수는 현재 펜을 사용하여 선을 그립니다. 그림이 채워지지 않습니다.

CDC::Arc

타원형 호를 그립니다.

BOOL Arc(
    int x1,
    int y1,
    int x2,
    int y2,
    int x3,
    int y3,
    int x4,
    int y4);

BOOL Arc(
    LPCRECT lpRect,
    POINT ptStart,
    POINT ptEnd);

매개 변수

x1
경계 사각형의 왼쪽 위 모퉁이의 x 좌표를 논리 단위로 지정합니다.

y1
경계 사각형의 왼쪽 위 모퉁이의 y 좌표를 논리 단위로 지정합니다.

x2
경계 사각형의 오른쪽 아래 모서리(논리 단위)의 x 좌표를 지정합니다.

y2
경계 사각형의 오른쪽 아래 모서리(논리 단위)의 y 좌표를 지정합니다.

x3
아크의 시작점을 정의하는 점의 x 좌표를 논리 단위로 지정합니다. 이 지점은 호에 정확히 놓을 필요가 없습니다.

y3
아크의 시작점을 정의하는 점의 y 좌표를 논리 단위로 지정합니다. 이 지점은 호에 정확히 놓을 필요가 없습니다.

x4
아크의 엔드포인트를 정의하는 점의 x 좌표를 논리 단위로 지정합니다. 이 지점은 호에 정확히 놓을 필요가 없습니다.

y4
아크의 엔드포인트를 정의하는 점의 y 좌표를 논리 단위로 지정합니다. 이 지점은 호에 정확히 놓을 필요가 없습니다.

lpRect
경계 사각형을 논리 단위로 지정합니다. 이 매개 변수에 LPRECT 대한 개체 또는 개체를 CRect 전달할 수 있습니다.

ptStart
아크의 시작점을 정의하는 점의 x 좌표와 y 좌표를 논리 단위로 지정합니다. 이 지점은 호에 정확히 놓을 필요가 없습니다. 이 매개 변수에 대한 POINT 구조체 또는 개체를 CPoint 전달할 수 있습니다.

ptEnd
아크의 끝점을 정의하는 점의 x 좌표와 y 좌표를 논리 단위로 지정합니다. 이 지점은 호에 정확히 놓을 필요가 없습니다. 이 매개 변수에 대한 POINT 구조체 또는 개체를 CPoint 전달할 수 있습니다.

Return Value

함수가 성공하면 0이 아니고 그렇지 않으면 0입니다.

설명

함수를 사용하여 그린 호는 지정된 경계 사각형에 의해 정의된 타원의 세그먼트입니다.

호의 실제 시작점은 지정된 시작점을 통해 경계 사각형의 중심에서 가져온 광선이 타원과 교차하는 지점입니다. 호의 실제 끝점은 지정된 끝점을 통해 경계 사각형의 중심에서 가져온 광선이 타원과 교차하는 지점입니다. 아크는 시계 반대 방향으로 그려집니다. 호는 닫힌 그림이 아니므로 채워지지 않습니다. 사각형의 너비와 높이는 모두 2단원보다 크고 32,767단원 미만이어야 합니다.

예시

void CDCView::DrawArc(CDC *pDC)
{
   // Fill the client area with a thin circle. The circle's
   // interior is not filled. The circle's perimeter is
   // blue from 6 o'clock to 3 o'clock and red from 3
   // o'clock to 6 o'clock.

   // Get the client area.
   CRect rectClient;
   GetClientRect(rectClient);

   // Make a couple of pens.
   CPen penBlue;
   CPen penRed;
   CPen *pOldPen;

   penBlue.CreatePen(PS_SOLID | PS_COSMETIC, 1, RGB(0, 0, 255));
   penRed.CreatePen(PS_SOLID | PS_COSMETIC, 1, RGB(255, 0, 0));

   // Draw from 3 o'clock to 6 o'clock, counterclockwise,
   // in a blue pen.

   pOldPen = pDC->SelectObject(&penBlue);

   pDC->Arc(rectClient,
            CPoint(rectClient.right, rectClient.CenterPoint().y),
            CPoint(rectClient.CenterPoint().x, rectClient.right));

   // Draw from 6 o'clock to 3 o'clock, counterclockwise,
   // in a red pen.
   pDC->SelectObject(&penRed);

   // Keep the same parameters, but reverse start
   // and end points.
   pDC->Arc(rectClient,
            CPoint(rectClient.CenterPoint().x, rectClient.right),
            CPoint(rectClient.right, rectClient.CenterPoint().y));

   // Restore the previous pen.
   pDC->SelectObject(pOldPen);
}

CDC::ArcTo

타원형 호를 그립니다.

BOOL ArcTo(
    int x1,
    int y1,
    int x2,
    int y2,
    int x3,
    int y3,
    int x4,
    int y4);

BOOL ArcTo(
    LPCRECT lpRect,
    POINT ptStart,
    POINT ptEnd);

매개 변수

x1
경계 사각형의 왼쪽 위 모퉁이의 x 좌표를 논리 단위로 지정합니다.

y1
경계 사각형의 왼쪽 위 모퉁이의 y 좌표를 논리 단위로 지정합니다.

x2
경계 사각형의 오른쪽 아래 모서리(논리 단위)의 x 좌표를 지정합니다.

y2
경계 사각형의 오른쪽 아래 모서리(논리 단위)의 y 좌표를 지정합니다.

x3
아크의 시작점을 정의하는 점의 x 좌표를 논리 단위로 지정합니다. 이 지점은 호에 정확히 놓을 필요가 없습니다.

y3
아크의 시작점을 정의하는 점의 y 좌표를 논리 단위로 지정합니다. 이 지점은 호에 정확히 놓을 필요가 없습니다.

x4
아크의 엔드포인트를 정의하는 점의 x 좌표를 논리 단위로 지정합니다. 이 지점은 호에 정확히 놓을 필요가 없습니다.

y4
아크의 엔드포인트를 정의하는 점의 y 좌표를 논리 단위로 지정합니다. 이 지점은 호에 정확히 놓을 필요가 없습니다.

lpRect
경계 사각형을 논리 단위로 지정합니다. 데이터 구조에 대한 포인터 RECT 또는 이 매개 변수의 개체를 CRect 전달할 수 있습니다.

ptStart
아크의 시작점을 정의하는 점의 x 좌표와 y 좌표를 논리 단위로 지정합니다. 이 지점은 호에 정확히 놓을 필요가 없습니다. 이 매개 변수에 POINT 대한 데이터 구조 또는 개체를 CPoint 전달할 수 있습니다.

ptEnd
아크의 끝점을 정의하는 점의 x 좌표와 y 좌표를 논리 단위로 지정합니다. 이 지점은 호에 정확히 놓을 필요가 없습니다. 이 매개 변수에 POINT 대한 데이터 구조 또는 개체를 CPoint 전달할 수 있습니다.

Return Value

함수가 성공하면 0이 아니고 그렇지 않으면 0입니다.

설명

이 함수는 현재 위치가 업데이트된다는 점을 제외하고 유사 CDC::Arc합니다. 점( x1, y1) 및 ( x2) y2)은 경계 사각형을 지정합니다. 지정된 경계 사각형에 의해 형성된 타원은 호의 곡선을 정의합니다. 호는 경계 사각형의 중심에서 (*x3*, y3)로 방사형 선을 교차하는 지점에서 시계 반대 방향(기본 호 방향)을 확장합니다. 호는 경계 사각형의 중심에서 ( x4, y4)로 방사형 선을 교차하는 위치로 끝납니다. 시작점과 끝점이 같으면 전체 줄임표가 그려집니다.

현재 위치에서 원호의 시작점으로 선이 그려집니다. 오류가 발생하지 않으면 현재 위치가 호 끝점으로 설정됩니다. 현재 펜을 사용하여 호를 그립니다. 채워지지 않습니다.

CDC::Attach

이 멤버 함수를 사용하여 개체에 hDC 연결합니다 CDC .

BOOL Attach(HDC hDC);

매개 변수

hDC
Windows 디바이스 컨텍스트입니다.

Return Value

함수가 성공하면 0이 아니고 그렇지 않으면 0입니다.

설명

출력 hDC 디바이스 컨텍스트와 특성 디바이스 컨텍스트 모두 m_hDCm_hAttribDC저장됩니다.

CDC::BeginPath

디바이스 컨텍스트에서 경로 대괄호를 엽니다.

BOOL BeginPath();

Return Value

함수가 성공하면 0이 아니고 그렇지 않으면 0입니다.

설명

경로 대괄호를 연 후 애플리케이션은 GDI 그리기 함수를 호출하여 경로에 있는 점을 정의할 수 있습니다. 애플리케이션은 멤버 함수를 호출하여 열린 경로 대괄호를 닫을 EndPath 수 있습니다. 애플리케이션이 호출BeginPath될 때 이전 경로는 모두 해제됩니다카드.

경로의 점을 정의하는 그리기 함수 목록은 Windows SDK를 참조 BeginPath 하세요.

예시

// This implementation uses GDI paths to draw the outline of
// some text in a TrueType font. The path is used to record the way
// the TrueType font would be drawn. Then, the function uses the data
// returned from CDC::GetPath() to draw the font--without filling it.
void CDCView::DrawPath(CDC *pDC)
{
   // Describe a 24-point truetype font of normal weight
   LOGFONT lf;
   memset(&lf, 0, sizeof(lf));
   lf.lfHeight = -MulDiv(24, pDC->GetDeviceCaps(LOGPIXELSY), 72);
   lf.lfWeight = FW_NORMAL;
   lf.lfOutPrecision = OUT_TT_ONLY_PRECIS;

   // create and select it
   CFont newFont;
   if (!newFont.CreateFontIndirect(&lf))
      return;
   CFont *pOldFont = pDC->SelectObject(&newFont);

   // use a path to record how the text was drawn
   pDC->BeginPath();
   pDC->TextOut(10, 10, _T("Outline this!"));
   pDC->EndPath();

   // Find out how many points are in the path. Note that
   // for long strings or complex fonts, this number might be
   // gigantic!
   int nNumPts = pDC->GetPath(NULL, NULL, 0);
   if (nNumPts == 0)
      return;

   // Allocate memory to hold points and stroke types from
   // the path.
   LPPOINT lpPoints = NULL;
   LPBYTE lpTypes = NULL;
   try
   {
      lpPoints = new POINT[nNumPts];
      lpTypes = new BYTE[nNumPts];
   }
   catch (CException *pe)
   {
      delete[] lpPoints;
      lpPoints = NULL;
      delete[] lpTypes;
      lpTypes = NULL;
      pe->Delete();
   }
   if (lpPoints == NULL || lpTypes == NULL)
      return;

   // Now that we have the memory, really get the path data.
   nNumPts = pDC->GetPath(lpPoints, lpTypes, nNumPts);

   // If it worked, draw the lines. Windows 98 doesn't support
   // the PolyDraw API, so we use our own member function to do
   // similar work. If you're targeting only later versions of
   // Windows, you can use the PolyDraw() API and avoid the
   // COutlineView::PolyDraw() member function.

   if (nNumPts != -1)
      pDC->PolyDraw(lpPoints, lpTypes, nNumPts);

   // Release the memory we used
   delete[] lpPoints;
   delete[] lpTypes;

   // Put back the old font
   pDC->SelectObject(pOldFont);

   return;
}

CDC::BitBlt

원본 디바이스 컨텍스트에서 이 현재 디바이스 컨텍스트로 비트맵을 복사합니다.

BOOL BitBlt(
    int x,
    int y,
    int nWidth,
    int nHeight,
    CDC* pSrcDC,
    int xSrc,
    int ySrc,
    DWORD dwRop);

매개 변수

x
대상 사각형의 왼쪽 위 모퉁이에 대한 논리적 x 좌표를 지정합니다.

y
대상 사각형의 왼쪽 위 모퉁이에 대한 논리적 y 좌표를 지정합니다.

nWidth
대상 사각형 및 원본 비트맵의 너비(논리 단위)를 지정합니다.

nHeight
대상 사각형 및 원본 비트맵의 높이(논리 단위)를 지정합니다.

pSrcDC
비트맵을 CDC 복사할 디바이스 컨텍스트를 식별하는 개체에 대한 포인터입니다. 원본을 NULL 포함하지 않는 래스터 작업을 지정하는 경우 dwRop 여야 합니다.

xSrc
원본 비트맵의 왼쪽 위 모퉁이에 대한 논리적 x 좌표를 지정합니다.

ySrc
원본 비트맵의 왼쪽 위 모퉁이에 대한 논리적 y 좌표를 지정합니다.

dwRop
수행할 래스터 연산을 지정합니다. 래스터 작업 코드는 GDI가 현재 브러시, 가능한 소스 비트맵 및 대상 비트맵을 포함하는 출력 작업에서 색을 결합하는 방법을 정의합니다. 래스터 작업 코드 목록 및 해당 설명은 Windows SDK를 dwRop 참조 BitBlt 하세요.

래스터 작업 코드의 전체 목록은 Windows SDK의 래스터 작업 코드 정보(About Raster Operation Codes)를 참조하세요.

Return Value

함수가 성공하면 0이 아니고 그렇지 않으면 0입니다.

설명

애플리케이션은 바이트 경계의 창 또는 클라이언트 영역을 정렬하여 바이트 정렬 사각형에서 작업이 수행되도록 할 BitBlt 수 있습니다. (창 클래스를 CS_BYTEALIGNWINDOW 등록할 때 또는 CS_BYTEALIGNCLIENT 플래그를 설정합니다.)

BitBlt 바이트 정렬 사각형에 대한 작업은 바이트 정렬되지 않은 사각형에 대한 작업보다 BitBlt 훨씬 빠릅니다. 사용자 고유의 디바이스 컨텍스트에 대한 바이트 맞춤과 같은 클래스 스타일을 지정하려면 Microsoft Foundation 클래스에 의존하지 않고 창 클래스를 등록해야 합니다. 전역 함수 AfxRegisterWndClass를 사용합니다.

GDI는 대상 디바이스 컨텍스트를 nWidthnHeight사용하여 한 번, 원본 디바이스 컨텍스트를 사용하여 한 번 변환하고, 한 번 변환합니다. 결과 익스텐트가 일치하지 않으면 GDI는 Windows StretchBlt 함수를 사용하여 필요에 따라 원본 비트맵을 압축하거나 늘입니다.

대상, 원본 및 패턴 비트맵의 색 형식 BitBlt 이 같지 않으면 함수는 원본 및 패턴 비트맵을 대상과 일치하도록 변환합니다. 대상 비트맵의 전경 및 배경색이 변환에 사용됩니다.

함수는 BitBlt 단색 비트맵을 색으로 변환할 때 흰색 비트(1)를 배경색으로, 검은색 비트(0)를 전경색으로 설정합니다. 대상 디바이스 컨텍스트의 전경 및 배경색이 사용됩니다. 색을 단색 BitBlt 으로 변환하려면 배경색과 일치하는 픽셀을 흰색으로 설정하고 다른 모든 픽셀을 검은색으로 설정합니다. BitBlt 는 색 디바이스 컨텍스트의 전경색과 배경색을 사용하여 색에서 단색으로 변환합니다.

모든 디바이스 컨텍스트가 지원 BitBlt되지는 않습니다. 지정된 디바이스 컨텍스트가 지원하는BitBlt지 여부를 검사 멤버 함수를 GetDeviceCaps 사용하고 RASTERCAPS 인덱스를 지정합니다.

예시

에 대한 예제를 CDC::CreateCompatibleDC참조하세요.

CDC::CDC

CDC 개체를 생성합니다.

CDC();

CDC::Chord

화음(줄임표와 선 세그먼트의 교집합으로 경계가 지정된 닫힌 그림)을 그립니다.

BOOL Chord(
    int x1,
    int y1,
    int x2,
    int y2,
    int x3,
    int y3,
    int x4,
    int y4);

BOOL Chord(
    LPCRECT lpRect,
    POINT ptStart,
    POINT ptEnd);

매개 변수

x1
코드 경계 사각형의 왼쪽 위 모퉁이의 x 좌표를 논리 단위로 지정합니다.

y1
코드 경계 사각형의 왼쪽 위 모퉁이에 대한 y 좌표를 논리 단위로 지정합니다.

x2
코드 경계 사각형의 오른쪽 아래 모퉁이의 x 좌표를 논리 단위로 지정합니다.

y2
코드 경계 사각형의 오른쪽 아래 모서리에 대한 y 좌표를 논리 단위로 지정합니다.

x3
코드의 시작점을 정의하는 점의 x 좌표를 논리 단위로 지정합니다.

y3
코드의 시작점을 정의하는 점의 y 좌표를 논리 단위로 지정합니다.

x4
코드의 엔드포인트를 정의하는 점의 x 좌표를 논리 단위로 지정합니다.

y4
코드의 엔드포인트를 정의하는 점의 y 좌표를 논리 단위로 지정합니다.

lpRect
경계 사각형을 논리 단위로 지정합니다. 이 매개 변수에 LPRECT 대한 개체 또는 개체를 CRect 전달할 수 있습니다.

ptStart
코드의 시작점을 정의하는 점의 x 좌표와 y 좌표를 논리 단위로 지정합니다. 이 점은 코드에 정확히 거짓말을 할 필요가 없습니다. 이 매개 변수에 대한 POINT 구조체 또는 개체를 CPoint 전달할 수 있습니다.

*ptEnd*
코드의 끝점을 정의하는 점의 x 및 y 좌표를 논리 단위로 지정합니다. 이 점은 코드에 정확히 거짓말을 할 필요가 없습니다. 이 매개 변수에 대한 POINT 구조체 또는 개체를 CPoint 전달할 수 있습니다.

Return Value

함수가 성공하면 0이 아니고 그렇지 않으면 0입니다.

설명

( x1, y1) 및 (, x2y2) 매개 변수는 코드의 일부인 타원을 경계하는 사각형의 왼쪽 위와 오른쪽 아래 모서리를 각각 지정합니다. ( x3, y3) 및 (, x4y4) 매개 변수는 줄임표를 교차하는 선의 엔드포인트를 지정합니다. 코드는 선택한 펜을 사용하여 그려지고 선택한 브러시를 사용하여 채워집니다.

함수에서 Chord 그린 그림이 최대로 확장되지만 오른쪽 및 아래쪽 좌표는 포함되지 않습니다. 즉, 그림의 높이와 y2 - y1 그림의 너비가 입니다.x2 - x1

예시

void CDCView::DrawChord(CDC *pDC)
{
   // Fill the client area with a circle. The circle is
   // blue and filled with blue, but has a chord cut out
   // of it from 3 o'clock to 6 o'clock. That chord is
   // red and filled with a red diagonal hatch.

   // Get the client area.
   CRect rectClient;
   GetClientRect(rectClient);

   // Make a couple of pens and similar brushes.
   CPen penBlue, penRed;
   CBrush brushBlue, brushRed;
   CBrush *pOldBrush;
   CPen *pOldPen;

   brushBlue.CreateSolidBrush(RGB(0, 0, 255));
   brushRed.CreateHatchBrush(HS_FDIAGONAL, RGB(255, 0, 0));
   penBlue.CreatePen(PS_SOLID | PS_COSMETIC, 1, RGB(0, 0, 255));
   penRed.CreatePen(PS_SOLID | PS_COSMETIC, 1, RGB(255, 0, 0));

   // Draw from 3 o'clock to 6 o'clock, counterclockwise,
   // in a blue pen with a solid blue fill.
   pOldPen = pDC->SelectObject(&penBlue);
   pOldBrush = pDC->SelectObject(&brushBlue);

   pDC->Chord(rectClient,
              CPoint(rectClient.right, rectClient.CenterPoint().y),
              CPoint(rectClient.CenterPoint().x, rectClient.right));

   // Draw the remaining quarter chord from 6 o'clock
   // to 3 o'clock, counterclockwise, in a red pen
   // with the hatched brush.
   pDC->SelectObject(&penRed);
   pDC->SelectObject(&brushRed);

   // Keep the same parameters, but reverse start and
   // end points.
   pDC->Chord(rectClient,
              CPoint(rectClient.CenterPoint().x, rectClient.right),
              CPoint(rectClient.right, rectClient.CenterPoint().y));

   // Restore the previous pen.
   pDC->SelectObject(pOldPen);
}

CDC::CloseFigure

경로에서 열린 그림을 닫습니다.

BOOL CloseFigure();

Return Value

함수가 성공하면 0이 아니고 그렇지 않으면 0입니다.

설명

함수는 현재 위치에서 그림의 첫 번째 지점(일반적으로 멤버 함수에 대한 가장 최근 호출 MoveTo 에 지정된 점)으로 선을 그려 그림을 닫고 선 조인 스타일을 사용하여 선을 연결합니다. 그림이 대신 CloseFigure멤버 함수를 LineTo 사용하여 닫힌 경우 끝 대문자는 조인 대신 모서리를 만드는 데 사용됩니다. CloseFigure 는 디바이스 컨텍스트에 열린 경로 대괄호가 있는 경우에만 호출되어야 합니다.

이 함수를 사용하여 명시적으로 닫혀 있지 않으면 경로의 그림이 열립니다. (그림의 현재 점과 시작점이 같더라도 그림이 열릴 수 있습니다.) 새 그림을 시작한 후 CloseFigure 경로에 추가된 모든 선 또는 곡선입니다.

CDC::CreateCompatibleDC

에 지정된 디바이스와 호환되는 메모리 디바이스 컨텍스트를 pDC만듭니다.

BOOL CreateCompatibleDC(CDC* pDC);

매개 변수

pDC
디바이스 컨텍스트에 대한 포인터입니다. 이 경우 pDC 함수는 NULL시스템 디스플레이와 호환되는 메모리 디바이스 컨텍스트를 만듭니다.

Return Value

함수가 성공하면 0이 아니고 그렇지 않으면 0입니다.

설명

메모리 디바이스 컨텍스트는 디스플레이 화면을 나타내는 메모리 블록입니다. 호환되는 디바이스의 실제 디바이스 화면에 복사하기 전에 메모리의 이미지를 준비하는 데 사용할 수 있습니다.

메모리 디바이스 컨텍스트가 만들어지면 GDI는 자동으로 1x1 단색 스톡 비트맵을 선택합니다. GDI 출력 함수는 비트맵이 만들어지고 해당 컨텍스트로 선택된 경우에만 메모리 디바이스 컨텍스트에서 사용할 수 있습니다.

이 함수는 래스터 작업을 지원하는 디바이스에 대해 호환되는 디바이스 컨텍스트를 만드는 데만 사용할 수 있습니다. CDC::BitBlt 디바이스 컨텍스트 간의 비트 블록 전송에 대한 자세한 내용은 멤버 함수를 참조하세요. 디바이스 컨텍스트가 래스터 작업을 지원하는지 여부를 확인하려면 멤버 함수CDC::GetDeviceCapsRC_BITBLT 래스터 기능을 참조하세요.

예시

// This handler loads a bitmap from system resources,
// centers it in the view, and uses BitBlt() to paint the bitmap
// bits.
void CDCView::DrawBitmap(CDC *pDC)
{
   // load IDB_BITMAP1 from our resources
   CBitmap bmp;
   if (bmp.LoadBitmap(IDB_BITMAP1))
   {
      // Get the size of the bitmap
      BITMAP bmpInfo;
      bmp.GetBitmap(&bmpInfo);

      // Create an in-memory DC compatible with the
      // display DC we're using to paint
      CDC dcMemory;
      dcMemory.CreateCompatibleDC(pDC);

      // Select the bitmap into the in-memory DC
      CBitmap *pOldBitmap = dcMemory.SelectObject(&bmp);

      // Find a centerpoint for the bitmap in the client area
      CRect rect;
      GetClientRect(&rect);
      int nX = rect.left + (rect.Width() - bmpInfo.bmWidth) / 2;
      int nY = rect.top + (rect.Height() - bmpInfo.bmHeight) / 2;

      // Copy the bits from the in-memory DC into the on-
      // screen DC to actually do the painting. Use the centerpoint
      // we computed for the target offset.
      pDC->BitBlt(nX, nY, bmpInfo.bmWidth, bmpInfo.bmHeight, &dcMemory,
                  0, 0, SRCCOPY);

      dcMemory.SelectObject(pOldBitmap);
   }
   else
   {
      TRACE0("ERROR: Where's IDB_BITMAP1?\n");
   }
}

CDC::CreateDC

지정된 디바이스에 대한 디바이스 컨텍스트를 만듭니다.

BOOL CreateDC(
    LPCTSTR lpszDriverName,
    LPCTSTR lpszDeviceName,
    LPCTSTR lpszOutput,
    const void* lpInitData);

매개 변수

lpszDriverName
디바이스 드라이버의 파일 이름(예: "EPSON")을 지정하는 null로 끝나는 문자열을 가리킵니다. 이 매개 변수에 대한 개체를 CString 전달할 수도 있습니다.

lpszDeviceName
지원되는 특정 디바이스의 이름(예: "EPSON FX-80")을 지정하는 null로 끝나는 문자열을 가리킵니다. lpszDeviceName 모듈에서 둘 이상의 디바이스를 지원하는 경우 매개 변수가 사용됩니다. 이 매개 변수에 대한 개체를 CString 전달할 수도 있습니다.

lpszOutput
실제 출력 매체(파일 또는 출력 포트)의 파일 또는 디바이스 이름을 지정하는 null로 끝나는 문자열을 가리킵니다. 이 매개 변수에 대한 개체를 CString 전달할 수도 있습니다.

lpInitData
디바이스 드라이버에 DEVMODE 대한 디바이스별 초기화 데이터가 포함된 구조를 가리킵니다. Windows DocumentProperties 함수는 지정된 디바이스에 대해 채워진 이 구조를 검색합니다. 매개 변수는 lpInitData 디바이스 드라이버가 제어판 통해 사용자가 지정한 기본 초기화(있는 경우)를 사용하는 경우여야 합니다NULL.

Return Value

함수가 성공하면 0이 아니고 그렇지 않으면 0입니다.

설명

PRINT.H 구조체를 사용하는 경우 DEVMODE 헤더 파일이 필요합니다.

디바이스 이름은 다음 규칙을 따릅니다. 종료 콜론(:) 권장되지만 선택 사항입니다. Windows는 콜론으로 끝나는 디바이스 이름이 콜론 없이 동일한 이름과 동일한 포트에 매핑되도록 종료 콜론을 제거합니다. 드라이버 및 포트 이름에는 선행 또는 후행 공백이 포함되어서는 안됩니다. GDI 출력 함수는 정보 컨텍스트와 함께 사용할 수 없습니다.

CDC::CreateIC

지정된 디바이스에 대한 정보 컨텍스트를 만듭니다.

BOOL CreateIC(
    LPCTSTR lpszDriverName,
    LPCTSTR lpszDeviceName,
    LPCTSTR lpszOutput,
    const void* lpInitData);

매개 변수

lpszDriverName
디바이스 드라이버의 파일 이름(예: "EPSON")을 지정하는 null로 끝나는 문자열을 가리킵니다. 이 매개 변수에 대한 개체를 CString 전달할 수 있습니다.

lpszDeviceName
지원되는 특정 디바이스의 이름(예: "EPSON FX-80")을 지정하는 null로 끝나는 문자열을 가리킵니다. lpszDeviceName 모듈에서 둘 이상의 디바이스를 지원하는 경우 매개 변수가 사용됩니다. 이 매개 변수에 대한 개체를 CString 전달할 수 있습니다.

lpszOutput
실제 출력 매체(파일 또는 포트)의 파일 또는 디바이스 이름을 지정하는 null로 끝나는 문자열을 가리킵니다. 이 매개 변수에 대한 개체를 CString 전달할 수 있습니다.

lpInitData
디바이스 드라이버에 대한 디바이스별 초기화 데이터를 가리킵니다. 매개 변수는 lpInitData 디바이스 드라이버가 제어판 통해 사용자가 지정한 기본 초기화(있는 경우)를 사용하는 경우여야 합니다NULL. 디바이스별 초기화에 대한 데이터 형식은 참조 CreateDC 하세요.

Return Value

성공하면 0이 아니고, 그렇지 않으면 0입니다.

설명

정보 컨텍스트는 디바이스 컨텍스트를 만들지 않고 디바이스에 대한 정보를 빠르게 가져올 수 있는 방법을 제공합니다.

디바이스 이름은 다음 규칙을 따릅니다. 종료 콜론(:) 권장되지만 선택 사항입니다. Windows는 콜론으로 끝나는 디바이스 이름이 콜론 없이 동일한 이름과 동일한 포트에 매핑되도록 종료 콜론을 제거합니다. 드라이버 및 포트 이름에는 선행 또는 후행 공백이 포함되어서는 안됩니다. GDI 출력 함수는 정보 컨텍스트와 함께 사용할 수 없습니다.

CDC::DeleteDC

일반적으로 이 함수를 호출하지 마세요. 소멸자가 이 작업을 수행합니다.

BOOL DeleteDC();

Return Value

함수가 성공적으로 완료된 경우 0이 아닌 경우 그렇지 않으면 0입니다.

설명

멤버 함수는 DeleteDC 현재 CDC 개체에 연결된 m_hDC Windows 디바이스 컨텍스트를 삭제합니다. 이 CDC 개체가 지정된 디바이스의 마지막 활성 디바이스 컨텍스트인 경우 디바이스에서 사용하는 모든 스토리지 및 시스템 리소스가 해제됩니다.

디바이스 컨텍스트에서 개체를 선택한 경우 애플리케이션이 호출 DeleteDC 해서는 안 됩니다. 삭제하기 전에 먼저 디바이스 컨텍스트에서 개체를 선택해야 합니다.

애플리케이션은 호출 CWnd::GetDC을 통해 핸들을 가져온 디바이스 컨텍스트를 삭제해서는 안 됩니다. 대신 디바이스 컨텍스트를 해제하도록 호출 CWnd::ReleaseDC 해야 합니다. 이 CClientDC 기능을 래핑하기 위해 클래스와 CWindowDC 클래스가 제공됩니다.

DeleteDC 함수는 일반적으로 또는 로 만든 CreateDCCreateICCreateCompatibleDC디바이스 컨텍스트를 삭제하는 데 사용됩니다.

예시

에 대한 예제를 CPrintDialog::GetPrinterDC참조하세요.

CDC::DeleteTempMap

유휴 시간 처리기에 DeleteTempMap 의해 CWinApp 자동으로 호출되면 생성된 FromHandle임시 CDC 개체가 삭제되지만 개체와 CDC 일시적으로 연결된 디바이스 컨텍스트 핸들hDC은 삭제되지 않습니다.

static void PASCAL DeleteTempMap();

CDC::Detach

이 함수를 호출하여 개체에서 CDC 분리 m_hDC (출력 디바이스 컨텍스트)하고 둘 다 m_hDCm_hAttribDCNULL설정합니다.

HDC Detach();

Return Value

Windows 디바이스 컨텍스트입니다.

CDC::DPtoHIMETRIC

OLE에 크기를 지정 HIMETRIC 하고 픽셀을 .로 변환할 때 이 함수를 HIMETRIC사용합니다.

void DPtoHIMETRIC(LPSIZE lpSize) const;

매개 변수

lpSize
SIZE 구조 또는 CSize 개체를 가리킵니다.

설명

디바이스 컨텍스트 개체의 매핑 모드가 MM_LOENGLISH, MM_HIENGLISHMM_LOMETRIC또는 MM_HIMETRIC변환인 경우 변환은 실제 인치의 픽셀 수를 기반으로 합니다. 매핑 모드가 제약이 없는 다른 모드(예 MM_TEXT: )중 하나인 경우 변환은 논리 인치의 픽셀 수를 기반으로 합니다.

CDC::DPtoLP

디바이스 단위를 논리 단위로 변환합니다.

void DPtoLP(
    LPPOINT lpPoints,
    int nCount = 1) const;

void DPtoLP(LPRECT lpRect) const;
void DPtoLP(LPSIZE lpSize) const;

매개 변수

lpPoints
구조체 또는 CPoint 개체의 POINT 배열을 가리킵니다.

nCount
배열의 점 수입니다.

lpRect
구조체 또는 CRect 개체를 RECT 가리킵니다. 이 매개 변수는 하나의 사각형을 디바이스 포인트에서 논리 지점으로 변환하는 간단한 경우에 사용됩니다.

lpSize
구조체 또는 CSize 개체를 SIZE 가리킵니다.

설명

이 함수는 디바이스 좌표계에서 GDI의 논리 좌표계로 각 점 또는 크기의 차원의 좌표를 매핑합니다. 변환은 현재 매핑 모드와 디바이스 창 및 뷰포트에 대한 원본 및 익스텐트의 설정에 따라 달라집니다.

CDC::Draw3dRect

이 멤버 함수를 호출하여 3차원 사각형을 그립니다.

void Draw3dRect(
    LPCRECT lpRect,
    COLORREF clrTopLeft,
    COLORREF clrBottomRight);

void Draw3dRect(
    int x,
    int y,
    int cx,
    int cy,
    COLORREF clrTopLeft,
    COLORREF clrBottomRight);

매개 변수

lpRect
경계 사각형을 논리 단위로 지정합니다. 이 매개 변수에 대한 개체 또는 구조체 RECT 에 대한 포인터를 CRect 전달할 수 있습니다.

clrTopLeft
3차원 사각형의 위쪽 및 왼쪽 색을 지정합니다.

clrBottomRight
3차원 사각형의 아래쪽 및 오른쪽 색을 지정합니다.

x
3차원 사각형의 왼쪽 위 모퉁이에 대한 논리적 x 좌표를 지정합니다.

y
3차원 사각형의 왼쪽 위 모퉁이에 대한 논리적 y 좌표를 지정합니다.

cx
3차원 사각형의 너비를 지정합니다.

cy
3차원 사각형의 높이를 지정합니다.

설명

사각형은 지정 clrTopLeft 한 색의 위쪽과 왼쪽, 지정한 색 clrBottomRight의 아래쪽 및 오른쪽 면으로 그려집니다.

예시

void CDCView::Draw3dRect(CDC *pDC)
{
   // get the client area
   CRect rect;
   GetClientRect(rect);

   // shrink our rect 20 pixels on all sides
   rect.DeflateRect(20, 20);

   // draw a rectangle with red top and left sides, and
   // green right and bottom sides.
   pDC->Draw3dRect(rect, RGB(255, 0, 0), RGB(0, 255, 0));

   // This call to the four-integer override would draw
   // the same rectangle with a little less convenience:

   // pDC->Draw3dRect(rect.left, rect.top, rect.Width(), rect.Height(),
   //    RGB(255, 0, 0), RGB(0, 255, 0));
}

CDC::DrawDragRect

끌기 사각형을 다시 그리려면 이 멤버 함수를 반복적으로 호출합니다.

void DrawDragRect(
    LPCRECT lpRect,
    SIZE size,
    LPCRECT lpRectLast,
    SIZE sizeLast,
    CBrush* pBrush = NULL,
    CBrush* pBrushLast = NULL);

매개 변수

lpRect
RECT 사각형의 논리적 좌표를 지정하는 구조체 또는 CRect 개체를 가리킵니다. 이 경우 다시 그려지는 사각형의 끝 위치를 가리킵니다.

size
바깥쪽 테두리의 왼쪽 위 모서리에서 사각형의 안쪽 테두리(즉, 테두리 두께)의 왼쪽 위 모서리로의 변위를 지정합니다.

lpRectLast
RECT 사각형 위치의 논리적 좌표를 지정하는 구조체 또는 CRect 개체를 가리킵니다. 이 경우 다시 그려지는 사각형의 원래 위치입니다.

sizeLast
바깥쪽 테두리의 왼쪽 위 모서리에서 다시 그려지는 원래 사각형의 안쪽 테두리(즉, 테두리 두께)의 왼쪽 위 모서리로의 변위를 지정합니다.

pBrush
브러시 개체에 대한 포인터입니다. NULL 기본 하프톤 브러시를 사용하도록 설정합니다.

pBrushLast
사용된 마지막 브러시 개체에 대한 포인터입니다. NULL 기본 하프톤 브러시를 사용하도록 설정합니다.

설명

시각적 피드백을 제공하기 위해 마우스 위치를 샘플링할 때 루프에서 호출합니다. 호출 DrawDragRect하면 이전 사각형이 지워지고 새 사각형이 그려집니다. 예를 들어 사용자가 화면을 DrawDragRect 가로질러 사각형을 끌면 원래 사각형이 지워지고 새 직사각형이 새 위치에 다시 그려집니다. 기본적으로 DrawDragRect 하프톤 브러시를 사용하여 사각형을 그려 깜박임을 제거하고 매끄럽게 움직이는 사각형의 모양을 만듭니다.

처음 호출 DrawDragRect할 때 매개 변수는 lpRectLast .이어야 NULL합니다.

CDC::DrawEdge

지정된 형식 및 스타일의 사각형 가장자리를 그리려면 이 멤버 함수를 호출합니다.

BOOL DrawEdge(
    LPRECT lpRect,
    UINT nEdge,
    UINT nFlags);

매개 변수

lpRect
사각형의 RECT 논리적 좌표를 포함하는 구조체에 대한 포인터입니다.

nEdge
그릴 안쪽 및 바깥쪽 가장자리의 형식을 지정합니다. 이 매개 변수는 하나의 내부 테두리 플래그와 하나의 외부 테두리 플래그의 조합이어야 합니다. 매개 변수 형식의 테이블은 Windows SDK를 참조 DrawEdge 하세요.

nFlags
그릴 테두리의 유형을 지정하는 플래그입니다. 매개 변수 값의 테이블은 Windows SDK를 참조 DrawEdge 하세요. 대각선의 경우 플래그는 BF_RECT 사각형 매개 변수로 바인딩된 벡터의 끝점을 지정합니다.

Return Value

성공하면 0이 아니고, 그렇지 않으면 0입니다.

CDC::DrawEscape

GDI(그래픽 디바이스 인터페이스)를 통해 직접 사용할 수 없는 비디오 디스플레이의 그리기 기능에 액세스합니다.

int DrawEscape(
    int nEscape,
    int nInputSize,
    LPCSTR lpszInputData);

매개 변수

nEscape
수행할 이스케이프 함수를 지정합니다.

nInputSize
매개 변수가 가리키는 lpszInputData 데이터의 바이트 수를 지정합니다.

lpszInputData
지정된 이스케이프에 필요한 입력 구조를 가리킵니다.

Return Value

함수의 결과를 지정합니다. 구현에만 검사 그리기 이스케이프를 제외하고 QUERYESCSUPPORT 성공하면 0보다 크거나 이스케이프가 구현되지 않은 경우 0이거나 오류가 발생한 경우 0보다 작습니다.

설명

애플리케이션이 호출 DrawEscape될 때 식별된 nInputSizelpszInputData 데이터가 지정된 표시 드라이버에 직접 전달됩니다.

CDC::DrawFocusRect

사각형에 포커스가 있음을 나타내는 데 사용되는 스타일에서 사각형을 그립니다.

void DrawFocusRect(LPCRECT lpRect);

매개 변수

lpRect
그릴 사각형의 RECT 논리적 좌표를 지정하는 구조체 또는 CRect 개체를 가리킵니다.

설명

부울 XOR (^) 함수이므로 이 함수를 동일한 사각형으로 두 번째로 호출하면 디스플레이에서 사각형이 제거됩니다. 이 함수에서 그린 사각형은 스크롤할 수 없습니다. 이 함수에서 그린 사각형이 포함된 영역을 스크롤하려면 먼저 DrawFocusRect 디스플레이에서 사각형을 제거한 다음 영역을 스크롤한 다음 다시 호출 DrawFocusRect 하여 사각형을 새 위치에 그립니다.

주의

DrawFocusRect 는 모드에서 MM_TEXT 만 작동합니다. 다른 모드에서는 이 함수가 포커스 사각형을 올바르게 그리지 않지만 오류 값은 반환하지 않습니다.

CDC::DrawFrameControl

이 멤버 함수를 호출하여 지정된 형식 및 스타일의 프레임 컨트롤을 그립니다.

BOOL DrawFrameControl(
    LPRECT lpRect,
    UINT nType,
    UINT nState);

매개 변수

lpRect
사각형의 RECT 논리적 좌표를 포함하는 구조체에 대한 포인터입니다.

nType
그릴 프레임 컨트롤의 형식을 지정합니다. 이 매개 변수 DrawFrameControluType 가능한 값 목록은 Windows SDK의 매개 변수를 참조하세요.

nState
프레임 컨트롤의 초기 상태를 지정합니다. Windows SDK의 매개 변수 DrawFrameControl 에 대해 uState 설명된 값 중 하나 이상일 수 있습니다. nState 이 값을 DFCS_ADJUSTRECT 사용하여 경계 사각형을 조정하여 누름 단추의 주변 가장자리를 제외합니다.

Return Value

성공하면 0이 아니고, 그렇지 않으면 0입니다.

설명

몇 가지 nState 경우 매개 변수에 nType 따라 달라집니다. 다음 목록에서는 네 nType 값과 다음 값 간의 관계를 보여 줍니다 nState.

  • DFC_BUTTON

    • DFCS_BUTTON3STATE 3개 상태 단추

    • DFCS_BUTTONCHECK 확인란

    • DFCS_BUTTONPUSH 누름 단추

    • DFCS_BUTTONRADIO 라디오 단추

    • DFCS_BUTTONRADIOIMAGE 라디오 단추 이미지(비스퀘어 필요 이미지)

    • DFCS_BUTTONRADIOMASK 라디오 단추용 마스크(비스쿼어에는 마스크 필요)

  • DFC_CAPTION

    • DFCS_CAPTIONCLOSE 닫기 단추

    • DFCS_CAPTIONHELP 도움말 단추

    • DFCS_CAPTIONMAX 최대화 단추

    • DFCS_CAPTIONMIN 최소화 단추

    • DFCS_CAPTIONRESTORE 복원 단추

  • DFC_MENU

    • DFCS_MENUARROW 하위 메뉴 화살표

    • DFCS_MENUBULLET 총알

    • DFCS_MENUCHECK 확인 표시

  • DFC_SCROLL

    • DFCS_SCROLLCOMBOBOX 콤보 상자 스크롤 막대

    • DFCS_SCROLLDOWN 스크롤 막대의 아래쪽 화살표

    • DFCS_SCROLLLEFT 스크롤 막대의 왼쪽 화살표

    • DFCS_SCROLLRIGHT 스크롤 막대의 오른쪽 화살표

    • DFCS_SCROLLSIZEGRIP 창의 오른쪽 아래 모서리에 있는 크기 그립

    • DFCS_SCROLLUP 스크롤 막대의 위쪽 화살표

예시

이 코드는 창의 오른쪽 아래 모서리에 크기 그리기를 그립니다. 스타일이 없고 일반적으로 크기 그리퍼를 제공할 수 있는 다른 컨트롤(예: 상태 막대)을 포함하지 않는 대화 상자의 처리기에 적합 OnPaint 합니다.

void CDCView::DrawFC(CDC *pDC)
{
   CRect rc;
   GetClientRect(&rc);

   rc.left = rc.right - ::GetSystemMetrics(SM_CXHSCROLL);
   rc.top = rc.bottom - ::GetSystemMetrics(SM_CYVSCROLL);

   pDC->DrawFrameControl(rc, DFC_SCROLL, DFCS_SCROLLSIZEGRIP);
}

CDC::DrawIcon

현재 CDC 개체가 나타내는 디바이스에 아이콘을 그립니다.

BOOL DrawIcon(
    int x,
    int y,
    HICON hIcon);

BOOL DrawIcon(
    POINT point,
    HICON hIcon);

매개 변수

x
아이콘의 왼쪽 위 모서리에 있는 논리적 x 좌표를 지정합니다.

y
아이콘의 왼쪽 위 모서리에 대한 논리적 y 좌표를 지정합니다.

hIcon
그릴 아이콘의 핸들을 식별합니다.

point
아이콘의 왼쪽 위 모서리에 있는 논리적 x 좌표와 y 좌표를 지정합니다. 이 매개 변수에 POINT 대한 구조체 또는 개체를 CPoint 전달할 수 있습니다.

Return Value

함수가 성공적으로 완료된 경우 0이 아닌 경우 그렇지 않으면 0입니다.

설명

이 함수는 아이콘의 왼쪽 위 모서리를 지정한 위치 및 y.에 배치 x 합니다. 위치는 디바이스 컨텍스트의 현재 매핑 모드가 적용됩니다.

아이콘 리소스는 이전에 함수 CWinApp::LoadIconCWinApp::LoadStandardIcon사용하여 로드되었거나 CWinApp::LoadOEMIcon. 이 함수를 MM_TEXT 사용하기 전에 매핑 모드를 선택해야 합니다.

예시

에 대한 예제를 CWnd::IsIconic참조하세요.

CDC::DrawState

이 멤버 함수를 호출하여 이미지를 표시하고 시각 효과를 적용하여 비활성 상태 또는 기본 상태와 같은 상태를 나타냅니다.

참고 항목

제외한 DSS_NORMAL모든 nFlag 상태의 경우 시각적 효과가 적용되기 전에 이미지가 단색으로 변환됩니다.

BOOL DrawState(
    CPoint pt,
    CSize size,
    HBITMAP hBitmap,
    UINT nFlags,
    HBRUSH hBrush = NULL);

BOOL DrawState(
    CPoint pt,
    CSize size,
    CBitmap* pBitmap,
    UINT nFlags,
    CBrush* pBrush = NULL);

BOOL DrawState(
    CPoint pt,
    CSize size,
    HICON hIcon,
    UINT nFlags,
    HBRUSH hBrush = NULL);

BOOL DrawState(
    CPoint pt,
    CSize size,
    HICON hIcon,
    UINT nFlags,
    CBrush* pBrush = NULL);

BOOL DrawState(
    CPoint pt,
    CSize size,
    LPCTSTR lpszText,
    UINT nFlags,
    BOOL bPrefixText = TRUE,
    int nTextLen = 0,
    HBRUSH hBrush = NULL);

BOOL DrawState(
    CPoint pt,
    CSize size,
    LPCTSTR lpszText,
    UINT nFlags,
    BOOL bPrefixText = TRUE,
    int nTextLen = 0,
    CBrush* pBrush = NULL);

BOOL DrawState(
    CPoint pt,
    CSize size,
    DRAWSTATEPROC lpDrawProc,
    LPARAM lData,
    UINT nFlags,
    HBRUSH hBrush = NULL);

BOOL DrawState(
    CPoint pt,
    CSize size,
    DRAWSTATEPROC lpDrawProc,
    LPARAM lData,
    UINT nFlags,
    CBrush* pBrush = NULL);

매개 변수

pt
이미지의 위치를 지정합니다.

size
이미지의 크기를 지정합니다.

hBitmap
비트맵에 대한 핸들입니다.

nFlags
이미지 유형 및 상태를 지정하는 플래그입니다. 가능한 nFlags 유형 및 상태는 Windows SDK를 참조 DrawState 하세요.

hBrush
브러시에 대한 핸들입니다.

pBitmap
CBitmap 개체에 대한 포인터입니다.

pBrush
CBrush 개체에 대한 포인터입니다.

hIcon
아이콘에 대한 핸들입니다.

lpszText
텍스트에 대한 포인터입니다.

bPrefixText
액셀러레이터 니모닉을 포함할 수 있는 텍스트입니다. 매개 변수는 lData 문자열의 주소를 지정하고 매개 변수는 nTextLen 길이를 지정합니다. 0이면 nTextLen 문자열이 null로 종료된 것으로 간주됩니다.

nTextLen
가 가리키는 lpszText텍스트 문자열의 길이입니다. 0이면 nTextLen 문자열이 null로 종료된 것으로 간주됩니다.

lpDrawProc
이미지를 렌더링하는 데 사용되는 콜백 함수에 대한 포인터입니다. 이미지 형식 nFlags 이 .인 경우 이 매개 변수가 DST_COMPLEX필요합니다. 선택 사항이며 이미지 유형DST_TEXT이 .인 경우일 NULL 수 있습니다. 다른 모든 이미지 형식의 경우 이 매개 변수는 무시됩니다. 콜백 함수에 대한 자세한 내용은 Windows SDK의 DrawStateProc 함수를 참조하세요.

lData
이미지에 대한 정보를 지정합니다. 이 매개 변수의 의미는 이미지 형식에 따라 달라집니다.

Return Value

성공하면 0이 아니고, 그렇지 않으면 0입니다.

CDC::DrawText

지정된 사각형의 텍스트 서식을 지정하려면 이 멤버 함수를 호출합니다. 더 많은 서식 옵션을 지정하려면 .를 사용합니다 CDC::DrawTextEx.

virtual int DrawText(
    LPCTSTR lpszString,
    int nCount,
    LPRECT lpRect,
    UINT nFormat);

int DrawText(
    const CString& str,
    LPRECT lpRect,
    UINT nFormat);

매개 변수

lpszString
그릴 문자열을 가리킵니다. -1이면 nCount 문자열이 null로 종료되어야 합니다.

nCount
문자열의 문자 수를 지정합니다. -1 lpszString 이면 nCount null로 끝나는 문자열에 대한 긴 포인터로 간주되고 DrawText 문자 수를 자동으로 계산합니다.

lpRect
텍스트의 서식을 RECT 지정할 사각형(논리 좌표)이 포함된 구조체 또는 CRect 개체를 가리킵니다.

str
CString 그릴 지정된 문자가 들어 있는 개체입니다.

nFormat
텍스트 서식 지정 방법을 지정합니다. Windows SDK의 매개 변수 DrawText 에 대해 uFormat 설명된 값의 조합일 수 있습니다. (비트 OR 연산자를 사용하여 결합):

참고 항목

일부 uFormat 플래그 조합으로 인해 전달된 문자열이 수정될 수 있습니다. 문자열을 DT_END_ELLIPSIS 수정하거나 DT_PATH_ELLIPSIS 함께 사용하면 DT_MODIFYSTRING 재정의에서 어설션이 CString 발생할 수 있습니다. 값DT_CALCRECT, DT_EXTERNALLEADING, DT_INTERNALDT_NOCLIP및 값과 DT_NOPREFIX 함께 DT_TABSTOP 사용할 수 없습니다.

Return Value

함수가 성공한 경우 텍스트의 높이입니다.

설명

탭을 적절한 공백으로 확장하고, 지정된 사각형의 왼쪽, 오른쪽 또는 가운데에 텍스트를 정렬하고, 텍스트를 지정된 사각형 내에 맞는 줄로 구분하여 텍스트의 서식을 지정합니다. 서식의 형식은 .에 의해 nFormat지정됩니다.

이 멤버 함수는 디바이스 컨텍스트에서 선택한 글꼴, 텍스트 색 및 배경색을 사용하여 텍스트를 그립니다. 서식을 DT_NOCLIP 사용하지 DrawText 않는 한 텍스트가 지정된 사각형 외부에 나타나지 않도록 텍스트를 클리핑합니다. 형식이 지정되지 않는 한 모든 서식에 여러 줄이 있는 DT_SINGLELINE 것으로 간주됩니다.

선택한 글꼴이 지정된 사각형 DrawText 에 비해 너무 크면 멤버 함수는 더 작은 글꼴을 대체하려고 시도하지 않습니다.

플래그를 DT_CALCRECT 지정하면 텍스트를 그리는 데 필요한 너비와 높이를 반영하도록 지정된 lpRect 사각형이 업데이트됩니다.

텍스트 맞춤 플래그가 TA_UPDATECP 설정된 경우(참조 CDC::SetTextAlign) DrawText 지정된 사각형의 왼쪽이 아니라 현재 위치에서 시작하는 텍스트가 표시됩니다. DrawText 는 플래그가 TA_UPDATECP 설정되었을 때 텍스트를 줄 바꿈하지 않습니다(즉, 플래그에 DT_WORDBREAK 영향을 주지 않음).

텍스트 색은 .에 의해 CDC::SetTextColor설정될 수 있습니다.

CDC::DrawTextEx

지정된 사각형의 텍스트 서식을 지정합니다.

virtual int DrawTextEx(
    LPTSTR lpszString,
    int nCount,
    LPRECT lpRect,
    UINT nFormat,
    LPDRAWTEXTPARAMS lpDTParams);

int DrawTextEx(
    const CString& str,
    LPRECT lpRect,
    UINT nFormat,
    LPDRAWTEXTPARAMS lpDTParams);

매개 변수

lpszString
그릴 문자열을 가리킵니다. -1이면 nCount 문자열이 null로 종료되어야 합니다.

nCount
문자열의 문자 수를 지정합니다. -1 lpszString 이면 nCount null로 끝나는 문자열에 대한 긴 포인터로 간주되고 DrawText 문자 수를 자동으로 계산합니다.

lpRect
텍스트의 서식을 RECT 지정할 사각형(논리 좌표)이 포함된 구조체 또는 CRect 개체를 가리킵니다.

str
CString 그릴 지정된 문자가 들어 있는 개체입니다.

nFormat
텍스트 서식 지정 방법을 지정합니다. Windows SDK의 매개 변수 DrawText 에 대해 uFormat 설명된 값의 조합일 수 있습니다. (비트 단위로 결합OR 연산자:

참고 항목

일부 uFormat 플래그 조합으로 인해 전달된 문자열이 수정될 수 있습니다. 문자열을 DT_END_ELLIPSIS 수정하거나 DT_PATH_ELLIPSIS 함께 사용하면 DT_MODIFYSTRING 재정의에서 어설션이 CString 발생할 수 있습니다. 값DT_CALCRECT, DT_EXTERNALLEADING, DT_INTERNALDT_NOCLIP및 값과 DT_NOPREFIX 함께 DT_TABSTOP 사용할 수 없습니다.

lpDTParams
DRAWTEXTPARAMS 더 많은 서식 옵션을 지정하는 구조체에 대한 포인터입니다. 이 매개 변수는 NULL일 수 있습니다.

설명

탭을 적절한 공백으로 확장하고, 지정된 사각형의 왼쪽, 오른쪽 또는 가운데에 텍스트를 정렬하고, 텍스트를 지정된 사각형 내에 맞는 줄로 구분하여 텍스트의 서식을 지정합니다. 형식 지정 형식은 다음과 으로 지정됩니다 nFormatlpDTParams. 자세한 내용은 Windows SDK를 참조 CDC::DrawText 하세요 DrawTextEx .

텍스트 색은 .에 의해 CDC::SetTextColor설정될 수 있습니다.

CDC::Ellipse

줄임표를 그립니다.

BOOL Ellipse(
    int x1,
    int y1,
    int x2,
    int y2);

BOOL Ellipse(LPCRECT lpRect);

매개 변수

x1
타원 경계 사각형의 왼쪽 위 모퉁이에 대한 논리적 x 좌표를 지정합니다.

y1
타원 경계 사각형의 왼쪽 위 모서리에 대한 논리적 y 좌표를 지정합니다.

x2
타원 경계 사각형의 오른쪽 아래 모서리에 대한 논리적 x 좌표를 지정합니다.

y2
타원 경계 사각형의 오른쪽 아래 모서리에 대한 논리적 y 좌표를 지정합니다.

lpRect
줄임표의 경계 사각형을 지정합니다. 이 매개 변수에 대한 개체를 CRect 전달할 수도 있습니다.

Return Value

함수가 성공하면 0이 아니고 그렇지 않으면 0입니다.

설명

줄임표의 중심은 , y1, x2y2, 또는 lpRect로 지정된 x1경계 사각형의 중심입니다. 타원은 현재 펜으로 그려지고 내부는 현재 브러시로 채워집니다.

이 함수에서 그린 그림은 오른쪽 및 아래쪽 좌표까지 확장되지만 포함되지는 않습니다. 즉, 그림의 높이와 y2 - y1 그림의 너비가 입니다.x2 - x1

경계 사각형의 너비 또는 높이가 0이면 줄임표가 그려지지 않습니다.

CDC::EndDoc

멤버 함수에 대한 호출로 시작된 인쇄 작업을 종료합니다 StartDoc .

int EndDoc();

Return Value

함수가 성공한 경우 0보다 크거나 같거나, 오류가 발생한 경우 음수 값입니다.

설명

이 멤버 함수는 프린터 이스케이프를 ENDDOC 대체하며 인쇄 작업이 성공적으로 완료된 직후 호출되어야 합니다.

애플리케이션에서 인쇄 오류 또는 취소된 인쇄 작업이 발생하는 경우 작업을 종료 EndDocAbortDoc하려고 시도해서는 안 됩니다. GDI는 오류 값을 반환하기 전에 작업을 자동으로 종료합니다.

이 함수는 메타파일 내에서 사용하면 안 됩니다.

예시

에 대한 예제를 CDC::StartDoc참조하세요.

CDC::EndPage

애플리케이션이 페이지에 쓰기를 완료했음을 디바이스에 알릴 수 있습니다.

int EndPage();

Return Value

함수가 성공한 경우 0보다 크거나 같거나, 오류가 발생한 경우 음수 값입니다.

설명

이 멤버 함수는 일반적으로 디바이스 드라이버가 새 페이지로 이동하도록 지시하는 데 사용됩니다.

이 멤버 함수는 프린터 이스케이프를 NEWFRAME 대체합니다. 이와 달리 NEWFRAME이 함수는 페이지를 인쇄한 후 항상 호출됩니다.

예시

에 대한 예제를 CDC::StartDoc참조하세요.

CDC::EndPath

경로 대괄호를 닫고 대괄호로 정의된 경로를 디바이스 컨텍스트로 선택합니다.

BOOL EndPath();

Return Value

함수가 성공하면 0이 아니고 그렇지 않으면 0입니다.

예시

에 대한 예제를 CDC::BeginPath참조하세요.

CDC::EnumObjects

디바이스 컨텍스트에서 사용할 수 있는 펜과 브러시를 열거합니다.

int EnumObjects(
    int nObjectType,
    int (CALLBACK* lpfn)(
    LPVOID,
    LPARAM),
    LPARAM lpData);

매개 변수

nObjectType
개체 형식을 지정합니다. 값 OBJ_BRUSH 또는 OBJ_PEN.

lpfn
애플리케이션 제공 콜백 함수의 프로시저 인스턴스 주소입니다. 아래의 "주의" 섹션을 참조하세요.

lpData
애플리케이션에서 제공하는 데이터를 가리킵니다. 데이터는 개체 정보와 함께 콜백 함수에 전달됩니다.

Return Value

콜백 함수에서 반환된 마지막 값을 지정합니다. 그 의미는 사용자 정의입니다.

설명

지정된 형식의 각 개체에 대해 전달하는 콜백 함수는 해당 개체에 대한 정보로 호출됩니다. 시스템은 더 이상 개체가 없거나 콜백 함수가 0을 반환할 때까지 콜백 함수를 호출합니다.

Microsoft Visual C++의 새로운 기능을 사용하면 일반 함수를 전달된 함수로 사용할 수 있습니다 EnumObjects. 전달된 EnumObjects 주소는 Pascal 호출 규칙을 사용하여 내보낸 EXPORT 함수에 대한 포인터입니다. 보호 모드 애플리케이션에서는 Windows 함수를 사용하여 이 함수를 만들거나 Windows MakeProcInstance 함수와 함께 사용한 후 함수를 FreeProcInstance 해제할 필요가 없습니다.

또한 애플리케이션의 모듈 정의 파일의 문에서 EXPORTS 함수 이름을 내보낼 필요가 없습니다. 대신 다음과 같이 함수 한정자를 사용할 EXPORT 수 있습니다.

int CALLBACK EXPORT AFunction (LPSTR, LPSTR);

을 사용하면 컴파일러가 별칭을 지정하지 않고 이름으로 내보내기 위한 적절한 내보내기 레코드를 내보냅니다. 대부분의 요구 사항에 맞게 작동합니다. 서수로 함수를 내보내거나 내보내기 별칭을 지정하는 등의 특수한 경우 모듈 정의 파일에서 문을 사용해야 EXPORTS 합니다.

Microsoft Foundation 프로그램을 컴파일하는 경우 일반적으로 컴파일러 옵션과 /GEs 컴파일러 옵션을 사용합니다/GA. /Gw 컴파일러 옵션은 Microsoft Foundation 클래스와 함께 사용되지 않습니다. (Windows 함수 MakeProcInstance를 사용하는 경우 반환된 함수 포인터를 이 API에 FARPROC 필요한 형식으로 명시적으로 캐스팅해야 합니다.) 콜백 등록 인터페이스는 이제 형식이 안전합니다(특정 콜백에 적합한 종류의 함수를 가리키는 함수 포인터를 전달해야 합니다).

또한 모든 콜백 함수는 예외를 콜백 경계를 넘어 throw할 수 없으므로 Windows로 돌아가기 전에 Microsoft Foundation 예외를 트래핑해야 합니다. 예외에 대한 자세한 내용은 예외 문서를 참조하세요.

예시

// print some info about a pen we're ready to enumerate
BOOL CALLBACK EnumObjectHandler(LPVOID lpLogObject, LPARAM /* lpData */)
{
   LOGPEN *pPen = (LOGPEN *)lpLogObject;

   switch (pPen->lopnStyle)
   {
   case PS_SOLID:
      TRACE0("PS_SOLID:      ");
      break;
   case PS_DASH:
      TRACE0("PS_DASH:       ");
      break;
   case PS_DOT:
      TRACE0("PS_DOT:        ");
      break;
   case PS_DASHDOT:
      TRACE0("PS_DASHDOT:    ");
      break;
   case PS_DASHDOTDOT:
      TRACE0("PS_DASHDOTDOT: ");
      break;
   case PS_NULL:
      TRACE0("PS_NULL:       ");
      break;
   case PS_INSIDEFRAME:
      TRACE0("PS_INSIDEFRAME:");
      break;
   default:
      TRACE0("unk style:");
   }

   TRACE2("Color: 0x%8.8X, Width: %d\n", pPen->lopnColor, pPen->lopnWidth);
   return TRUE;
}

// get the default printer and enumerate the pens it has
void CDCView::OnEnumPens()
{
   CPrintDialog dlg(FALSE);
   dlg.GetDefaults();
   HDC hdc = dlg.GetPrinterDC();

   if (hdc != NULL)
   {
      CDC dc;
      dc.Attach(hdc);
      VERIFY(dc.EnumObjects(OBJ_PEN, EnumObjectHandler, 0));
   }
}

CDC::Escape

이 멤버 함수는 Win32 프로그래밍에 거의 사용되지 않습니다.

virtual int Escape(
    int nEscape,
    int nCount,
    LPCSTR lpszInData,
    LPVOID lpOutData);

int Escape(
    int nEscape,
    int nInputSize,
    LPCSTR lpszInputData,
    int nOutputSize,
    LPSTR lpszOutputData);

매개 변수

nEscape
수행할 이스케이프 함수를 지정합니다.

이스케이프 함수의 전체 목록은 Windows SDK를 참조 Escape 하세요.

nCount
가 가리키는 데이터의 바이트 수를 지정합니다 lpszInData.

lpszInData
이 이스케이프에 필요한 입력 데이터 구조를 가리킵니다.

lpOutData
이 이스케이프에서 출력을 받을 구조를 가리킵니다. 매개 변수는 lpOutDataNULL 데이터가 반환되지 않는 경우입니다.

nInputSize
매개 변수가 가리키는 lpszInputData 데이터의 바이트 수를 지정합니다.

lpszInputData
지정된 이스케이프에 필요한 입력 구조를 가리킵니다.

nOutputSize
매개 변수가 가리키는 lpszOutputData 데이터의 바이트 수를 지정합니다.

lpszOutputData
이 이스케이프에서 출력을 받는 구조를 가리킵니다. 이 매개 변수는 NULL 데이터가 반환되지 않는 경우여야 합니다.

Return Value

이스케이프를 제외하고 QUERYESCSUPPORT 함수가 성공하면 양수 값이 반환되며 구현에 대한 검사. 이스케이프가 구현되지 않으면 0이 반환됩니다. 오류가 발생한 경우 음수 값이 반환됩니다. 일반적인 오류 값은 다음과 같습니다.

  • SP_ERROR 일반 오류입니다.

  • SP_OUTOFDISK 현재 스풀링에 사용할 수 있는 디스크 공간이 부족하며 더 이상 사용할 수 있는 공간이 없습니다.

  • SP_OUTOFMEMORY 스풀링에 사용할 수 있는 메모리가 부족합니다.

  • SP_USERABORT 사용자가 인쇄 관리자를 통해 작업을 종료했습니다.

설명

원래 프린터 이스케이프 중 Win32 애플리케이션에 대해서만 QUERYESCSUPPORT 지원됩니다. 다른 모든 프린터 이스케이프는 사용되지 않으며 16비트 애플리케이션과의 호환성을 위해서만 지원됩니다.

Win32 프로그래밍의 CDC 경우 이제 해당 프린터 이스케이프를 대체하는 6개의 멤버 함수를 제공합니다.

또한 CDC::GetDeviceCaps 다른 프린터 이스케이프를 대체하는 Win32 인덱스를 지원합니다. 자세한 내용은 Windows SDK를 참조 GetDeviceCaps 하세요.

이 멤버 함수를 사용하면 애플리케이션이 GDI를 통해 직접 사용할 수 없는 특정 디바이스의 기능에 액세스할 수 있습니다.

애플리케이션에서 미리 정의된 이스케이프 값을 사용하는 경우 첫 번째 버전을 사용합니다. 애플리케이션이 프라이빗 이스케이프 값을 정의하는 경우 두 번째 버전을 사용합니다. 두 번째 버전에 대한 자세한 내용은 Windows SDK를 참조 ExtEscape 하세요.

CDC::ExcludeClipRect

지정된 사각형을 뺀 기존 클리핑 영역으로 구성된 새 클리핑 영역을 만듭니다.

int ExcludeClipRect(
    int x1,
    int y1,
    int x2,
    int y2);

int ExcludeClipRect(LPCRECT lpRect);

매개 변수

x1
사각형의 왼쪽 위 모퉁이에 대한 논리적 x 좌표를 지정합니다.

y1
사각형의 왼쪽 위 모퉁이에 대한 논리적 y 좌표를 지정합니다.

x2
사각형의 오른쪽 아래 모서리에 있는 논리적 x 좌표를 지정합니다.

y2
사각형의 오른쪽 아래 모서리에 대한 논리적 y 좌표를 지정합니다.

lpRect
사각형을 지정합니다. 개체일 CRect 수도 있습니다.

Return Value

새 클리핑 영역의 형식을 지정합니다. 다음 값 중 하나일 수 있습니다.

  • COMPLEXREGION 이 지역에는 겹치는 테두리가 있습니다.

  • ERROR 지역이 만들어지지 않았습니다.

  • NULLREGION 지역이 비어 있습니다.

  • SIMPLEREGION 이 지역에는 겹치는 테두리가 없습니다.

설명

절대값 x2 - x1으로 지정된 사각형의 너비는 32,767단원을 초과하면 안 됩니다. 이 제한은 사각형의 높이에도 적용됩니다.

CDC::ExcludeUpdateRgn

개체와 연결된 클리핑 영역에서 창의 업데이트된 CDC 영역을 제외하여 창의 잘못된 영역 내에서 그리기를 방지합니다.

int ExcludeUpdateRgn(CWnd* pWnd);

매개 변수

pWnd
창이 업데이트되는 창 개체를 가리킵니다.

Return Value

제외된 영역의 형식입니다. 다음 값 중 하나일 수 있습니다.

  • COMPLEXREGION 이 지역에는 겹치는 테두리가 있습니다.

  • ERROR 지역이 만들어지지 않았습니다.

  • NULLREGION 지역이 비어 있습니다.

  • SIMPLEREGION 이 지역에는 겹치는 테두리가 없습니다.

CDC::ExtFloodFill

디스플레이 화면의 영역을 현재 브러시로 채웁니다.

BOOL ExtFloodFill(
    int x,
    int y,
    COLORREF crColor,
    UINT nFillType);

매개 변수

x
채우기가 시작되는 지점의 논리적 x 좌표를 지정합니다.

y
채우기가 시작되는 지점의 논리적 y 좌표를 지정합니다.

crColor
채울 경계 또는 영역의 색을 지정합니다. 해석 crColor 은 의 값 nFillType에 따라 달라집니다.

nFillType
수행할 플러드 채우기 유형을 지정합니다. 다음 값 중 하나여야 합니다.

  • FLOODFILLBORDER 채우기 영역은 로 지정된 색으로 제한됩니다 crColor. 이 스타일은 .에서 수행하는 FloodFill채우기와 동일합니다.

  • FLOODFILLSURFACE 채우기 영역은 에 지정된 색으로 정의됩니다 crColor. 색이 발견되는 한 채우기는 모든 방향으로 바깥쪽으로 계속됩니다. 이 스타일은 여러 가지 색의 경계를 사용하여 영역을 채우는 데 유용합니다.

Return Value

함수가 성공하면 0이 아닌 경우 그렇지 않으면 채우기를 완료할 수 없는 경우, 지정된 지점에 지정된 경계 색(요청된 crColor 경우 FLOODFILLBORDER ), 지정된 지점에 지정된 색이 없는 경우(요청된 crColor 경우) 또는 점이 클리핑 영역 외부에 있는 경우 FLOODFILLSURFACE 0입니다.

설명

이 멤버 함수는 채우기 형식을 지정할 수 있기 때문에 FloodFill 유연성이 더 높습니다 nFillType.

로 설정FLOODFILLBORDER하면 nFillType 영역이 지정한 색crColor으로 완전히 제한된 것으로 간주됩니다. 함수는 지정된 xy 지점에서 시작하여 색 경계까지 모든 방향으로 채웁니다.

설정된 경우 nFillType 함수는 지정된 xy 지점에서 시작하여 모든 방향으로 계속되어 지정된 crColor색이 포함된 인접한 모든 영역을 채웁FLOODFILLSURFACE니다.

래스터 디스플레이 기술을 지원하는 메모리-디바이스 컨텍스트 및 디바이스만 지원합니다 ExtFloodFill. 자세한 내용은 멤버 함수를 GetDeviceCaps 참조하세요.

CDC::ExtTextOut

현재 선택한 글꼴을 사용하여 사각형 영역 내에서 문자 문자열을 작성하려면 이 멤버 함수를 호출합니다.

virtual BOOL ExtTextOut(
    int x,
    int y,
    UINT nOptions,
    LPCRECT lpRect,
    LPCTSTR lpszString,
    UINT nCount,
    LPINT lpDxWidths);

BOOL ExtTextOut(
    int x,
    int y,
    UINT nOptions,
    LPCRECT lpRect,
    const CString& str,
    LPINT lpDxWidths);

매개 변수

x
지정된 문자열의 첫 번째 문자에 대한 문자 셀의 논리적 x 좌표를 지정합니다.

y
지정된 문자열의 첫 번째 문자에 대한 문자 셀 위쪽의 논리적 y 좌표를 지정합니다.

nOptions
사각형 형식을 지정합니다. 이 매개 변수는 다음 값 중 하나이거나 둘 다일 수 없습니다.

  • ETO_CLIPPED 텍스트가 사각형으로 잘리도록 지정합니다.

  • ETO_OPAQUE 현재 배경색이 사각형을 채우도록 지정합니다. (및 멤버 함수를 사용하여 현재 배경색을 설정하고 쿼리할 SetBkColorGetBkColor 수 있습니다.)

lpRect
RECT 사각형의 크기를 결정하는 구조를 가리킵니다. 이 매개 변수는 NULL일 수 있습니다. 이 매개 변수에 대한 개체를 CRect 전달할 수도 있습니다.

lpszString
그릴 지정된 문자열을 가리킵니다. 이 매개 변수에 대한 개체를 CString 전달할 수도 있습니다.

nCount
문자열에 있는 문자의 수를 지정합니다.

lpDxWidths
인접한 문자 셀의 원점 사이의 거리를 나타내는 값 배열을 가리킵니다. 예를 들어 lpDxWidths[ i] 논리 단위는 문자 셀과 문자 셀 ii + 1의 원점이 구분됩니다. 이 NULLExtTextOut 경우 lpDxWidths 문자 간의 기본 간격을 사용합니다.

str
CString 그릴 지정된 문자가 들어 있는 개체입니다.

Return Value

함수가 성공하면 0이 아니고 그렇지 않으면 0입니다.

설명

사각형 영역은 불투명(현재 배경색으로 채워짐)일 수 있으며 클리핑 영역일 수 있습니다.

0인 lpRect 경우 nOptions 함수는 NULL직사각형 영역을 사용하지 않고 디바이스 컨텍스트에 텍스트를 씁니다. 기본적으로 현재 위치는 함수에서 사용되거나 업데이트되지 않습니다. 애플리케이션이 호출ExtTextOut할 때 현재 위치를 업데이트해야 하는 경우 애플리케이션은 로 설정된 멤버 함수 SetTextAlignnFlagsCDC 호출할 TA_UPDATECP수 있습니다. 이 플래그가 설정되면 Windows는 후속 호출 ExtTextOut 을 무시하고 xy 현재 위치를 대신 사용합니다. 애플리케이션에서 현재 위치를 ExtTextOut 업데이트하는 데 사용하는 TA_UPDATECP 경우 현재 위치를 이전 텍스트 줄의 끝이나 가리킬 배열의 마지막 요소에서 지정한 위치 중 더 큰 위치로 lpDxWidths설정합니다.

CDC::FillPath

현재 경로의 열려 있는 그림을 닫고 현재 브러시 및 다각형 채우기 모드를 사용하여 경로의 내부를 채웁니다.

BOOL FillPath();

Return Value

함수가 성공하면 0이 아니고 그렇지 않으면 0입니다.

설명

내부가 채워지면 경로가 디바이스 컨텍스트에서 카드 해제됩니다.

CDC::FillRect

지정된 브러시를 사용하여 지정된 사각형을 채우려면 이 멤버 함수를 호출합니다.

void FillRect(
    LPCRECT lpRect,
    CBrush* pBrush);

매개 변수

lpRect
RECT 채울 사각형의 논리적 좌표가 포함된 구조를 가리킵니다. 이 매개 변수에 대한 개체를 CRect 전달할 수도 있습니다.

pBrush
사각형을 채우는 데 사용되는 브러시를 식별합니다.

설명

함수는 왼쪽 및 위쪽 테두리를 포함하여 전체 사각형을 채우지만 오른쪽 및 아래쪽 테두리는 채우지 않습니다.

브러시는 멤버 함수를 CBrush 사용하여 만들거나 Windows 함수CreateSolidBrushCreateHatchBrushCreatePatternBrush에서 GetStockObject 검색해야 합니다.

지정된 사각형 FillRect 을 채울 때 사각형의 오른쪽과 아래쪽은 포함하지 않습니다. GDI는 현재 매핑 모드에 관계없이 오른쪽 열과 아래쪽 행까지 직사각형을 채웁니다. FillRect는 지정된 사각형의 top, bottomleftright 멤버의 값을 비교합니다. bottom 작거나 같top거나 작거나 같은 left경우 right 사각형이 그려지지 않습니다.

FillRectCDC::FillSolidRect는 브러시를 사용하므로 단색, FillRect 디더링된 색, 빗살 무늬 또는 패턴으로 사각형을 채우는 데 사용할 수 있습니다. FillSolidRect 는 단색만 사용합니다(매개 변수로 COLORREF 표시됨). FillRect 일반적으로 .보다 FillSolidRect느립니다.

CDC::FillRgn

지정한 영역을 으로 지정pBrushpRgn 브러시로 채웁니다.

BOOL FillRgn(
    CRgn* pRgn,
    CBrush* pBrush);

매개 변수

pRgn
채울 영역에 대한 포인터입니다. 지정된 영역의 좌표는 논리 단위로 지정됩니다.

pBrush
영역을 채우는 데 사용할 브러시를 식별합니다.

Return Value

함수가 성공하면 0이 아니고 그렇지 않으면 0입니다.

설명

브러시는 멤버 함수CreateSolidBrushCreateHatchBrushCreatePatternBrushCBrush 사용하여 만들거나 에 의해 GetStockObject검색되어야 합니다.

예시

에 대한 예제를 CRgn::CreateRoundRectRgn참조하세요.

CDC::FillSolidRect

지정된 사각형을 지정된 단색으로 채우려면 이 멤버 함수를 호출합니다.

void FillSolidRect(
    LPCRECT lpRect,
    COLORREF clr);

void FillSolidRect(
    int x,
    int y,
    int cx,
    int cy,
    COLORREF clr);

매개 변수

lpRect
경계 사각형을 논리 단위로 지정합니다. 데이터 구조에 대한 포인터 RECT 또는 이 매개 변수의 개체를 CRect 전달할 수 있습니다.

clr 사각형을 채우는 데 사용할 색을 지정합니다.

x
사각형의 왼쪽 위 모퉁이에 대한 논리적 x 좌표를 지정합니다.

y
대상 사각형의 왼쪽 위 모퉁이에 대한 논리적 y 좌표를 지정합니다.

cx
사각형의 너비를 지정합니다.

cy
사각형의 높이를 지정합니다.

설명

FillSolidRect 은 매우 유사 CDC::FillRect하지만 FillSolidRect 단색만 사용하지만(매개 변수로 COLORREF 표시됨) FillRect 브러시를 사용하므로 직사각형을 단색, 디더링된 색, 빗살 무늬 또는 패턴으로 채우는 데 사용할 수 있습니다. FillSolidRect 일반적으로 .보다 FillRect빠릅니다.

참고 항목

호출 FillSolidRect할 때 이전에 사용하여 SetBkColor설정되었던 배경색이 나타내는 색으로 설정됩니다 clr.

CDC::FlattenPath

선택한 경로의 모든 곡선을 현재 디바이스 컨텍스트로 변환하고 각 곡선을 선 시퀀스로 바꿉니다.

BOOL FlattenPath();

Return Value

함수가 성공하면 0이 아니고 그렇지 않으면 0입니다.

CDC::FloodFill

디스플레이 화면의 영역을 현재 브러시로 채웁니다.

BOOL FloodFill(
    int x,
    int y,
    COLORREF crColor);

매개 변수

x
채우기가 시작되는 지점의 논리적 x 좌표를 지정합니다.

y
채우기가 시작되는 지점의 논리적 y 좌표를 지정합니다.

crColor
경계의 색을 지정합니다.

Return Value

함수가 성공하면 0이 아닌 경우 그렇지 않으면 채우기를 완료할 수 없거나 지정된 지점에 지정된 crColor경계 색이 있거나 점이 클리핑 영역 외부에 있으면 0이 반환됩니다.

설명

영역은 지정한 대로 crColor경계로 간주됩니다. 함수는 FloodFill 지정된 xy 지점에서 시작하여 색 경계까지 모든 방향으로 계속됩니다.

래스터 디스플레이 기술을 지원하는 메모리-디바이스 컨텍스트 및 디바이스만 멤버 함수를 FloodFill 지원합니다. 기능에 대한 RC_BITBLT 자세한 내용은 멤버 함수를 GetDeviceCaps 참조하세요.

이 함수는 ExtFloodFill 비슷한 기능을 제공하지만 유연성이 향상됩니다.

CDC::FrameRect

로 지정된 사각형 주위에 테두리를 lpRect그립니다.

void FrameRect(
    LPCRECT lpRect,
    CBrush* pBrush);

매개 변수

lpRect
사각형의 RECT 왼쪽 위와 오른쪽 아래 모서리의 논리적 좌표를 포함하는 구조체 또는 CRect 개체를 가리킵니다. 이 매개 변수에 대한 개체를 CRect 전달할 수도 있습니다.

pBrush
사각형을 프레이밍하는 데 사용할 브러시를 식별합니다.

설명

함수는 지정된 브러시를 사용하여 테두리를 그립니다. 테두리의 너비와 높이는 항상 1 논리 단위입니다.

사각형의 bottom 좌표가 작거나 같top거나 작거나 같은 left경우 right 사각형이 그려지지 않습니다.

그리 FrameRect 는 테두리는 동일한 좌표를 사용하여 멤버 함수가 Rectangle 그린 테두리와 동일한 위치에 있습니다(너비가 1인 펜을 사용하는 경우 Rectangle ). 사각형의 내부는 다음으로 FrameRect채워지지 않습니다.

CDC::FrameRgn

로 지정된 브러시를 사용하여 지정한 pRgn 영역 주위에 테두리를 pBrush그립니다.

BOOL FrameRgn(
    CRgn* pRgn,
    CBrush* pBrush,
    int nWidth,
    int nHeight);

매개 변수

pRgn
테두리에 CRgn 묶을 영역을 식별하는 개체를 가리킵니다. 지정된 영역의 좌표는 논리 단위로 지정됩니다.

pBrush
테두리를 CBrush 그리는 데 사용할 브러시를 식별하는 개체를 가리킵니다.

nWidth
세로 브러시 스트로크의 테두리 너비를 디바이스 단위로 지정합니다.

nHeight
가로 브러시 스트로크의 테두리 높이를 디바이스 단위로 지정합니다.

Return Value

함수가 성공하면 0이 아니고 그렇지 않으면 0입니다.

예시

에 대한 예제를 CRgn::CombineRgn참조하세요.

CDC::FromHandle

디바이스 컨텍스트에 대한 핸들이 CDC 제공되면 개체에 대한 포인터를 반환합니다.

static CDC* PASCAL FromHandle(HDC hDC);

매개 변수

hDC
Windows 디바이스 컨텍스트에 대한 핸들을 포함합니다.

Return Value

포인터는 일시적일 수 있으며 즉시 사용할 수 없으면 안 됩니다.

설명

개체가 CDC 핸들에 연결되지 않은 경우 임시 CDC 개체가 만들어지고 연결됩니다.

예시

에 대한 예제를 CPrintDialog::GetPrinterDC참조하세요.

CDC::GetArcDirection

디바이스 컨텍스트의 현재 호 방향을 반환합니다.

int GetArcDirection() const;

Return Value

성공하면 현재 호 방향을 지정합니다. 유효한 반환 값은 다음과 같습니다.

  • AD_COUNTERCLOCKWISE 시계 반대 방향으로 그려진 호와 사각형.

  • AD_CLOCKWISE Arcs 및 직사각형이 시계 방향으로 그려집니다.

오류가 발생하면 반환 값은 0입니다.

설명

호 및 사각형 함수는 호 방향을 사용합니다.

CDC::GetAspectRatioFilter

현재 가로 세로 비율 필터에 대한 설정을 검색합니다.

CSize GetAspectRatioFilter() const;

Return Value

CSize 현재 가로 세로 비율 필터에서 사용하는 가로 세로 비율을 나타내는 개체입니다.

설명

가로 세로 비율은 디바이스의 픽셀 너비와 높이에 의해 형성된 비율입니다. 디바이스의 가로 세로 비율에 대한 정보는 글꼴 만들기, 선택 및 표시에 사용됩니다. Windows는 사용 가능한 모든 글꼴에서 특정 가로 세로 비율을 위해 디자인된 글꼴을 선택하는 특수 필터인 가로 세로 비율 필터를 제공합니다. 필터는 멤버 함수에 지정된 가로 세로 SetMapperFlags 비율을 사용합니다.

CDC::GetBkColor

현재 배경색을 반환합니다.

COLORREF GetBkColor() const;

Return Value

RGB 색 값입니다.

설명

배경 모드인 OPAQUE경우 시스템에서 배경색을 사용하여 스타일이 지정된 선의 간격, 브러시의 빗살 무늬 선 사이의 간격 및 문자 셀의 배경을 채웁니다. 또한 시스템에서는 비트맵을 색과 단색 디바이스 컨텍스트 간에 변환할 때 배경색을 사용합니다.

CDC::GetBkMode

백그라운드 모드를 반환합니다.

int GetBkMode() const;

Return Value

현재 백그라운드 모드 OPAQUETRANSPARENT입니다.

설명

배경 모드는 텍스트, 빗살 무늬 브러시 또는 실선이 아닌 펜 스타일을 그리기 전에 시스템이 그리기 화면에서 기존 배경색을 제거할지 여부를 정의합니다.

CDC::GetBoundsRect

지정된 디바이스 컨텍스트에 대한 현재 누적 경계 사각형을 반환합니다.

UINT GetBoundsRect(
    LPRECT lpRectBounds,
    UINT flags);

매개 변수

lpRectBounds
현재 경계 사각형을 받을 버퍼를 가리킵니다. 사각형은 논리 좌표로 반환됩니다.

flags
경계 사각형이 반환된 후 지울지 여부를 지정합니다. 이 매개 변수는 0이거나 다음 값으로 설정해야 합니다.

  • DCB_RESET 경계 사각형이 반환된 후 지워지도록 합니다.

Return Value

함수가 성공한 경우 경계 사각형의 현재 상태를 지정합니다. 다음 값의 조합일 수 있습니다.

  • DCB_ACCUMULATE 경계 사각형 누적이 발생합니다.

  • DCB_RESET 경계 사각형이 비어 있습니다.

  • DCB_SET 경계 사각형은 비어 있지 않습니다.

  • DCB_ENABLE 경계 누적이 켜집니다.

  • DCB_DISABLE 경계 누적이 해제되었습니다.

CDC::GetBrushOrg

디바이스 컨텍스트에 대해 현재 선택된 브러시의 원본(디바이스 단위)을 검색합니다.

CPoint GetBrushOrg() const;

Return Value

개체로서 브러시의 현재 원점(디바이스 단위)입니다 CPoint .

설명

초기 브러시 원점은 클라이언트 영역의 (0,0)에 있습니다. 반환 값은 바탕 화면 창의 원본을 기준으로 디바이스 단위에서 이 지점을 지정합니다.

CDC::GetCharacterPlacement

문자열에 대한 다양한 유형의 정보를 검색합니다.

DWORD GetCharacterPlacement(
    LPCTSTR lpString,
    int nCount,
    int nMaxExtent,
    LPGCP_RESULTS lpResults,
    DWORD dwFlags) const;

DWORD GetCharacterPlacement(
    CString& str,
    int nMaxExtent,
    LPGCP_RESULTS lpResults,
    DWORD dwFlags) const;

매개 변수

lpString
처리할 문자열에 대한 포인터입니다.

nCount
문자열의 길이를 지정합니다. ANSI 버전의 BYTE 경우 개수이며 유니코드 함수의 경우 개수입니다 WORD . 자세한 내용은 GetCharacterPlacement를 참조하세요.

nMaxExtent
문자열이 처리되는 최대 익스텐트(논리 단위)를 지정합니다. 처리되는 경우 이 범위를 초과하는 문자는 무시됩니다. 필요한 순서 지정 또는 문자 모양 배열에 대한 계산은 포함된 문자에만 적용됩니다. 이 매개 변수는 값이 GCP_MAXEXTENT 매개 변수에 dwFlags 지정된 경우에만 사용됩니다. 함수가 입력 문자열을 처리할 때 각 문자와 해당 익스텐트는 총 범위가 아직 최대값을 초과하지 않은 경우에만 출력, 익스텐트 및 기타 배열에 추가됩니다. 제한에 도달하면 처리가 중지됩니다.

lpResults
GCP_Results 함수의 결과를 받는 구조체에 대한 포인터입니다.

dwFlags
문자열을 필요한 배열로 처리하는 방법을 지정합니다. 이 매개 변수는 항목의 섹션 GetCharacterPlacement 에 나열된 dwFlags 값 중 하나 이상일 수 있습니다.

str
처리할 개체에 대한 포인터입니다 CString .

Return Value

함수가 성공하면 반환 값은 논리 단위에서 문자열의 너비와 높이입니다.

함수가 실패하면 반환 값은 0입니다.

설명

이 멤버 함수는 Windows SDK에 설명된 대로 함수 GetCharacterPlacement의 기능을 에뮬레이트합니다.

CDC::GetCharABCWidths

현재 TrueType 글꼴에서 지정된 범위의 연속 문자 너비를 검색합니다.

BOOL GetCharABCWidths(
    UINT nFirstChar,
    UINT nLastChar,
    LPABC lpabc) const;

BOOL GetCharABCWidths(
    UINT nFirstChar,
    UINT nLastChar,
    LPABCFLOAT lpABCF) const;

매개 변수

nFirstChar
문자 너비가 반환되는 현재 글꼴에서 문자 범위의 첫 번째 문자를 지정합니다.

nLastChar
문자 너비가 반환되는 현재 글꼴에서 문자 범위의 마지막 문자를 지정합니다.

lpabc
함수가 반환될 때 문자 너비를 받는 구조체의 배열 ABC 을 가리킵니다. 이 배열은 범위에서 지정 nFirstChar 한 문자 및 nLastChar 매개 변수만큼 많은 ABC 구조를 포함해야 합니다.

lpABCF
함수가 반환될 때 문자 너비를 받을 구조 배열 ABCFLOAT 이 있는 애플리케이션 제공 버퍼를 가리킵니다. 이 함수에서 반환되는 너비는 IEEE 부동 소수점 형식입니다.

Return Value

함수가 성공하면 0이 아니고 그렇지 않으면 0입니다.

설명

너비는 논리 단위로 반환됩니다. 이 함수는 TrueType 글꼴로만 성공합니다.

TrueType 래스터라이저는 특정 포인트 크기를 선택한 후 "ABC" 문자 간격을 제공합니다. "A" 간격은 문자 모양을 배치하기 전에 현재 위치에 추가되는 거리입니다. "B" 간격은 문자 모양의 검은색 부분의 너비입니다. 문자 모양 오른쪽의 공백을 고려하여 현재 위치에 "C" 간격이 추가됩니다. 전체 고급 너비는 A + B + C에서 지정됩니다.

멤버 함수가 문자에 GetCharABCWidths 대한 음수 "A" 또는 "C" 너비를 검색하는 경우 해당 문자에는 언더행 또는 오버행이 포함됩니다.

ABC 너비를 글꼴 디자인 단위로 변환하려면 애플리케이션에서 구조체의 멤버에 저장된 값 ntmSizeEMNEWTEXTMETRIC 과 같은 높이(구조체의 LOGFONT 멤버에 lfHeight 지정된 대로)가 있는 글꼴을 만들어야 합니다. (Windows 함수를 ntmSizeEM 호출 EnumFontFamilies 하여 멤버의 값을 검색할 수 있습니다.)

기본 문자의 ABC 너비는 현재 선택한 글꼴 범위를 벗어난 문자에 사용됩니다.

TrueType이 아닌 글꼴에서 문자의 너비를 검색하려면 애플리케이션에서 Windows 함수를 GetCharWidth 사용해야 합니다.

CDC::GetCharABCWidthsI

현재 TrueType 글꼴에서 지정된 범위의 연속 문자 모양 인덱스의 너비를 논리 단위로 검색합니다.

BOOL GetCharABCWidthsI(
    UINT giFirst,
    UINT cgi,
    LPWORD pgi,
    LPABC lpabc) const;

매개 변수

giFirst
현재 글꼴에서 연속 문자 모양 인덱스 그룹의 첫 번째 문자 모양 인덱스를 지정합니다. 이 매개 변수는 매개 변수NULL가 .인 pgi 경우에만 사용됩니다.

cgi
문자 모양 인덱스의 수를 지정합니다.

pgi
문자 모양 인덱스를 포함하는 배열에 대한 포인터입니다. 값이 NULL면 매개 변수가 giFirst 대신 사용됩니다. 매개 변수는 cgi 이 배열의 문자 모양 인덱스 수를 지정합니다.

lpabc
문자 너비를 받는 구조체 배열 ABC 에 대한 포인터입니다. 이 배열은 매개 변수로 지정된 cgi 문자 모양 인덱스만큼 구조 ABC 체를 포함해야 합니다.

Return Value

함수가 성공하면 0이 아니고 그렇지 않으면 0입니다.

설명

이 멤버 함수는 Windows SDK에 설명된 대로 함수 GetCharABCWidthsI의 기능을 에뮬레이트합니다.

CDC::GetCharWidth

입력 장치 컨텍스트를 사용하여 m_hAttribDC현재 글꼴에서 연속된 문자 그룹의 개별 문자 너비를 검색합니다.

BOOL GetCharWidth(
    UINT nFirstChar,
    UINT nLastChar,
    LPINT lpBuffer) const;

BOOL GetCharWidth(
    UINT nFirstChar,
    UINT nLastChar,
    float* lpFloatBuffer) const;

매개 변수

nFirstChar
현재 글꼴에서 연속된 문자 그룹의 첫 번째 문자를 지정합니다.

nLastChar
현재 글꼴에서 연속된 문자 그룹의 마지막 문자를 지정합니다.

lpBuffer
현재 글꼴의 연속된 문자 그룹에 대한 너비 값을 받는 버퍼를 가리킵니다.

lpFloatBuffer
문자 너비를 받을 버퍼를 가리킵니다. 반환된 너비는 32비트 IEEE 부동 소수점 형식입니다. (너비는 문자의 기준선을 따라 측정됩니다.)

Return Value

함수가 성공하면 0이 아니고 그렇지 않으면 0입니다.

설명

예를 들어 문자 'a'nLastChar를 식별하고 문자 'z'를 식별하는 경우 nFirstChar 함수는 모든 소문자의 너비를 검색합니다.

함수는 을 가리키는 버퍼에 값을 저장합니다 lpBuffer. 이 버퍼는 모든 너비를 보유할 수 있을 만큼 커야 합니다. 즉, 지정된 예제에 26개 이상의 항목이 있어야 합니다.

연속된 문자 그룹의 문자가 특정 글꼴에 없는 경우 기본 문자의 너비 값이 할당됩니다.

CDC::GetCharWidthI

현재 글꼴에서 지정된 범위의 연속 문자 모양 인덱스의 너비를 논리 좌표로 검색합니다.

BOOL GetCharWidthI(
    UINT giFirst,
    UINT cgi,
    LPWORD pgi,
    LPINT lpBuffer) const;

매개 변수

giFirst
현재 글꼴에서 연속 문자 모양 인덱스 그룹의 첫 번째 문자 모양 인덱스를 지정합니다. 이 매개 변수는 매개 변수NULL가 .인 pgi 경우에만 사용됩니다.

cgi
문자 모양 인덱스의 수를 지정합니다.

pgi
문자 모양 인덱스를 포함하는 배열에 대한 포인터입니다. 값이 NULL면 매개 변수가 giFirst 대신 사용됩니다. 매개 변수는 cgi 이 배열의 문자 모양 인덱스 수를 지정합니다.

lpBuffer
너비를 받는 버퍼에 대한 포인터입니다.

Return Value

함수가 성공하면 0이 아니고 그렇지 않으면 0입니다.

설명

이 멤버 함수는 Windows SDK에 설명된 대로 함수 GetCharWidthI의 기능을 에뮬레이트합니다.

CDC::GetClipBox

현재 클리핑 경계를 중심으로 가장 좁은 경계 사각형의 크기를 검색합니다.

virtual int GetClipBox(LPRECT lpRect) const;

매개 변수

lpRect
사각형 차원을 RECT 받을 구조체 또는 CRect 개체를 가리킵니다.

Return Value

클리핑 영역의 형식입니다. 다음 값 중 하나일 수 있습니다.

  • COMPLEXREGION 클리핑 영역에는 테두리가 겹칩니다.

  • ERROR 디바이스 컨텍스트가 잘못되었습니다.

  • NULLREGION 클리핑 영역이 비어 있습니다.

  • SIMPLEREGION 클리핑 영역에는 겹치는 테두리가 없습니다.

설명

차원이 가리키는 버퍼 lpRect에 복사됩니다.

CDC::GetColorAdjustment

디바이스 컨텍스트에 대한 색 조정 값을 검색합니다.

BOOL GetColorAdjustment(LPCOLORADJUSTMENT lpColorAdjust) const;

매개 변수

lpColorAdjust
COLORADJUSTMENT 색 조정 값을 받을 데이터 구조를 가리킵니다.

Return Value

함수가 성공하면 0이 아니고 그렇지 않으면 0입니다.

CDC::GetCurrentBitmap

현재 선택한 개체에 대한 포인터를 CBitmap 반환합니다.

CBitmap* GetCurrentBitmap() const;

Return Value

개체에 대한 포인터( CBitmap 성공하면)이고, 그렇지 않으면 NULL.

설명

이 멤버 함수는 임시 개체를 반환할 수 있습니다.

CDC::GetCurrentBrush

현재 선택한 개체에 대한 포인터를 CBrush 반환합니다.

CBrush* GetCurrentBrush() const;

Return Value

개체에 대한 포인터( CBrush 성공하면)이고, 그렇지 않으면 NULL.

설명

이 멤버 함수는 임시 개체를 반환할 수 있습니다.

CDC::GetCurrentFont

현재 선택한 개체에 대한 포인터를 CFont 반환합니다.

CFont* GetCurrentFont() const;

Return Value

개체에 대한 포인터( CFont 성공하면)이고, 그렇지 않으면 NULL.

설명

이 멤버 함수는 임시 개체를 반환할 수 있습니다.

CDC::GetCurrentPalette

현재 선택한 개체에 대한 포인터를 CPalette 반환합니다.

CPalette* GetCurrentPalette() const;

Return Value

개체에 대한 포인터( CPalette 성공하면)이고, 그렇지 않으면 NULL.

설명

이 멤버 함수는 임시 개체를 반환할 수 있습니다.

CDC::GetCurrentPen

현재 선택한 개체에 대한 포인터를 CPen 반환합니다.

CPen* GetCurrentPen() const;

Return Value

개체에 대한 포인터( CPen 성공하면)이고, 그렇지 않으면 NULL.

설명

이 멤버 함수는 임시 개체를 반환할 수 있습니다.

CDC::GetCurrentPosition

현재 위치(논리 좌표)를 검색합니다.

CPoint GetCurrentPosition() const;

Return Value

개체로서의 현재 위치입니다 CPoint .

설명

멤버 함수를 MoveTo 사용하여 현재 위치를 설정할 수 있습니다.

CDC::GetDCBrushColor

현재 브러시 색을 검색합니다.

COLORREF GetDCBrushColor() const;

Return Value

함수가 성공하면 반환 값은 현재 브러시 색의 값입니다 COLORREF .

함수가 실패하면 반환 값은 .입니다 CLR_INVALID.

설명

이 멤버 함수는 Windows SDK에 설명된 대로 함수 GetDCBrushColor의 기능을 에뮬레이트합니다.

CDC::GetDCPenColor

현재 펜 색을 검색합니다.

COLORREF GetDCPenColor() const;

Return Value

함수가 성공하면 반환 값은 현재 펜 색의 값입니다 COLORREF .

함수가 실패하면 반환 값은 .입니다 CLR_INVALID.

설명

이 멤버 함수는 Windows SDK에 설명된 대로 Win32 함수 GetDCPenColor를 사용합니다.

CDC::GetDeviceCaps

디스플레이 디바이스에 대한 다양한 디바이스 관련 정보를 검색합니다.

int GetDeviceCaps(int nIndex) const;

매개 변수

nIndex
반환할 정보의 유형을 지정 합니다. 값 목록은 Windows SDK를 참조 GetDeviceCaps 하세요.

Return Value

함수가 성공한 경우 요청된 기능의 값입니다.

예시

에 대한 예제를 CPrintDialog::GetDefaults참조하세요.

CDC::GetFontData

확장 가능한 글꼴 파일에서 글꼴 메트릭 정보를 검색합니다.

DWORD GetFontData(
    DWORD dwTable,
    DWORD dwOffset,
    LPVOID lpData,
    DWORD cbData) const;

매개 변수

dwTable
반환할 메트릭 테이블의 이름을 지정합니다. 이 매개 변수는 Microsoft Corporation에서 게시한 TrueType 글꼴 파일 사양에 설명된 메트릭 테이블 중 하나일 수 있습니다. 이 매개 변수가 0이면 글꼴 파일의 시작 부분에서부터 정보가 검색됩니다.

dwOffset
정보 검색을 시작할 테이블의 시작 부분부터 오프셋을 지정합니다. 이 매개 변수가 0이면 매개 변수로 지정된 테이블의 시작 부분에서부터 정보가 검색됩니다 dwTable . 이 값이 테이블 GetFontData 크기보다 크거나 같으면 0을 반환합니다.

lpData
글꼴 정보를 받을 버퍼를 가리킵니다. 이 값이면 함수는 NULL매개 변수에 지정된 dwTable 글꼴 데이터에 필요한 버퍼의 크기를 반환합니다.

cbData
검색할 정보의 길이(바이트)를 지정합니다. 이 매개 변수가 0 GetFontData 이면 매개 변수에 dwTable 지정된 데이터의 크기를 반환합니다.

Return Value

함수가 성공하면 가리키는 버퍼 lpData 에서 반환되는 바이트 수를 지정하고, 그렇지 않으면 -1을 지정합니다.

설명

검색할 정보는 글꼴 파일의 오프셋과 반환할 정보의 길이를 지정하여 식별됩니다.

애플리케이션은 경우에 따라 멤버 함수를 GetFontData 사용하여 TrueType 글꼴을 문서와 함께 저장할 수 있습니다. 이를 위해 애플리케이션은 글꼴을 포함할 수 있는지 여부를 확인한 다음 전체 글꼴 파일을 검색하여 , dwOffsetcbData 매개 변수에 대해 0을 dwTable지정합니다.

애플리케이션은 구조체의 OUTLINETEXTMETRIC 멤버를 검사 글꼴을 otmfsType 포함할 수 있는지 여부를 확인할 수 있습니다. 비트 1이 otmfsType 설정된 경우 글꼴에 포함이 허용되지 않습니다. 비트 1이 명확하면 글꼴을 포함할 수 있습니다. 비트 2가 설정된 경우 포함은 읽기 전용입니다.

애플리케이션이 이 함수를 사용하여 TrueType이 아닌 글꼴에 대한 정보를 검색하려고 하면 멤버 함수는 GetFontData -1을 반환합니다.

CDC::GetFontLanguageInfo

지정된 표시 컨텍스트에 대해 현재 선택한 글꼴에 대한 정보를 반환합니다.

DWORD GetFontLanguageInfo() const;

Return Value

반환 값은 현재 선택한 글꼴의 특성을 식별합니다. 가능한 값의 전체 목록은 다음을 참조하세요 GetFontLanguageInfo.

설명

이 멤버 함수는 Windows SDK에 설명된 대로 함수 GetFontLanguageInfo의 기능을 에뮬레이트합니다.

CDC::GetGlyphOutline

현재 글꼴의 윤곽선 문자에 대한 윤곽선 곡선 또는 비트맵을 검색합니다.

DWORD GetGlyphOutline(
    UINT nChar,
    UINT nFormat,
    LPGLYPHMETRICS lpgm,
    DWORD cbBuffer,
    LPVOID lpBuffer,
    const MAT2* lpmat2) const;

매개 변수

nChar
정보를 반환할 문자를 지정합니다.

nFormat
함수가 정보를 반환하는 형식을 지정합니다. 다음 값 중 하나 또는 0일 수 있습니다.

의미
GGO_BITMAP 문자 모양 비트맵을 반환합니다. 함수가 반환되면 가리키는 lpBuffer 버퍼에는 행이 이중 단어 경계에서 시작되는 픽셀당 1비트 비트맵이 포함됩니다.
GGO_NATIVE 디바이스 단위를 사용하여 래스터라이저의 네이티브 형식으로 곡선 데이터 요소를 반환합니다. 이 값을 지정하면 지정된 lpmat2 모든 변환이 무시됩니다.

nFormat 이 0이면 함수는 구조체를 GLYPHMETRICS 채우지만 문자 모양 윤곽선 데이터는 반환하지 않습니다.

lpgm
문자 셀의 GLYPHMETRICS 문자 모양 배치를 설명하는 구조를 가리킵니다.

cbBuffer
함수가 개요 문자에 대한 정보를 복사하는 버퍼의 크기를 지정합니다. 이 값이 0이고 매개 변수가 nFormat 값인 GGO_NATIVE 경우 함수는 GGO_BITMAP 버퍼의 필요한 크기를 반환합니다.

lpBuffer
함수가 개요 문자에 대한 정보를 복사하는 버퍼를 가리킵니다. 값을 지정 GGO_NATIVE 하면 nFormat 정보가 구조체 형식 TTPOLYGONHEADER 으로 TTPOLYCURVE 복사됩니다. 이 값이 NULLnFormat 값이거나 GGO_NATIVE 값인 경우 함수는 GGO_BITMAP 버퍼의 필요한 크기를 반환합니다.

lpmat2
문자에 MAT2 대한 변환 행렬이 포함된 구조를 가리킵니다. 이 매개 변수는 값을 nFormat지정한 경우에도 GGO_NATIVE 사용할 NULL수 없습니다.

Return Value

검색된 정보에 필요한 버퍼의 크기(바이트)(0인 경우 cbBuffer ) lpBuffer 입니다 NULL. 그렇지 않으면 함수가 성공하면 양수 값이고 오류가 있으면 -1입니다.

설명

애플리케이션은 가리키는 구조에서 2-by-2 변환 행렬을 지정하여 비트맵 형식으로 검색된 문자를 회전할 lpmat2수 있습니다.

문자 모양 윤곽선은 일련의 윤곽선으로 반환됩니다. 각 윤곽선은 구조체에 의해 TTPOLYGONHEADER 정의되고, 그 뒤에는 구조체를 설명하는 데 필요한 만큼의 TTPOLYCURVE 구조체가 정의됩니다. 모든 점이 구조체로 POINTFX 반환되고 상대 이동이 아닌 절대 위치를 나타냅니다. 구조체의 TTPOLYGONHEADER 멤버가 pfxStart 제공하는 시작점은 윤곽선의 윤곽선이 시작되는 지점입니다. 다음 구조체는 TTPOLYCURVE 폴리라인 레코드 또는 스플라인 레코드일 수 있습니다. 폴리라인 레코드는 일련의 점입니다. 점 사이에 그려진 선은 문자의 윤곽선을 설명합니다. 스플라인 레코드는 TrueType에서 사용하는 이차 곡선(즉, 이차 b 스플라인)을 나타냅니다.

CDC::GetGraphicsMode

지정된 디바이스 컨텍스트에 대한 현재 그래픽 모드를 검색합니다.

int GetGraphicsMode() const;

Return Value

성공하면 현재 그래픽 모드를 반환합니다. 이 메서드가 반환할 수 있는 값 목록은 다음을 참조하세요 GetGraphicsMode.

실패하면 0을 반환합니다.

확장 오류 정보를 가져오려면 GetLastError를 호출합니다.

설명

이 메서드는 Windows GDI 함수 GetGraphicsMode를 래핑합니다.

CDC::GetHalftoneBrush

이 멤버 함수를 호출하여 하프톤 브러시를 검색합니다.

static CBrush* PASCAL GetHalftoneBrush();

Return Value

성공하면 개체에 대한 포인터입니다 CBrush . 그렇지 않으면 NULL.

설명

하프톤 브러시는 디더링된 패턴을 만들기 위해 전경색과 배경색이 다른 픽셀을 표시합니다. 다음 다이어그램에서는 하프톤 브러시로 만든 디더링된 패턴의 예를 보여 줍니다.

Diagram that shows how a dithered pen stroke is composed.

이 다이어그램은 검은색의 배경색과 노란색의 전경색을 서로 교대로 사용하여 검정과 노란색 픽셀을 번갈아 가며 디더링된 펜 스트로크를 만들어 패턴으로 결합하는 방법을 보여줍니다.

CDC::GetKerningPairs

지정된 디바이스 컨텍스트에서 현재 선택된 글꼴의 문자 커닝 쌍을 검색합니다.

int GetKerningPairs(
    int nPairs,
    LPKERNINGPAIR lpkrnpair) const;

매개 변수

nPairs
가 가리키는 구조체의 KERNINGPAIR 수를 지정합니다 lpkrnpair. 함수는 지정 nPairs한 것보다 더 많은 커닝 쌍을 복사하지 않습니다.

lpkrnpair
함수가 반환될 때 커닝 쌍을 수신하는 구조체의 배열 KERNINGPAIR 을 가리킵니다. 이 배열에는 지정된 만큼의 구조체가 nPairs포함되어야 합니다. 이 매개 변수인 경우 함수는 NULL글꼴에 대한 총 커닝 쌍 수를 반환합니다.

Return Value

함수가 성공한 경우 검색된 커닝 쌍의 수 또는 글꼴의 총 커닝 쌍 수를 지정합니다. 함수가 실패하거나 글꼴에 대한 커닝 쌍이 없는 경우 0이 반환됩니다.

CDC::GetLayout

이 멤버 함수를 호출하여 프린터 또는 메타파일과 같은 디바이스 컨텍스트에 대한 텍스트 및 그래픽의 레이아웃을 결정합니다.

DWORD GetLayout() const;

Return Value

성공하면 현재 디바이스 컨텍스트에 대한 레이아웃 플래그가 표시됩니다. 그렇지 않으면 GDI_ERROR입니다. 확장 오류 정보는 .를 호출합니다 GetLastError. 레이아웃 플래그 목록은 다음을 참조하세요 CDC::SetLayout.

설명

기본 레이아웃은 왼쪽에서 오른쪽입니다.

CDC::GetMapMode

현재 매핑 모드를 검색합니다.

int GetMapMode() const;

Return Value

매핑 모드입니다.

설명

매핑 모드에 대한 설명은 멤버 함수를 SetMapMode 참조하세요.

참고 항목

DC를 오른쪽에서 왼쪽으로 레이아웃 SetLayout 으로 변경하도록 호출 SetLayout 하면 매핑 모드MM_ISOTROPIC가 자동으로 변경됩니다. 따라서 후속 호출이 GetMapMode 반환 MM_ISOTROPIC됩니다.

CDC::GetMiterLimit

디바이스 컨텍스트에 대한 miter 제한을 반환합니다.

float GetMiterLimit() const;

Return Value

함수가 성공하면 0이 아니고 그렇지 않으면 0입니다.

설명

miter 제한은 마이터 조인이 있는 기하학적 선을 그릴 때 사용됩니다.

CDC::GetNearestColor

지정된 논리 색과 가장 일치하는 단색을 반환합니다.

COLORREF GetNearestColor(COLORREF crColor) const;

매개 변수

crColor
일치시킬 색을 지정합니다.

Return Value

디바이스가 나타낼 수 있는 값에 가장 crColor 가까운 단색을 정의하는 RGB(빨강, 녹색, 파랑) 색 값입니다.

설명

지정된 디바이스에서 이 색을 나타낼 수 있어야 합니다.

CDC::GetOutlineTextMetrics

TrueType 글꼴에 대한 메트릭 정보를 검색합니다.

UINT GetOutlineTextMetrics(
    UINT cbData,
    LPOUTLINETEXTMETRIC lpotm) const;

매개 변수

lpotm
구조체의 OUTLINETEXTMETRIC 배열을 가리킵니다. 이 매개 변수인 경우 함수는 NULL검색된 메트릭 데이터에 필요한 버퍼의 크기를 반환합니다.

cbData
정보가 반환되는 버퍼의 크기(바이트)를 지정합니다.

lpotm
구조를 가리킵니다 OUTLINETEXTMETRIC . 이 매개 변수인 경우 함수는 NULL검색된 메트릭 정보에 필요한 버퍼의 크기를 반환합니다.

Return Value

함수가 성공하면 0이 아니고 그렇지 않으면 0입니다.

설명

구조체에는 OUTLINETEXTMETRIC 구조체를 포함하여 TEXTMETRIC TrueType 형식으로 제공되는 대부분의 글꼴 메트릭 정보가 포함됩니다. 구조체의 OUTLINETEXTMETRIC 마지막 네 멤버는 문자열에 대한 포인터입니다. 애플리케이션은 다른 멤버에 필요한 공간 외에도 이러한 문자열에 대한 공간을 할당해야 합니다. 문자열 크기에 대한 시스템 적용 제한이 없으므로 메모리를 할당하는 가장 간단한 방법은 함수에 대한 첫 번째 호출에서 NULL을 lpotm 지정하여 필요한 크기를 검색하는 것입니다 GetOutlineTextMetrics .

CDC::GetOutputCharWidth

출력 디바이스 컨텍스트 m_hDC를 사용하고 현재 글꼴에서 연속된 문자 그룹의 개별 문자 너비를 검색합니다.

BOOL GetOutputCharWidth(
    UINT nFirstChar,
    UINT nLastChar,
    LPINT lpBuffer) const;

매개 변수

nFirstChar
현재 글꼴에서 연속된 문자 그룹의 첫 번째 문자를 지정합니다.

nLastChar
현재 글꼴에서 연속된 문자 그룹의 마지막 문자를 지정합니다.

lpBuffer
현재 글꼴의 연속된 문자 그룹에 대한 너비 값을 받는 버퍼를 가리킵니다.

Return Value

함수가 성공하면 0이 아니고 그렇지 않으면 0입니다.

설명

예를 들어 문자 'a'nLastChar를 식별하고 문자 'z'를 식별하는 경우 nFirstChar 함수는 모든 소문자의 너비를 검색합니다.

함수는 을 가리키는 버퍼에 값을 저장합니다 lpBuffer. 이 버퍼는 모든 너비를 보유할 수 있을 만큼 커야 합니다. 즉, 지정된 예제에 26개 이상의 항목이 있어야 합니다.

연속된 문자 그룹의 문자가 특정 글꼴에 없는 경우 기본 문자의 너비 값이 할당됩니다.

CDC::GetOutputTabbedTextExtent

출력 디바이스 컨텍스트를 사용하여 m_hDC문자 문자열의 너비와 높이를 계산하려면 이 멤버 함수를 호출합니다.

CSize GetOutputTabbedTextExtent(
    LPCTSTR lpszString,
    int nCount,
    int nTabPositions,
    LPINT lpnTabStopPositions) const;

CSize GetOutputTabbedTextExtent(
    const CString& str,
    int nTabPositions,
    LPINT lpnTabStopPositions) const;

매개 변수

lpszString
측정할 문자열을 가리킵니다. 이 매개 변수에 대한 개체를 CString 전달할 수도 있습니다.

nCount
가리키는 문자열 의 길이를 지정합니다 lpszString.

nTabPositions
을 가리키는 lpnTabStopPositions배열의 탭 중지 위치 수를 지정합니다.

lpnTabStopPositions
논리 단위의 탭 중지 위치를 포함하는 정수 배열을 가리킵니다. 탭 정지는 순서대로 정렬되어야 합니다. 가장 작은 x-값은 배열의 첫 번째 항목이어야 합니다. 뒤로 탭은 허용되지 않습니다.

str
CString 측정할 지정된 문자가 들어 있는 개체입니다.

Return Value

개체의 문자열 크기(논리 단위)입니다 CSize .

설명

문자열에 하나 이상의 탭 문자가 포함된 경우 문자열의 너비는 로 지정된 lpnTabStopPositions탭 정지를 기반으로 합니다. 함수는 현재 선택한 글꼴을 사용하여 문자열의 차원을 계산합니다.

현재 클리핑 영역은 함수에서 반환하는 너비와 높이를 GetOutputTabbedTextExtent 오프셋하지 않습니다.

일부 디바이스는 일반 셀 배열(즉, 문자를 커닝)에 문자를 배치하지 않으므로 문자열에 있는 문자의 익스텐트 합계가 문자열의 범위와 같지 않을 수 있습니다.

0 lpnTabStopPositionsNULLnTabPositions 탭이 8개의 평균 문자 너비로 확장됩니다. 1이면 nTabPositions 탭 정지가 가리키는 배열 lpnTabStopPositions 의 첫 번째 값으로 지정된 거리로 구분됩니다. 둘 이상의 값을 가리키는 경우 lpnTabStopPositions 배열의 각 값에 대해 탭 정지가 지정된 숫자까지 설정됩니다 nTabPositions.

CDC::GetOutputTextExtent

이 멤버 함수를 호출하여 출력 디바이스 컨텍스트 m_hDC를 사용하고 현재 글꼴을 사용하여 텍스트 줄의 너비와 높이를 계산합니다.

CSize GetOutputTextExtent(
    LPCTSTR lpszString,
    int nCount) const;

CSize GetOutputTextExtent(const CString& str) const;

매개 변수

lpszString
문자 문자열을 가리킵니다. 이 매개 변수에 대한 개체를 CString 전달할 수도 있습니다.

nCount
가리키는 문자열 의 길이를 지정합니다 lpszString.

str
CString 측정할 지정된 문자가 들어 있는 개체입니다.

Return Value

개체에 반환된 문자열의 차원(논리 단위)입니다 CSize .

설명

현재 클리핑 영역은 반환 GetOutputTextExtent된 너비와 높이에 영향을 주지 않습니다.

일부 디바이스는 일반 셀 배열(즉, 커닝 수행)에 문자를 배치하지 않으므로 문자열에 있는 문자의 익스텐트 합계가 문자열의 범위와 같지 않을 수 있습니다.

CDC::GetOutputTextMetrics

출력 디바이스 컨텍스트를 사용하여 m_hDC현재 글꼴에 대한 메트릭을 검색합니다.

BOOL GetOutputTextMetrics(LPTEXTMETRIC lpMetrics) const;

매개 변수

lpMetrics
메트릭을 TEXTMETRIC 받는 구조를 가리킵니다.

Return Value

함수가 성공하면 0이 아니고 그렇지 않으면 0입니다.

CDC::GetPath

선의 끝점과 디바이스 컨텍스트로 선택된 경로에 있는 곡선의 제어점을 정의하는 좌표를 검색합니다.

int GetPath(
    LPPOINT lpPoints,
    LPBYTE lpTypes,
    int nCount) const;

매개 변수

lpPoints
선 엔드포인트와 곡선 제어점이 배치되는 데이터 구조 또는 CPoint 개체의 POINT 배열을 가리킵니다.

lpTypes
꼭짓점 형식이 배치되는 바이트 배열을 가리킵니다. 값은 다음 중 하나입니다.

  • PT_MOVETO 해당 지점 lpPoints 이 연결되지 않은 그림을 시작하게 지정합니다.

  • PT_LINETO 이전 지점과 해당 지점 lpPoints 이 줄의 엔드포인트임을 지정합니다.

  • PT_BEZIERTO 해당 지점 lpPoints 이 Bzier 곡선의 제어점 또는 끝점임을 지정합니다.

PT_BEZIERTO 형식은 항상 3 집합에서 발생합니다. 경로 바로 앞에 있는 지점은 Bzier 곡선의 시작점을 정의합니다. 처음 두 PT_BEZIERTO 점은 제어점이고, 세 번째 PT_BEZIERTO 지점은 엔드포인트(하드 코딩된 경우)입니다.

A PT_LINETO 또는 PT_BEZIERTO 형식을 다음 플래그(비트 연산자 OR 사용)와 결합하여 해당 지점이 그림의 마지막 지점이며 그림을 닫아야 함을 나타낼 수 있습니다.

  • PT_CLOSEFIGURE 해당 선이나 곡선을 그린 후 그림이 자동으로 닫히게 지정합니다. 이 그림은 선 또는 곡선 엔드포인트에서 마지막 PT_MOVETO에 해당하는 지점으로 선을 그려 닫습니다.

nCount
배열에 배치 lpPoints 할 수 있는 총 데이터 구조 수를 POINT 지정합니다. 이 값은 배열에 배치 lpTypes 될 수 있는 바이트 수와 동일해야 합니다.

Return Value

매개 변수가 nCount 0이 아니면 열거된 점의 수입니다. 0이면 nCount 경로의 총 포인트 수이며 GetPath 버퍼에 아무 것도 기록하지 않습니다. 0이 아니고 경로의 포인트 수보다 작은 경우 nCount 반환 값은 -1입니다.

설명

디바이스 컨텍스트는 닫힌 경로를 포함해야 합니다. 경로의 점이 논리 좌표로 반환됩니다. 지점은 디바이스 좌표의 경로에 저장되므로 GetPath 현재 변환의 역방향을 사용하여 디바이스 좌표에서 논리 좌표로 점을 변경합니다. 멤버 함수는 경로의 FlattenPath 모든 곡선을 선 세그먼트로 변환하기 위해 이전에 GetPath호출될 수 있습니다.

예시

에 대한 예제를 CDC::BeginPath참조하세요.

CDC::GetPixel

지정된 지점 x 및 *y*에서 픽셀의 RGB 색 값을 검색합니다.

COLORREF GetPixel(
    int x,
    int y) const;

COLORREF GetPixel(POINT point) const;

매개 변수

x
검사할 점의 논리적 x 좌표를 지정합니다.

y
검사할 점의 논리적 y 좌표를 지정합니다.

point
검사할 점의 논리적 x 및 y 좌표를 지정합니다.

Return Value

함수의 두 버전 중 하나에 대해 지정된 점의 색에 대한 RGB 색 값입니다. 좌표가 클리핑 영역에서 점을 지정하지 않으면 -1입니다.

설명

점이 클리핑 영역에 있어야 합니다. 점이 클리핑 영역에 없으면 함수는 효과가 없으며 -1을 반환합니다.

모든 디바이스가 GetPixel 기능을 지원하지는 않습니다. 자세한 내용은 멤버 함수 아래 GetDeviceCapsRC_BITBLT 래스터 기능을 참조하세요.

GetPixel 멤버 함수에는 두 가지 형식이 있습니다. 첫 번째 좌표 값은 두 개의 좌표 값을 사용합니다. 두 번째는 구조체 또는 개체를 CPoint 가져옵니다POINT.

CDC::GetPolyFillMode

현재 다각형 채우기 모드를 검색합니다.

int GetPolyFillMode() const;

Return Value

현재 다각형으로 채워진 모드 ALTERNATE 이거나 WINDING함수가 성공한 경우

설명

SetPolyFillMode 다각형 채우기 모드에 대한 설명은 멤버 함수를 참조하세요.

CDC::GetROP2

현재 그리기 모드를 검색합니다.

int GetROP2() const;

Return Value

그리기 모드입니다. 그리기 모드 값 목록은 멤버 함수를 SetROP2 참조하세요.

설명

그리기 모드는 펜의 색과 채워진 개체의 내부를 디스플레이 화면에 이미 있는 색과 결합하는 방법을 지정합니다.

CDC::GetSafeHdc

이 멤버 함수를 호출하여 출력 디바이스 컨텍스트를 가져옵니다 m_hDC.

HDC GetSafeHdc() const;

Return Value

디바이스 컨텍스트 핸들입니다.

설명

이 멤버 함수는 null 포인터에서도 작동합니다.

CDC::GetStretchBltMode

현재 비트맵 스트레치 모드를 검색합니다.

int GetStretchBltMode() const;

Return Value

반환 값은 현재 비트맵 스트레치 모드(STRETCH_ANDSCANSSTRETCH_DELETESCANS또는 STRETCH_ORSCANS 함수가 성공한 경우)를 지정합니다.

설명

비트맵 스트레치 모드는 멤버 함수에 의해 StretchBlt 늘어나거나 압축되는 비트맵에서 정보를 제거하는 방법을 정의합니다.

STRETCH_ORSCANS 모드는 STRETCH_ANDSCANS 일반적으로 전경 픽셀을 단색 비트맵으로 유지하는 데 사용됩니다. STRETCH_DELETESCANS 이 모드는 일반적으로 색 비트맵에서 색을 유지하는 데 사용됩니다.

CDC::GetTabbedTextExtent

특성 디바이스 컨텍스트를 사용하여 m_hAttribDC문자 문자열의 너비와 높이를 계산하려면 이 멤버 함수를 호출합니다.

CSize GetTabbedTextExtent(
    LPCTSTR lpszString,
    int nCount,
    int nTabPositions,
    LPINT lpnTabStopPositions) const;

CSize GetTabbedTextExtent(
    const CString& str,
    int nTabPositions,
    LPINT lpnTabStopPositions) const;

매개 변수

lpszString
문자열을 가리킵니다. 이 매개 변수에 대한 개체를 CString 전달할 수도 있습니다.

nCount
가리키는 문자열 의 길이를 지정합니다 lpszString.

nTabPositions
을 가리키는 lpnTabStopPositions배열의 탭 중지 위치 수를 지정합니다.

lpnTabStopPositions
논리 단위의 탭 중지 위치를 포함하는 정수 배열을 가리킵니다. 탭 정지는 순서대로 정렬되어야 합니다. 가장 작은 x-값은 배열의 첫 번째 항목이어야 합니다. 뒤로 탭은 허용되지 않습니다.

str
CString 그릴 지정된 문자가 들어 있는 개체입니다.

Return Value

개체의 문자열 크기(논리 단위)입니다 CSize .

설명

문자열에 하나 이상의 탭 문자가 포함된 경우 문자열의 너비는 로 지정된 lpnTabStopPositions탭 정지를 기반으로 합니다. 함수는 현재 선택한 글꼴을 사용하여 문자열의 차원을 계산합니다.

현재 클리핑 영역은 함수에서 반환하는 너비와 높이를 GetTabbedTextExtent 오프셋하지 않습니다.

일부 디바이스는 일반 셀 배열(즉, 문자를 커닝)에 문자를 배치하지 않으므로 문자열에 있는 문자의 익스텐트 합계가 문자열의 범위와 같지 않을 수 있습니다.

0 lpnTabStopPositionsNULL이면 nTabPositions 탭이 평균 문자 너비의 8배로 확장됩니다. 1이면 nTabPositions 탭 정지가 가리키는 배열 lpnTabStopPositions 의 첫 번째 값으로 지정된 거리로 구분됩니다. 둘 이상의 값을 가리키는 경우 lpnTabStopPositions 배열의 각 값에 대해 탭 정지가 지정된 숫자까지 설정됩니다 nTabPositions.

CDC::GetTextAlign

디바이스 컨텍스트에 대한 텍스트 맞춤 플래그의 상태 검색합니다.

UINT GetTextAlign() const;

Return Value

텍스트 맞춤 플래그의 상태. 반환 값은 다음 값 중 하나 이상입니다.

  • TA_BASELINE 경계 사각형 내에서 선택한 글꼴의 기준선과 x축의 맞춤을 지정합니다.

  • TA_BOTTOM 경계 사각형의 아래쪽과 x축의 맞춤을 지정합니다.

  • TA_CENTER 경계 사각형의 가운데와 y축의 맞춤을 지정합니다.

  • TA_LEFT 경계 사각형의 왼쪽과 y축의 맞춤을 지정합니다.

  • TA_NOUPDATECP 현재 위치가 업데이트되지 않도록 지정합니다.

  • TA_RIGHT 경계 사각형의 오른쪽과 y축의 맞춤을 지정합니다.

  • TA_TOP 경계 사각형의 위쪽과 x축의 맞춤을 지정합니다.

  • TA_UPDATECP 현재 위치가 업데이트되도록 지정합니다.

설명

텍스트 맞춤 플래그는 문자열의 TextOut 시작점과 관련하여 멤버 ExtTextOut 함수가 텍스트 문자열을 정렬하는 방법을 결정합니다. 텍스트 맞춤 플래그는 반드시 단일 비트 플래그가 아니며 0과 같을 수 있습니다. 플래그가 설정되었는지 여부를 테스트하려면 애플리케이션이 다음 단계를 수행해야 합니다.

  1. 다음과 같이 그룹화된 플래그 및 관련 플래그에 비트 OR (|) 연산자를 적용합니다.

    • TA_LEFT, TA_CENTERTA_RIGHT

    • TA_BASELINE, TA_BOTTOMTA_TOP

    • TA_NOUPDATECPTA_UPDATECP

  2. 결과 및 반환 값GetTextAlign에 C++ 비트 AND(&) 연산자를 적용합니다.

  3. 이 결과와 플래그의 같음을 테스트합니다.

CDC::GetTextCharacterExtra

문자 간 간격의 양에 대한 현재 설정을 검색합니다.

int GetTextCharacterExtra() const;

Return Value

문자 간 간격의 양입니다.

설명

GDI는 디바이스 컨텍스트에 텍스트 줄을 쓸 때 중단 문자를 포함하여 각 문자에 이 간격을 추가합니다.

문자 간 간격의 기본값은 0입니다.

CDC::GetTextColor

현재 텍스트 색을 검색합니다.

COLORREF GetTextColor() const;

Return Value

RGB 색 값으로 현재 텍스트 색입니다.

설명

텍스트 색은 GDI 텍스트 출력 멤버 함수를 사용하여 그린 문자의 전경색입니다TabbedTextOut.TextOutExtTextOut

CDC::GetTextExtent

현재 글꼴을 사용하여 텍스트 줄의 너비와 높이를 계산하여 차원을 확인하려면 이 멤버 함수를 호출합니다.

CSize GetTextExtent(
    LPCTSTR lpszString,
    int nCount) const;

CSize GetTextExtent(const CString& str) const;

매개 변수

lpszString
문자 문자열을 가리킵니다. 이 매개 변수에 대한 개체를 CString 전달할 수도 있습니다.

nCount
문자열에 있는 문자의 수를 지정합니다.

str
CString 지정된 문자를 포함하는 개체입니다.

Return Value

개체의 문자열 크기(논리 단위)입니다 CSize .

설명

특성 디바이스 컨텍스트에서 m_hAttribDC정보를 검색합니다.

기본적으로 GetTextExtent 차원을 검색하는 텍스트가 가로줄(즉, 이스케이프가 0)을 따라 설정된다고 가정합니다. 0이 아닌 이스케이프를 지정하는 글꼴을 만드는 경우 텍스트 각도를 명시적으로 변환하여 문자열의 크기를 가져와야 합니다.

현재 클리핑 영역은 반환 GetTextExtent된 너비와 높이에 영향을 주지 않습니다.

일부 디바이스는 일반 셀 배열(즉, 커닝 수행)에 문자를 배치하지 않으므로 문자열에 있는 문자의 익스텐트 합계가 문자열의 범위와 같지 않을 수 있습니다.

CDC::GetTextExtentExPointI

지정된 공백 내에 들어갈 지정된 문자열의 문자 수를 검색하고 각 문자에 대한 텍스트 범위로 배열을 채웁니다.

BOOL GetTextExtentExPointI(
    LPWORD pgiIn,
    int cgi,
    int nMaxExtent,
    LPINT lpnFit,
    LPINT alpDx,
    LPSIZE lpSize) const;

매개 변수

pgiIn
익스텐트를 검색할 문자 모양 인덱스 배열에 대한 포인터입니다.

cgi
을 가리키는 pgiIn배열의 문자 모양 수를 지정합니다.

nMaxExtent
서식이 지정된 문자열의 최대 허용 너비(논리 단위)를 지정합니다.

lpnFit
지정한 공간에 nMaxExtent맞는 최대 문자 수를 받는 정수에 대한 포인터입니다. 이 경우 lpnFitNULLnMaxExtent 무시됩니다.

alpDx
부분 문자 모양 익스텐트를 수신하는 정수 배열에 대한 포인터입니다. 배열의 각 요소는 문자 모양 인덱스 배열의 시작 부분과 지정된 nMaxExtent공간에 맞는 문자 모양 중 하나 사이의 간격을 논리 단위로 제공합니다. 이 배열에는 지정된 문자 모양 인덱스 cgi만큼 많은 요소가 있어야 하지만, 함수는 지정된 문자 모양 인덱스에 대해서만 배열을 익스텐트로 lpnFit채웁니다. 이 NULL경우 lpnDx 함수는 부분 문자열 너비를 계산하지 않습니다.

lpSize
SIZE 문자 모양 인덱스 배열의 차원을 논리 단위로 받는 구조체에 대한 포인터입니다. 이 값은 NULL일 수 없습니다.

Return Value

함수가 성공하면 0이 아니고 그렇지 않으면 0입니다.

설명

이 멤버 함수는 Windows SDK에 설명된 대로 함수 GetTextExtentExPointI의 기능을 에뮬레이트합니다.

CDC::GetTextExtentPointI

지정된 문자 모양 인덱스 배열의 너비와 높이를 검색합니다.

BOOL GetTextExtentPointI(
    LPWORD pgiIn,
    int cgi,
    LPSIZE lpSize) const;

매개 변수

pgiIn
익스텐트를 검색할 문자 모양 인덱스 배열에 대한 포인터입니다.

cgi
을 가리키는 pgiIn배열의 문자 모양 수를 지정합니다.

lpSize
SIZE 문자 모양 인덱스 배열의 차원을 논리 단위로 받는 구조체에 대한 포인터입니다. 이 값은 NULL일 수 없습니다.

Return Value

함수가 성공하면 0이 아니고 그렇지 않으면 0입니다.

설명

이 멤버 함수는 Windows SDK에 설명된 대로 함수 GetTextExtentPointI의 기능을 에뮬레이트합니다.

CDC::GetTextFace

현재 글꼴의 서체 이름을 버퍼에 복사하려면 이 멤버 함수를 호출합니다.

int GetTextFace(
    int nCount,
    LPTSTR lpszFacename) const;

int GetTextFace(CString& rString) const;

매개 변수

nCount
버퍼의 크기(바이트)를 지정합니다. 서체 이름이 이 매개 변수에 지정된 바이트 수보다 길면 이름이 잘립니다.

lpszFacename
서체 이름의 버퍼를 가리킵니다.

rString
CString 개체에 대한 참조입니다.

Return Value

종료 null 문자를 포함하지 않고 버퍼에 복사된 바이트 수입니다. 오류가 발생하면 0입니다.

설명

서체 이름은 null로 끝나는 문자열로 복사됩니다.

CDC::GetTextMetrics

특성 디바이스 컨텍스트를 사용하여 현재 글꼴에 대한 메트릭을 검색합니다.

BOOL GetTextMetrics(LPTEXTMETRIC lpMetrics) const;

매개 변수

lpMetrics
메트릭을 TEXTMETRIC 받는 구조를 가리킵니다.

Return Value

함수가 성공하면 0이 아니고 그렇지 않으면 0입니다.

CDC::GetViewportExt

디바이스 컨텍스트 뷰포트의 x 및 y 익스텐트 검색

CSize GetViewportExt() const;

Return Value

개체로서의 x 및 y 익스텐트(디바이스 단위)입니다 CSize .

CDC::GetViewportOrg

디바이스 컨텍스트와 연결된 뷰포트 원본의 x 및 y 좌표를 검색합니다.

CPoint GetViewportOrg() const;

Return Value

뷰포트의 원본(디바이스 좌표)을 개체로 사용합니다 CPoint .

CDC::GetWindow

디스플레이 디바이스 컨텍스트와 연결된 창을 반환합니다.

CWnd* GetWindow() const;

Return Value

성공하면 개체에 대한 포인터입니다 CWnd . 그렇지 않으면 NULL.

설명

고급 함수입니다. 예를 들어 이 멤버 함수는 인쇄하거나 인쇄 미리 보기에서 보기 창을 반환하지 않을 수 있습니다. 항상 출력과 연결된 창을 반환합니다. 지정된 DC를 사용하는 출력 함수는 이 창에 그립니다.

CDC::GetWindowExt

디바이스 컨텍스트와 연결된 창의 x 및 y 익스텐트 검색

CSize GetWindowExt() const;

Return Value

개체로서의 x 및 y 익스텐트(논리 단위)입니다 CSize .

CDC::GetWindowOrg

디바이스 컨텍스트와 연결된 창 원본의 x 및 y 좌표를 검색합니다.

CPoint GetWindowOrg() const;

Return Value

개체로서 창의 원점(논리적 좌표)입니다 CPoint .

CDC::GetWorldTransform

페이지 공간 변환에 대한 현재 세계 공간을 검색합니다.

BOOL GetWorldTransform(XFORM& rXform) const;

매개 변수

rXform
페이지 공간 변환에 XFORM 대한 현재 세계 공간을 받는 구조체에 대한 참조입니다.

Return Value

성공에 대한 0이 아닌 값을 반환합니다.

실패하면 0을 반환합니다.

확장 오류 정보를 가져오려면 GetLastError를 호출합니다.

설명

이 메서드는 Windows GDI 함수 GetWorldTransform를 래핑합니다.

CDC::GradientFill

이 멤버 함수를 호출하여 사각형과 삼각형 구조체를 한 쪽에서 다른 쪽으로 매끄럽게 페이드하는 색으로 채웁니다.

BOOL GradientFill(
    TRIVERTEX* pVertices,
    ULONG nVertices,
    void* pMesh,
    ULONG nMeshElements,
    DWORD dwMode);

매개 변수

pVertices
각각 삼각형 꼭짓점을 정의하는 구조체 배열 TRIVERTEX 에 대한 포인터입니다.

nVertices
꼭짓점 수입니다.

pMesh
삼각형 모드의 GRADIENT_TRIANGLE 구조체 배열 또는 사각형 모드의 GRADIENT_RECT 구조 배열입니다.

nMeshElements
에 있는 pMesh요소(삼각형 또는 사각형)의 수입니다.

dwMode
그라데이션 채우기 모드를 지정합니다. 가능한 값 목록은 Windows SDK를 참조 GradientFill 하세요.

Return Value

성공하면 TRUE이고, 그렇지 않으면 FALSE입니다.

설명

자세한 내용은 Windows SDK를 참조 GradientFill 하세요.

CDC::GrayString

메모리 비트맵에 텍스트를 쓰고 비트맵을 흐리게 한 다음 비트맵을 디스플레이에 복사하여 지정된 위치에 흐리게 표시된(회색) 텍스트를 그립니다.

virtual BOOL GrayString(
    CBrush* pBrush,
    BOOL (CALLBACK* lpfnOutput)(
    HDC,
    LPARAM,
    int),
    LPARAM lpData,
    int nCount,
    int x,
    int y,
    int nWidth,
    int nHeight);

매개 변수

pBrush
디밍(회색)에 사용할 브러시를 식별합니다.

lpfnOutput
문자열을 그릴 애플리케이션 제공 콜백 함수의 프로시저 인스턴스 주소를 지정합니다. 자세한 내용은 Windows OutputFunc콜백 함수에 대한 설명을 참조하세요. 이 매개 변수인 NULL경우 시스템은 Windows TextOut 함수를 사용하여 문자열 lpData 을 그리고 출력할 문자열에 대한 긴 포인터로 간주됩니다.

lpData
출력 함수에 전달할 데이터에 대한 원거리 포인터를 지정합니다. 이 NULLlpData 경우 lpfnOutput 출력할 문자열에 대한 긴 포인터여야 합니다.

nCount
출력할 문자 수를 지정합니다. 이 매개 변수가 0 GrayString 이면 문자열의 길이를 계산합니다(문자열에 대한 포인터라고 lpData 가정). 1이고 함수가 0을 반환하여 lpfnOutput 가리키는 경우 nCount 이미지가 표시되지만 흐리게 표시되지는 않습니다.

x
문자열을 묶는 사각형의 시작 위치의 논리적 x 좌표를 지정합니다.

y
문자열을 묶는 사각형의 시작 위치의 논리적 y 좌표를 지정합니다.

nWidth
문자열을 묶는 사각형의 너비(논리 단위)를 지정합니다. 0 GrayString 인 경우 nWidth 문자열에 대한 포인터라고 가정 lpData 하여 영역의 너비를 계산합니다.

nHeight
문자열을 묶는 사각형의 높이(논리 단위)를 지정합니다. 0 GrayString 이면 nHeight 문자열에 대한 포인터라고 가정 lpData 하여 영역의 높이를 계산합니다.

Return Value

문자열이 그려지면 0이 아니고, 함수 또는 애플리케이션 제공 출력 함수가 TextOut 0을 반환하거나 메모리가 부족하여 디밍을 위한 메모리 비트맵을 만들 수 없는 경우 0이 됩니다.

설명

이 함수는 선택한 브러시 및 배경에 관계없이 텍스트를 흐리게 합니다. 멤버 함수는 GrayString 현재 선택한 글꼴을 사용합니다. 이 함수를 MM_TEXT 사용하기 전에 매핑 모드를 선택해야 합니다.

애플리케이션은 멤버 함수를 호출하지 않고 단색 회색을 지원하는 디바이스에서 흐리게 표시된(회색) 문자열을 GrayString 그릴 수 있습니다. 시스템 색 COLOR_GRAYTEXT 은 비활성화된 텍스트를 그리는 데 사용되는 단색 시스템 색입니다. 애플리케이션은 Windows 함수를 GetSysColor 호출하여 색 값을 COLOR_GRAYTEXT검색할 수 있습니다. 색이 0(검정)이 아닌 경우 애플리케이션은 멤버 함수를 호출 SetTextColor 하여 텍스트 색을 색 값으로 설정한 다음 문자열을 직접 그릴 수 있습니다. 검색된 색이 검은색이면 애플리케이션에서 텍스트를 흐리게(회색)하도록 호출 GrayString 해야 합니다.

이 경우 lpfnOutput GDI는 NULLWindows TextOut 함수를 사용하며 lpData 출력할 문자에 대한 먼 포인터로 간주됩니다. 출력할 문자를 멤버 함수에서 TextOut 처리할 수 없는 경우(예: 문자열이 비트맵으로 저장됨) 애플리케이션은 자체 출력 함수를 제공해야 합니다.

모든 콜백 함수는 예외를 콜백 경계를 넘어 throw할 수 없으므로 Windows로 돌아가기 전에 Microsoft Foundation 예외를 트래핑해야 합니다. 예외에 대한 자세한 내용은 예외 문서를 참조하세요.

전달된 GrayString 콜백 함수는 호출 규칙을 사용해야 __stdcall 하며 .__declspec

프레임워크가 미리 보기 모드인 경우 멤버 함수에 대한 GrayString 호출이 호출로 TextOut 변환되고 콜백 함수가 호출되지 않습니다.

CDC::HIMETRICtoDP

OLE에서 픽셀로 크기를 변환 HIMETRIC 할 때 이 함수를 사용합니다.

void HIMETRICtoDP(LPSIZE lpSize) const;

매개 변수

lpSize
구조체 또는 CSize 개체를 SIZE 가리킵니다.

설명

디바이스 컨텍스트 개체의 매핑 모드 또는 변환은 MM_LOENGLISHMM_HIENGLISHMM_LOMETRICMM_HIMETRIC실제 인치의 픽셀 수를 기반으로 합니다. 매핑 모드가 제약이 없는 다른 모드(예 MM_TEXT: )중 하나인 경우 변환은 논리 인치의 픽셀 수를 기반으로 합니다.

CDC::HIMETRICtoLP

단위를 논리 단위로 변환 HIMETRIC 하려면 이 함수를 호출합니다.

void HIMETRICtoLP(LPSIZE lpSize) const;

매개 변수

lpSize
구조체 또는 CSize 개체를 SIZE 가리킵니다.

설명

OLE에서 크기를 가져와 HIMETRIC 서 애플리케이션의 자연 매핑 모드로 변환하려는 경우 이 함수를 사용합니다.

변환은 먼저 단위를 HIMETRIC 픽셀로 변환한 다음 디바이스 컨텍스트의 현재 매핑 단위를 사용하여 이러한 단위를 논리 단위로 변환하여 수행됩니다. 디바이스 창 및 뷰포트의 범위는 결과에 영향을 줍니다.

CDC::IntersectClipRect

현재 영역의 교집합과 , y1, x2y2로 지정된 x1사각형을 형성하여 새 클리핑 영역을 만듭니다.

int IntersectClipRect(
    int x1,
    int y1,
    int x2,
    int y2);

int IntersectClipRect(LPCRECT lpRect);

매개 변수

x1
사각형의 왼쪽 위 모퉁이에 대한 논리적 x 좌표를 지정합니다.

y1
사각형의 왼쪽 위 모퉁이에 대한 논리적 y 좌표를 지정합니다.

x2
사각형의 오른쪽 아래 모서리에 있는 논리적 x 좌표를 지정합니다.

y2
사각형의 오른쪽 아래 모서리에 대한 논리적 y 좌표를 지정합니다.

lpRect
사각형을 지정합니다. 이 매개 변수의 구조체에 CRect 대한 개체 또는 포인터를 RECT 전달할 수 있습니다.

Return Value

새 클리핑 영역의 형식입니다. 다음 값 중 하나일 수 있습니다.

  • COMPLEXREGION 새 클리핑 영역에는 테두리가 겹칩니다.

  • ERROR 디바이스 컨텍스트가 잘못되었습니다.

  • NULLREGION 새 클리핑 영역이 비어 있습니다.

  • SIMPLEREGION 새 클리핑 영역에는 겹치는 테두리가 없습니다.

설명

GDI는 새 경계 내에 맞게 모든 후속 출력을 클립합니다. 너비와 높이가 32,767을 초과하면 안 됩니다.

CDC::InvertRect

지정된 사각형의 내용을 반전합니다.

void InvertRect(LPCRECT lpRect);

매개 변수

lpRect
반전할 RECT 사각형의 논리적 좌표가 포함된 좌표를 가리킵니다. 이 매개 변수에 대한 개체를 CRect 전달할 수도 있습니다.

설명

반전은 논리적 NOT 연산이며 각 픽셀의 비트를 대칭 이동합니다. 단색 디스플레이에서 이 함수는 흰색 픽셀을 흑백 픽셀로 만듭니다. 색 표시에서 반전은 디스플레이에 대해 색이 생성되는 방식에 따라 달라집니다. 동일한 사각형으로 두 번 호출 InvertRect 하면 디스플레이가 이전 색으로 복원됩니다.

사각형이 비어 있으면 아무 것도 그려지지 않습니다.

예시

void CDCView::DoInvertRect(CDC *pDC)
{
   // invert rect from 20,20 to 50,50
   CRect rect(20, 20, 50, 50);
   pDC->InvertRect(rect);

   // inverting again restores to normal
   ::Sleep(1000);
   pDC->InvertRect(rect);
}

CDC::InvertRgn

로 지정된 pRgn영역의 색을 반전합니다.

BOOL InvertRgn(CRgn* pRgn);

매개 변수

pRgn
반전할 지역을 식별합니다. 영역의 좌표는 논리 단위로 지정됩니다.

Return Value

함수가 성공하면 0이 아니고 그렇지 않으면 0입니다.

설명

단색 디스플레이에서 이 함수는 흰색 픽셀을 흑백 픽셀로 만듭니다. 색 표시에서 반전은 디스플레이에 대해 색이 생성되는 방식에 따라 달라집니다.

CDC::IsPrinting

디바이스 컨텍스트가 인쇄에 사용되는지 여부를 확인합니다.

BOOL IsPrinting() const;

Return Value

개체가 프린터 DC이 CDC 면 0이 아니고, 그렇지 않으면 0입니다.

CDC::LineTo

현재 위치에서 지정 xy 한 점(또는 point)까지 선을 그립니다.

BOOL LineTo(
    int x,
    int y);

BOOL LineTo(POINT point);

매개 변수

x
줄에 대한 엔드포인트의 논리적 x 좌표를 지정합니다.

y
줄에 대한 엔드포인트의 논리적 y 좌표를 지정합니다.

point
줄의 엔드포인트를 지정합니다. 이 매개 변수에 대한 POINT 구조체 또는 개체를 CPoint 전달할 수 있습니다.

Return Value

선이 그려지면 0이 아닌 경우 그렇지 않으면 0입니다.

설명

선택한 펜으로 선이 그려집니다. 현재 위치가 로 설정되거나 .로 설정 xy 됩니다point.

예시

에 대한 예제를 CRect::CenterPoint참조하세요.

CDC::LPtoDP

논리 단위를 디바이스 단위로 변환합니다.

void LPtoDP(
    LPPOINT lpPoints,
    int nCount = 1) const;

void LPtoDP(LPRECT lpRect) const;
void LPtoDP(LPSIZE lpSize) const;

매개 변수

lpPoints
점 배열을 가리킵니다. 배열의 각 지점은 POINT 구조체 또는 개체입니다 CPoint .

nCount
배열의 점 수입니다.

lpRect
RECT 구조체 또는 개체를 가리킵니다CRect. 이 매개 변수는 논리에서 디바이스 단위로 사각형을 매핑하는 일반적인 경우에 사용됩니다.

lpSize
SIZE 구조체 또는 개체를 가리킵니다CSize.

설명

이 함수는 GDI의 논리 좌표계에서 디바이스 좌표계로 각 점 또는 크기의 차원의 좌표를 매핑합니다. 변환은 현재 매핑 모드와 디바이스 창 및 뷰포트의 원본 및 익스텐트의 설정에 따라 달라집니다.

포인트의 x 및 y 좌표는 -32,768에서 32,767 범위의 2 바이트 부가 정수입니다. 매핑 모드에서 이러한 제한보다 큰 값이 발생하는 경우 시스템은 값을 각각 -32,768 및 32,767로 설정합니다.

CDC::LPtoHIMETRIC

논리 단위를 단위로 변환하려면 이 함수를 HIMETRIC 호출합니다.

void LPtoHIMETRIC(LPSIZE lpSize) const;

매개 변수

lpSize
SIZE 구조체 또는 개체를 가리킵니다CSize.

설명

애플리케이션의 자연 매핑 모드에서 변환하여 OLE에 크기를 지정할 HIMETRIC 때 이 함수를 사용합니다. 디바이스 창 및 뷰포트의 범위가 결과에 영향을 줍니다.

변환은 먼저 디바이스 컨텍스트의 현재 매핑 단위를 사용하여 논리 단위를 픽셀로 변환한 다음 이러한 단위를 단위로 HIMETRIC 변환하여 수행됩니다.

CDC::m_hAttribDC

CDC 개체의 특성 디바이스 컨텍스트입니다.

HDC m_hAttribDC;

설명

기본적으로 이 디바이스 컨텍스트는 m_hDC. 일반적으로 CDC 디바이스 컨텍스트에서 정보를 요청하는 GDI 호출은 .로 전달 m_hAttribDC됩니다. CDC 이러한 두 디바이스 컨텍스트의 사용에 대한 자세한 내용은 클래스 설명을 참조하세요.

CDC::m_hDC

CDC 개체의 출력 디바이스 컨텍스트입니다.

HDC m_hDC;

설명

기본적으로 m_hDC 다른 디바이스 컨텍스트는 m_hAttribDC으로 래핑됩니다 CDC. 일반적으로 CDC 출력을 만드는 GDI 호출은 디바이스 컨텍스트로 m_hDC 이동합니다. 다른 디바이스를 초기화 m_hDC 하고 m_hAttribDC 가리킬 수 있습니다. CDC 이러한 두 디바이스 컨텍스트의 사용에 대한 자세한 내용은 클래스 설명을 참조하세요.

CDC::MaskBlt

지정된 마스크 및 래스터 작업을 사용하여 원본 및 대상 비트맵의 색 데이터를 결합합니다.

BOOL MaskBlt(
    int x,
    int y,
    int nWidth,
    int nHeight,
    CDC* pSrcDC,
    int xSrc,
    int ySrc,
    CBitmap& maskBitmap,
    int xMask,
    int yMask,
    DWORD dwRop);

매개 변수

x
대상 사각형의 왼쪽 위 모퉁이에 대한 논리적 x 좌표를 지정합니다.

y
대상 사각형의 왼쪽 위 모퉁이에 대한 논리적 y 좌표를 지정합니다.

nWidth
대상 사각형 및 원본 비트맵의 너비를 논리 단위로 지정합니다.

nHeight
대상 사각형 및 원본 비트맵의 높이를 논리 단위로 지정합니다.

pSrcDC
비트맵을 복사할 디바이스 컨텍스트를 식별합니다. 매개 변수가 원본을 dwRop 포함하지 않는 래스터 작업을 지정하는 경우 0이어야 합니다.

xSrc
원본 비트맵의 왼쪽 위 모퉁이에 대한 논리적 x 좌표를 지정합니다.

ySrc
원본 비트맵의 왼쪽 위 모퉁이에 대한 논리적 y 좌표를 지정합니다.

maskBitmap
원본 디바이스 컨텍스트에서 색 비트맵과 결합된 단색 마스크 비트맵을 식별합니다.

xMask
매개 변수로 지정된 마스크 비트맵의 가로 픽셀 오프셋을 maskBitmap 지정합니다.

yMask
매개 변수로 지정된 마스크 비트맵의 세로 픽셀 오프셋을 maskBitmap 지정합니다.

dwRop
함수가 원본 데이터와 대상 데이터의 조합을 제어하는 데 사용하는 포그라운드 및 백그라운드 삼항 래스터 작업 코드를 모두 지정합니다. 백그라운드 래스터 작업 코드는 이 값의 상위 단어의 상위 바이트에 저장됩니다. 전경 래스터 작업 코드는 이 값의 상위 단어의 낮은 바이트에 저장됩니다. 이 값의 낮음 단어는 무시되며 0이어야 합니다. 매크로 MAKEROP4 는 포그라운드 및 백그라운드 래스터 작업 코드의 이러한 조합을 만듭니다. 이 함수의 컨텍스트에서 전경 및 배경에 대한 설명 섹션을 참조하세요. BitBlt 일반적인 래스터 작업 코드 목록은 멤버 함수를 참조하세요.

Return Value

함수가 성공하면 0이 아니고 그렇지 않으면 0입니다.

설명

지정 maskBitmap 한 마스크의 값이 1이면 지정된 dwRop 포그라운드 래스터 작업 코드가 해당 위치에 적용되어야 임을 나타냅니다. 마스크의 값이 0이면 지정된 dwRop 백그라운드 래스터 작업 코드가 해당 위치에 적용되어야 임을 나타냅니다. 래스터 작업에 원본이 필요한 경우 마스크 사각형은 원본 사각형을 포함해야 합니다. 그렇지 않으면 함수가 실패합니다. 래스터 작업에 원본이 필요하지 않은 경우 마스크 사각형은 대상 사각형을 포함해야 합니다. 그렇지 않으면 함수가 실패합니다.

이 함수를 호출할 때 원본 디바이스 컨텍스트에 회전 또는 전단 변환이 적용되면 오류가 발생합니다. 그러나 다른 유형의 변환은 허용됩니다.

원본, 패턴 및 대상 비트맵의 색 형식이 다른 경우 이 함수는 패턴 또는 원본 형식 또는 둘 다를 대상 형식과 일치하도록 변환합니다. 마스크 비트맵이 단색 비트맵이 아니면 오류가 발생합니다. 향상된 메타파일을 기록할 때 원본 디바이스 컨텍스트가 향상된 메타파일 디바이스 컨텍스트를 식별하는 경우 오류가 발생하고 함수가 0을 반환합니다. 모든 디바이스가 지원 MaskBlt되지는 않습니다. 애플리케이션은 디바이스가 이 함수를 지원하는지 여부를 확인하기 위해 호출 GetDeviceCaps 해야 합니다. 마스크 비트맵이 제공되지 않으면 이 함수는 포그라운드 래스터 작업 코드를 사용하여 정확히 동일하게 BitBlt동작합니다. 마스크 비트맵의 픽셀 오프셋은 원본 디바이스 컨텍스트의 비트맵에 있는 지점(0,0)에 매핑됩니다. 이는 마스크 비트맵에 마스크 집합이 포함된 경우에 유용합니다. 애플리케이션은 전송된 픽셀 오프셋 및 사각형 크기를 조정하여 마스크 블리팅 작업에 해당 중 하나를 쉽게 적용할 수 MaskBlt있습니다.

CDC::ModifyWorldTransform

지정된 모드를 사용하여 디바이스 컨텍스트의 월드 변환을 변경합니다.

BOOL ModifyWorldTransform(
    const XFORM& rXform,
    DWORD iMode);

매개 변수

rXform
지정된 디바이스 컨텍스트에 XFORM 대한 월드 변환을 수정하는 데 사용되는 구조에 대한 참조입니다.

iMode
변환 데이터가 현재 월드 변환을 수정하는 방법을 지정합니다. 이 매개 변수가 사용할 수 있는 값 목록은 다음을 참조하세요 ModifyWorldTransform.

Return Value

성공에 대한 0이 아닌 값을 반환합니다.

실패하면 0을 반환합니다.

확장 오류 정보를 가져오려면 GetLastError를 호출합니다.

설명

이 메서드는 Windows GDI 함수 ModifyWorldTransform를 래핑합니다.

CDC::MoveTo

현재 위치를 지정한 지점(y또는 )으로 xpoint이동합니다.

CPoint MoveTo(
    int x,
    int y);

CPoint MoveTo(POINT point);

매개 변수

x
새 위치의 논리적 x 좌표를 지정합니다.

y
새 위치의 논리적 y 좌표를 지정합니다.

point
새 위치를 지정합니다. 이 매개 변수에 대한 POINT 구조체 또는 개체를 CPoint 전달할 수 있습니다.

Return Value

개체로 이전 위치의 x 및 y 좌표입니다 CPoint .

예시

에 대한 예제를 CRect::CenterPoint참조하세요.

CDC::OffsetClipRgn

디바이스 컨텍스트의 클리핑 영역을 지정된 오프셋으로 이동합니다.

int OffsetClipRgn(
    int x,
    int y);

int OffsetClipRgn(SIZE size);

매개 변수

x
왼쪽 또는 오른쪽으로 이동할 논리 단위 수를 지정합니다.

y
위쪽 또는 아래로 이동할 논리 단위 수를 지정합니다.

size
오프셋할 크기를 지정합니다.

Return Value

새 지역의 형식입니다. 다음 값 중 하나일 수 있습니다.

  • COMPLEXREGION 클리핑 영역에는 테두리가 겹칩니다.

  • ERROR 디바이스 컨텍스트가 잘못되었습니다.

  • NULLREGION 클리핑 영역이 비어 있습니다.

  • SIMPLEREGION 클리핑 영역에는 겹치는 테두리가 없습니다.

설명

이 함수는 x축을 따라 영역 x 단위를 y 이동하고 y축을 따라 단위를 이동합니다.

CDC::OffsetViewportOrg

현재 뷰포트 원점의 좌표를 기준으로 뷰포트 원점의 좌표를 수정합니다.

virtual CPoint OffsetViewportOrg(
    int nWidth,
    int nHeight);

매개 변수

nWidth
현재 원본의 x 좌표에 추가할 디바이스 단위 수를 지정합니다.

nHeight
현재 원본의 y 좌표에 추가할 디바이스 단위 수를 지정합니다.

Return Value

이전 뷰포트 원본(디바이스 좌표)을 개체로 사용합니다 CPoint .

CDC::OffsetWindowOrg

현재 창 원점의 좌표를 기준으로 창 원점의 좌표를 수정합니다.

CPoint OffsetWindowOrg(
    int nWidth,
    int nHeight);

매개 변수

nWidth
현재 원점의 x 좌표에 추가할 논리 단위 수를 지정합니다.

nHeight
현재 원점의 y 좌표에 추가할 논리 단위 수를 지정합니다.

Return Value

개체로서 이전 창 원본(논리 좌표)입니다 CPoint .

CDC::operator HDC

이 연산자를 사용하여 개체의 디바이스 컨텍스트 핸들을 검색합니다 CDC .

operator HDC() const;

Return Value

성공하면 디바이스 컨텍스트 개체의 핸들입니다. 그렇지 않으면 . NULL

설명

핸들을 사용하여 Windows API를 직접 호출할 수 있습니다.

CDC::PaintRgn

현재 브러시를 사용하여 지정한 pRgn 영역을 채웁니다.

BOOL PaintRgn(CRgn* pRgn);

매개 변수

pRgn
채울 지역을 식별합니다. 지정된 영역의 좌표는 논리 단위로 지정됩니다.

Return Value

함수가 성공하면 0이 아니고 그렇지 않으면 0입니다.

CDC::PatBlt

디바이스에서 비트 패턴을 만듭니다.

BOOL PatBlt(
    int x,
    int y,
    int nWidth,
    int nHeight,
    DWORD dwRop);

매개 변수

x
패턴을 받을 사각형의 왼쪽 위 모퉁이에 대한 논리적 x 좌표를 지정합니다.

y
패턴을 받을 사각형의 왼쪽 위 모퉁이에 대한 논리적 y 좌표를 지정합니다.

nWidth
패턴을 받을 사각형의 너비(논리 단위)를 지정합니다.

nHeight
패턴을 받을 사각형의 높이(논리 단위)를 지정합니다.

dwRop
래스터 작업 코드를 지정합니다. ROM(래스터 작업 코드)은 GDI가 현재 브러시, 가능한 소스 비트맵 및 대상 비트맵을 포함하는 출력 작업에서 색을 결합하는 방법을 정의합니다. 이 매개 변수는 다음 값 중 하나일 수 있습니다.

  • PATCOPY 패턴을 대상 비트맵에 복사합니다.

  • PATINVERT 부울 XOR (^) 연산자를 사용하여 대상 비트맵을 패턴과 결합합니다.

  • DSTINVERT 대상 비트맵을 반전합니다.

  • BLACKNESS 모든 출력을 검은색으로 바꿉니다.

  • WHITENESS 모든 출력을 흰색으로 바꿉니다.

Return Value

함수가 성공하면 0이 아니고 그렇지 않으면 0입니다.

설명

패턴은 선택한 브러시와 이미 디바이스에 있는 패턴의 조합입니다. 지정한 dwRop 래스터 작업 코드는 패턴을 결합하는 방법을 정의합니다. 이 함수에 대해 나열된 래스터 작업은 전체 256개의 3개 래스터 작업 코드의 제한된 하위 집합입니다. 특히 소스를 참조하는 래스터 작업 코드를 사용할 수 없습니다.

모든 디바이스 컨텍스트가 이 함수를 지원하는 것은 PatBlt 아닙니다. 디바이스 컨텍스트에서 지원하는지 여부를 확인하려면 인덱스를 PatBlt사용하여 멤버 함수를 RASTERCAPS 호출 GetDeviceCaps 하고 플래그의 반환 값을 RC_BITBLT 검사.

CDC::Pie

가운데와 두 개의 엔드포인트가 선으로 조인된 타원형 호를 그려 원형 모양의 쐐기를 그립니다.

BOOL Pie(
    int x1,
    int y1,
    int x2,
    int y2,
    int x3,
    int y3,
    int x4,
    int y4);

BOOL Pie(
    LPCRECT lpRect,
    POINT ptStart,
    POINT ptEnd);

매개 변수

x1
경계 사각형의 왼쪽 위 모퉁이의 x 좌표를 논리 단위로 지정합니다.

y1
경계 사각형의 왼쪽 위 모퉁이의 y 좌표를 논리 단위로 지정합니다.

x2
경계 사각형의 오른쪽 아래 모서리(논리 단위)의 x 좌표를 지정합니다.

y2
경계 사각형의 오른쪽 아래 모서리(논리 단위)의 y 좌표를 지정합니다.

x3
아크 시작점의 x 좌표를 논리 단위로 지정합니다. 이 지점은 호에 정확히 놓을 필요가 없습니다.

y3
호 시작점의 y 좌표를 논리 단위로 지정합니다. 이 지점은 호에 정확히 놓을 필요가 없습니다.

x4
아크 엔드포인트의 x 좌표를 논리 단위로 지정합니다. 이 지점은 호에 정확히 놓을 필요가 없습니다.

y4
아크 엔드포인트의 y 좌표를 논리 단위로 지정합니다. 이 지점은 호에 정확히 놓을 필요가 없습니다.

lpRect
경계 사각형을 지정합니다. 이 매개 변수의 구조체에 CRect 대한 개체 또는 포인터를 RECT 전달할 수 있습니다.

ptStart
호의 시작점을 지정합니다. 이 지점은 호에 정확히 놓을 필요가 없습니다. 이 매개 변수에 대한 POINT 구조체 또는 개체를 CPoint 전달할 수 있습니다.

ptEnd
호의 엔드포인트를 지정합니다. 이 지점은 호에 정확히 놓을 필요가 없습니다. 이 매개 변수에 대한 POINT 구조체 또는 개체를 CPoint 전달할 수 있습니다.

Return Value

함수가 성공하면 0이 아니고 그렇지 않으면 0입니다.

설명

호 중심은 , , 및 y2 (또는 lpRect)로 지정된 x1경계 사각형의 중심x2입니다. y1 호의 시작점과 끝점은 , , 및 (또는 및 )에 의해 x3ptStartptEnd지정됩니다.y4x4y3

원호는 선택한 펜으로 그려져 시계 반대 방향으로 이동합니다. 각 엔드포인트에서 호 중앙으로 두 개의 선이 더 그려집니다. 원형 모양 영역은 현재 브러시로 채워집니다. 같고 같으면 x3 결과는 줄임표의 중심에서 점(, y3) 또는 (x3x4, y4)로 한 줄이 있는 줄임표y4입니다.y3x4

이 함수에서 그린 그림은 최대로 확장되지만 오른쪽 및 아래쪽 좌표는 포함되지 않습니다. 즉, 그림의 높이와 y2 - y1 그림의 너비가 입니다.x2 - x1 경계 사각형의 너비와 높이 모두 2단원보다 크고 32,767단원 미만이어야 합니다.

예시

void CDCView::DrawPie(CDC *pDC)
{
   // Fill the client area with a simple pie chart. A
   // big blue slice covers 75% of the pie, from
   // 6 o'clock to 3 o'clock. This portion is filled
   // with blue and has a blue edge. The remaining 25%
   // is filled with a red, diagonal hatch and has
   // a red edge.

   // Get the client area.
   CRect rectClient;
   GetClientRect(rectClient);

   // Make a couple of pens and similar brushes.
   CPen penBlue, penRed;
   CBrush brushBlue, brushRed;
   CBrush *pOldBrush;
   CPen *pOldPen;

   brushBlue.CreateSolidBrush(RGB(0, 0, 255));
   brushRed.CreateHatchBrush(HS_FDIAGONAL, RGB(255, 0, 0));
   penBlue.CreatePen(PS_SOLID | PS_COSMETIC, 1, RGB(0, 0, 255));
   penRed.CreatePen(PS_SOLID | PS_COSMETIC, 1, RGB(255, 0, 0));

   // Draw from 3 o'clock to 6 o'clock, counterclockwise,
   // in a blue pen with a solid blue fill.

   pOldPen = pDC->SelectObject(&penBlue);
   pOldBrush = pDC->SelectObject(&brushBlue);

   pDC->Pie(rectClient,
            CPoint(rectClient.right, rectClient.CenterPoint().y),
            CPoint(rectClient.CenterPoint().x, rectClient.right));

   // Draw the remaining quarter slice from 6 o'clock
   // to 3 o'clock, counterclockwise, in a red pen with
   // the hatched brush.
   pDC->SelectObject(&penRed);
   pDC->SelectObject(&brushRed);

   // Same parameters, but reverse start and end points.
   pDC->Pie(rectClient,
            CPoint(rectClient.CenterPoint().x, rectClient.right),
            CPoint(rectClient.right, rectClient.CenterPoint().y));

   // Restore the previous pen.
   pDC->SelectObject(pOldPen);
}

CDC::PlayMetaFile

디바이스 컨텍스트에서 지정된 메타파일의 내용을 재생합니다.

BOOL PlayMetaFile(HMETAFILE hMF);

BOOL PlayMetaFile(
    HENHMETAFILE hEnhMetaFile,
    LPCRECT lpBounds);

매개 변수

hMF
재생할 메타파일을 식별합니다.

hEnhMetaFile
향상된 메타파일을 식별합니다.

lpBounds
RECT 그림을 표시하는 데 사용되는 경계 사각형의 좌표를 포함하는 구조체 또는 CRect 개체를 가리킵니다. 좌표는 논리 단위로 지정됩니다.

Return Value

함수가 성공하면 0이 아니고 그렇지 않으면 0입니다.

설명

메타파일은 여러 번 재생할 수 있습니다.

두 번째 버전은 PlayMetaFile 지정된 고급 형식 메타파일에 저장된 그림을 표시합니다. 애플리케이션이 두 번째 버전을 호출하는 경우 Windows는 고급 메타파일 헤더의 PlayMetaFile그림 프레임을 사용하여 lpBounds 매개 변수가 가리키는 사각형에 그림을 매핑합니다 . (이 그림은 호출 PlayMetaFile하기 전에 출력 디바이스에서 월드 변환을 설정하여 전단하거나 회전할 수 있습니다.) 사각형의 가장자리를 따라 있는 점이 그림에 포함됩니다. 향상된 메타파일을 재생하기 전에 출력 디바이스에서 클리핑 영역을 정의하여 향상된 메타파일 그림을 클리핑할 수 있습니다.

향상된 메타파일에 선택적 색상표가 포함된 경우 애플리케이션은 두 번째 버전을 PlayMetaFile호출하기 전에 출력 디바이스에서 색상표를 설정하여 일관된 색을 얻을 수 있습니다. 선택적 팔레트를 검색하려면 Windows 함수를 GetEnhMetaFilePaletteEntries 사용합니다. 향상된 메타파일은 두 번째 버전을 PlayMetaFile 호출하고 향상된 원본 메타파일을 디바이스 컨텍스트로 재생하여 새로 만든 향상된 메타파일에 포함할 수 있습니다.

출력 디바이스 컨텍스트의 상태는 이 함수에 의해 유지됩니다. 향상된 메타파일에서 생성되었지만 삭제되지 않은 개체는 이 함수에 의해 삭제됩니다. 이 함수를 중지하기 위해 애플리케이션은 다른 스레드에서 Windows 함수를 호출 CancelDC 하여 작업을 종료할 수 있습니다. 이 경우 함수는 0을 반환합니다.

CDC::PlgBlt

원본 디바이스 컨텍스트의 지정된 사각형에서 지정된 디바이스 컨텍스트의 지정된 병렬로 색 데이터의 비트를 비트 블록 전송합니다.

BOOL PlgBlt(
    LPPOINT lpPoint,
    CDC* pSrcDC,
    int xSrc,
    int ySrc,
    int nWidth,
    int nHeight,
    CBitmap& maskBitmap,
    int xMask,
    int yMask);

매개 변수

lpPoint
대상 병렬 프로그래밍의 세 모서리를 식별하는 논리 공간에서 세 점의 배열을 가리킵니다. 원본 사각형의 왼쪽 위 모서리는 이 배열의 첫 번째 점, 이 배열의 오른쪽 위 모퉁이에서 두 번째 지점까지, 왼쪽 아래 모서리는 세 번째 지점에 매핑됩니다. 원본 사각형의 오른쪽 아래 모서리는 병렬 프로그래밍의 암시적 네 번째 지점에 매핑됩니다.

pSrcDC
원본 디바이스 컨텍스트를 식별합니다.

xSrc
원본 사각형의 왼쪽 위 모서리에 있는 x 좌표를 논리 단위로 지정합니다.

ySrc
원본 사각형의 왼쪽 위 모서리에 있는 y 좌표를 논리 단위로 지정합니다.

nWidth
원본 사각형의 너비를 논리 단위로 지정합니다.

nHeight
원본 사각형의 높이를 논리 단위로 지정합니다.

maskBitmap
원본 사각형의 색을 마스킹하는 데 사용되는 선택적 단색 비트맵을 식별합니다.

xMask
모노크롬 비트맵의 왼쪽 위 모퉁이의 x 좌표를 지정합니다.

yMask
단색 비트맵의 왼쪽 위 모퉁이에 대한 y 좌표를 지정합니다.

Return Value

함수가 성공하면 0이 아니고 그렇지 않으면 0입니다.

설명

지정된 비트 마스크 핸들이 유효한 단색 비트맵을 식별하는 경우 함수는 이 비트맵을 사용하여 원본 사각형에서 색 데이터의 비트를 마스킹합니다.

병렬 도형(D)의 네 번째 꼭짓점은 처음 세 점(A, B 및 C)을 벡터로 처리하고 D = B + C - A를 계산하여 정의됩니다.

비트 마스크가 있는 경우 마스크의 값 1은 원본 픽셀 색을 대상으로 복사해야 임을 나타냅니다. 마스크의 값이 0이면 대상 픽셀 색이 변경되지 않음을 나타냅니다.

마스크 사각형이 원본 및 대상 사각형보다 작은 경우 함수는 마스크 패턴을 복제본(replica).

크기 조정, 변환 및 리플렉션 변환은 원본 디바이스 컨텍스트에서 허용됩니다. 그러나 회전 및 전단 변환은 그렇지 않습니다. 마스크 비트맵이 단색 비트맵이 아니면 오류가 발생합니다. 대상 디바이스 컨텍스트에 대한 스트레치 모드는 필요한 경우 픽셀을 늘이거나 압축하는 방법을 결정하는 데 사용됩니다. 향상된 메타파일을 기록할 때 원본 디바이스 컨텍스트가 향상된 메타파일 디바이스 컨텍스트를 식별하는 경우 오류가 발생합니다.

대상 좌표는 대상 디바이스 컨텍스트에 따라 변환됩니다. 소스 좌표는 소스 디바이스 컨텍스트에 따라 변환됩니다. 원본 변환에 회전 또는 전단이 있으면 오류가 반환됩니다. 대상 및 원본 사각형의 색 형식 PlgBlt 이 같지 않으면 원본 사각형을 대상 사각형과 일치하도록 변환합니다. 모든 디바이스가 지원 PlgBlt되지는 않습니다. 자세한 내용은 멤버 함수의 RC_BITBLT 래스터 기능에 대한 CDC::GetDeviceCaps 설명을 참조하세요.

원본 및 대상 디바이스 컨텍스트가 호환되지 않는 디바이스 PlgBlt 를 나타내는 경우 오류를 반환합니다.

CDC::PolyBezier

하나 이상의 Bzier 스플라인을 그립니다.

BOOL PolyBezier(
    const POINT* lpPoints,
    int nCount);

매개 변수

lpPoints
스플라인의 POINT 엔드포인트 및 제어점을 포함하는 데이터 구조의 배열을 가리킵니다.

nCount
배열의 점 lpPoints 수를 지정합니다. 각 Bzier 스플라인에는 두 개의 제어점과 엔드포인트가 필요하며 초기 스플라인에는 다른 시작점이 필요하기 때문에 이 값은 그릴 스플라인 수의 3배 이상이어야 합니다.

Return Value

함수가 성공하면 0이 아니고 그렇지 않으면 0입니다.

설명

이 함수는 매개 변수로 지정된 엔드포인트 및 제어점을 사용하여 입방형 Bzier 스플라인을 lpPoints 그립니다. 첫 번째 스플라인은 두 번째와 세 번째 점을 제어점으로 사용하여 첫 번째 지점에서 네 번째 지점까지 그려집니다. 시퀀스의 각 후속 스플라인에는 정확히 세 개의 점이 더 필요합니다. 이전 스플라인의 끝점은 시작점으로 사용되고, 시퀀스의 다음 두 지점은 제어점이고, 세 번째는 끝점입니다.

현재 위치는 함수에서 PolyBezier 사용되거나 업데이트되지 않습니다. 그림이 채워지지 않습니다. 이 함수는 현재 펜을 사용하여 선을 그립니다.

CDC::PolyBezierTo

하나 이상의 Bzier 스플라인을 그립니다.

BOOL PolyBezierTo(
    const POINT* lpPoints,
    int nCount);

매개 변수

lpPoints
엔드포인트 및 제어점을 포함하는 데이터 구조의 POINT 배열을 가리킵니다.

nCount
배열의 점 lpPoints 수를 지정합니다. 각 Bzier 스플라인에는 두 개의 제어점과 끝점이 필요하기 때문에 이 값은 그릴 스플라인 수의 3배여야 합니다.

Return Value

함수가 성공하면 0이 아니고 그렇지 않으면 0입니다.

설명

이 함수는 매개 변수로 지정된 제어점을 사용하여 입방형 Bzier 스플라인을 lpPoints 그립니다. 첫 번째 스플라인은 처음 두 점을 제어점으로 사용하여 현재 위치에서 세 번째 지점으로 그려집니다. 각 후속 스플라인에 대해 함수는 정확히 세 개의 지점을 더 필요로 하며, 이전 스플라인의 끝점을 다음 스플라인의 시작점으로 사용합니다. PolyBezierTo 는 현재 위치를 마지막 Bzier 스플라인의 끝점으로 이동합니다. 그림이 채워지지 않습니다. 이 함수는 현재 펜을 사용하여 선을 그립니다.

예시

에 대한 예제를 CDC::BeginPath참조하세요.

CDC::PolyDraw

선 세그먼트 및 Bzier 스플라인 집합을 그립니다.

BOOL PolyDraw(
    const POINT* lpPoints,
    const BYTE* lpTypes,
    int nCount);

매개 변수

lpPoints
각 줄 세그먼트의 POINT 엔드포인트와 각 Bzier 스플라인의 엔드포인트 및 제어점을 포함하는 데이터 구조의 배열을 가리킵니다.

lpTypes
배열의 각 점이 사용되는 방법을 지정하는 배열을 lpPoints 가리킵니다. 값은 다음 중 하나일 수 있습니다.

  • PT_MOVETO 이 점이 연결되지 않은 그림을 시작하게 지정합니다. 이 점은 새 현재 위치가 됩니다.

  • PT_LINETO 현재 위치에서 이 지점까지 선이 그려지도록 지정합니다. 그러면 새 현재 위치가 됩니다.

  • PT_BEZIERTO 이 점이 Bzier 스플라인의 제어점 또는 끝점임을 지정합니다.

PT_BEZIERTO 형식은 항상 3 집합에서 발생합니다. 현재 위치는 Bzier 스플라인의 시작점을 정의합니다. 처음 두 PT_BEZIERTO 지점은 제어점이고, 세 번째 PT_BEZIERTO 점은 끝점입니다. 끝점은 새 현재 위치가 됩니다. 연속 PT_BEZIERTO 된 점이 3개 없는 경우 오류가 발생합니다.

비트 연산자 OR을 사용하여 A PT_LINETO 또는 PT_BEZIERTO 형식을 다음 상수와 결합하여 해당 점이 그림의 마지막 점이고 그림이 닫혀 있음을 나타낼 수 있습니다.

  • PT_CLOSEFIGURE이 지점의 형식 또는 PT_BEZIERTO 유형이 완료된 후 그림이 PT_LINETO 자동으로 닫히게 지정합니다. 이 지점에서 가장 최근 PT_MOVETO 또는 MoveTo 지점까지 선이 그려집니다.

    이 플래그는 비트 OR 연산자를 사용하여 줄의 형식 또는 Bzier 스플라인의 끝점 형식과 PT_BEZIERTO 결합 PT_LINETO 됩니다. 현재 위치는 닫는 줄의 끝점으로 설정됩니다.

nCount
배열의 총 점 lpPoints 수를 배열의 바이트 수와 동일하게 지정합니다 lpTypes .

Return Value

함수가 성공하면 0이 아니고 그렇지 않으면 0입니다.

설명

이 함수는 연속된 호출 CDC::MoveToCDC::LineToCDC::PolyBezierTo 및 멤버 함수 대신 연결되지 않는 그림을 그리는 데 사용할 수 있습니다. 선과 스플라인은 현재 펜을 사용하여 그려지고 그림은 채워지지 않습니다. 멤버 함수 PolyDraw 를 호출하여 시작된 활성 경로가 CDC::BeginPath 있는 경우 경로에 추가합니다. 배열에 lpPoints 포함된 점과 lpTypes 각 점이 연산의 CDC::MoveToCDC::LineToCDC::BezierTo 일부인지 여부를 나타냅니다. 수치를 닫을 수도 있습니다. 이 함수는 현재 위치를 업데이트합니다.

예시

에 대한 예제를 CDC::BeginPath참조하세요.

CDC::Polygon

현재 펜을 사용하여 선으로 연결된 두 개 이상의 점(꼭짓점)으로 구성된 다각형을 그립니다.

BOOL Polygon(
    LPPOINT lpPoints,
    int nCount);

매개 변수

lpPoints
다각형의 꼭짓점을 지정하는 점 배열을 가리킵니다. 배열의 각 지점은 POINT 구조체 또는 개체입니다 CPoint .

nCount
배열의 꼭짓점 수를 지정합니다.

Return Value

함수가 성공하면 0이 아니고 그렇지 않으면 0입니다.

설명

시스템은 필요한 경우 마지막 꼭짓점에서 첫 번째 꼭짓점까지 선을 그려 다각형을 자동으로 닫습니다.

현재 다각형 채우기 모드는 및 SetPolyFillMode 멤버 함수를 사용하여 GetPolyFillMode 검색하거나 설정할 수 있습니다.

예시

void CDCView::DrawPolygon(CDC *pDC)
{
   // find the client area
   CRect rect;
   GetClientRect(rect);

   // draw with a thick blue pen
   CPen penBlue(PS_SOLID, 5, RGB(0, 0, 255));
   CPen *pOldPen = pDC->SelectObject(&penBlue);

   // and a solid red brush
   CBrush brushRed(RGB(255, 0, 0));
   CBrush *pOldBrush = pDC->SelectObject(&brushRed);

   // Find the midpoints of the top, right, left, and bottom
   // of the client area. They will be the vertices of our polygon.
   CPoint pts[4];
   pts[0].x = rect.left + rect.Width() / 2;
   pts[0].y = rect.top;

   pts[1].x = rect.right;
   pts[1].y = rect.top + rect.Height() / 2;

   pts[2].x = pts[0].x;
   pts[2].y = rect.bottom;

   pts[3].x = rect.left;
   pts[3].y = pts[1].y;

   // Calling Polygon() on that array will draw three lines
   // between the points, as well as an additional line to
   // close the shape--from the last point to the first point
   // we specified.
   pDC->Polygon(pts, 4);

   // Put back the old objects.
   pDC->SelectObject(pOldPen);
   pDC->SelectObject(pOldBrush);
}

CDC::Polyline

로 지정된 lpPoints점을 연결하는 선 세그먼트 집합을 그립니다.

BOOL Polyline(
    LPPOINT lpPoints,
    int nCount);

매개 변수

lpPoints
연결할 구조체 또는 CPoint 개체의 POINT 배열을 가리킵니다.

nCount`
배열의 점 수를 지정합니다. 이 값은 2 이상이어야 합니다.

Return Value

함수가 성공하면 0이 아니고 그렇지 않으면 0입니다.

설명

선은 현재 펜을 사용하여 첫 번째 지점에서 후속 지점까지 그려집니다. 멤버 함수와 LineTo 달리 함수는 Polyline 현재 위치를 사용하거나 업데이트하지 않습니다.

자세한 내용은 Windows SDK를 참조 PolyLine 하세요.

CDC::PolylineTo

하나 이상의 직선을 그립니다.

BOOL PolylineTo(
    const POINT* lpPoints,
    int nCount);

매개 변수

lpPoints
선의 POINT 꼭짓점을 포함하는 데이터 구조의 배열을 가리킵니다.

nCount
배열의 점 수를 지정합니다.

Return Value

함수가 성공하면 0이 아니고 그렇지 않으면 0입니다.

설명

현재 펜을 사용하여 현재 위치에서 매개 변수에 lpPoints 지정된 첫 번째 지점까지 선이 그려집니다. 각 추가 줄에 대해 함수는 이전 줄의 끝점에서 지정한 다음 지점 lpPoints까지 그립니다. PolylineTo 는 현재 위치를 마지막 줄의 끝점으로 이동합니다. 이 함수에서 그린 선 세그먼트가 닫힌 그림을 형성하면 그림이 채워지지 않습니다.

CDC::PolyPolygon

현재 다각형 채우기 모드를 사용하여 채워진 두 개 이상의 다각형을 만듭니다.

BOOL PolyPolygon(
    LPPOINT lpPoints,
    LPINT lpPolyCounts,
    int nCount);

매개 변수

lpPoints
다각형의 POINT 꼭짓점을 정의하는 구조체 또는 CPoint 개체의 배열을 가리킵니다.

lpPolyCounts
정수 배열을 가리키며, 각 정수는 배열의 다각형 중 하나에 있는 점 수를 지정합니다 lpPoints .

nCount
lpPolyCounts 배열에 포함된 항목 수입니다. 이 숫자는 그릴 다각형의 수를 지정합니다. 이 값은 2 이상이어야 합니다.

Return Value

함수가 성공하면 0이 아니고 그렇지 않으면 0입니다.

설명

다각형은 분리되거나 겹칠 수 있습니다.

함수 호출에 지정된 각 다각형은 PolyPolygon 닫혀야 합니다. 멤버 함수에서 Polygon 만든 다각형과 달리 생성된 PolyPolygon 다각형은 자동으로 닫혀 있지 않습니다.

이 함수는 둘 이상의 다각형을 만듭니다. 단일 다각형을 만들려면 애플리케이션에서 멤버 함수를 Polygon 사용해야 합니다.

현재 다각형 채우기 모드는 및 SetPolyFillMode 멤버 함수를 사용하여 GetPolyFillMode 검색하거나 설정할 수 있습니다.

CDC::PolyPolyline

여러 개의 연결된 선 세그먼트를 그립니다.

BOOL PolyPolyline(
    const POINT* lpPoints,
    const DWORD* lpPolyPoints,
    int nCount);

매개 변수

lpPoints
폴리라인의 꼭짓점을 포함하는 구조체의 배열을 가리킵니다. 폴리라인은 연속적으로 지정됩니다.

lpPolyPoints
해당 다각형에 대한 배열의 점 lpPoints 수를 지정하는 변수 배열을 가리킵니다. 각 항목은 2보다 크거나 같아야 합니다.

nCount
배열의 총 개수를 지정합니다 lpPolyPoints .

Return Value

함수가 성공하면 0이 아니고 그렇지 않으면 0입니다.

설명

선 세그먼트는 현재 펜을 사용하여 그려집니다. 세그먼트에 의해 형성된 수치는 채워지지 않습니다. 현재 위치는 이 함수에서 사용되거나 업데이트되지 않습니다.

CDC::PtVisible

지정된 지점이 디바이스 컨텍스트의 클리핑 영역 내에 있는지 여부를 확인합니다.

virtual BOOL PtVisible(
    int x,
    int y) const;

BOOL PtVisible(POINT point) const;

매개 변수

x
점의 논리적 x 좌표를 지정합니다.

y
점의 논리적 y 좌표를 지정합니다.

point
논리 좌표에서 검사 지점을 지정합니다. 이 매개 변수에 대한 POINT 구조체 또는 개체를 CPoint 전달할 수 있습니다.

Return Value

지정된 점이 클리핑 영역 내에 있으면 0이 아닌 경우 그렇지 않으면 0입니다.

CDC::QueryAbort

인쇄 애플리케이션에 대해 멤버 함수가 설치한 SetAbortProc 중단 함수를 호출하고 인쇄를 종료해야 하는지 여부를 쿼리합니다.

BOOL QueryAbort() const;

Return Value

인쇄를 계속해야 하거나 중단 프로시저가 없는 경우 반환 값은 0이 아닙니다. 인쇄 작업을 종료해야 하는 경우 0입니다. 반환 값은 중단 함수에 의해 제공됩니다.

CDC::RealizePalette

현재 논리 팔레트의 항목을 시스템 팔레트로 지도.

UINT RealizePalette();

Return Value

시스템 팔레트의 다른 항목에 매핑된 논리 팔레트의 항목 수를 나타냅니다. 이는 논리 팔레트가 마지막으로 실현된 이후 시스템 팔레트의 변경 내용을 수용하기 위해 이 함수가 다시 매핑한 항목 수를 나타냅니다.

설명

논리적 색 팔레트는 색 집약적 애플리케이션과 시스템 간의 버퍼 역할을 하므로 애플리케이션이 표시된 색을 방해하지 않고 또는 다른 창에 표시되는 색을 사용하여 필요한 만큼의 색을 사용할 수 있습니다.

창에 입력 포커스와 호출 RealizePalette이 있는 경우 Windows는 창에 요청된 모든 색을 화면에 동시에 사용할 수 있는 최대 수까지 표시하도록 합니다. 또한 창의 색상표에서 찾을 수 없는 색을 사용 가능한 색과 일치시켜 표시합니다.

또한 Windows는 사용 가능한 색과 최대한 가깝게 함수를 호출하는 비활성 창에서 요청한 색과 일치합니다. 이렇게 하면 비활성 창에 표시되는 색의 바람직하지 않은 변경 내용이 크게 줄어듭니다.

CDC::Rectangle

현재 펜을 사용하여 사각형을 그립니다.

BOOL Rectangle(
    int x1,
    int y1,
    int x2,
    int y2);

BOOL Rectangle(LPCRECT lpRect);

매개 변수

x1
사각형의 왼쪽 위 모퉁이의 x 좌표를 논리 단위로 지정합니다.

y1
사각형의 왼쪽 위 모퉁이의 y 좌표를 논리 단위로 지정합니다.

x2
사각형의 오른쪽 아래 모퉁이의 x 좌표를 논리 단위로 지정합니다.

y2
사각형의 오른쪽 아래 모퉁이에 대한 y 좌표를 논리 단위로 지정합니다.

lpRect
논리 단위로 사각형을 지정합니다. 이 매개 변수의 구조체에 CRect 대한 개체 또는 포인터를 RECT 전달할 수 있습니다.

Return Value

함수가 성공하면 0이 아니고 그렇지 않으면 0입니다.

설명

사각형의 내부는 현재 브러시를 사용하여 채워집니다.

사각형은 오른쪽 및 아래쪽 좌표까지 확장되지만 포함되지는 않습니다. 즉, 사각형의 높이와 y2 - y1 사각형의 너비는 .x2 - x1 사각형의 너비와 높이는 모두 2단원보다 크고 32,767단원 미만이어야 합니다.

예시

void CDCView::DrawRectangle(CDC *pDC)
{
   // create and select a solid blue brush
   CBrush brushBlue(RGB(0, 0, 255));
   CBrush *pOldBrush = pDC->SelectObject(&brushBlue);

   // create and select a thick, black pen
   CPen penBlack;
   penBlack.CreatePen(PS_SOLID, 3, RGB(0, 0, 0));
   CPen *pOldPen = pDC->SelectObject(&penBlack);

   // get our client rectangle
   CRect rect;
   GetClientRect(rect);

   // shrink our rect 20 pixels in each direction
   rect.DeflateRect(20, 20);

   // draw a thick black rectangle filled with blue
   pDC->Rectangle(rect);

   // put back the old objects
   pDC->SelectObject(pOldBrush);
   pDC->SelectObject(pOldPen);
}

CDC::RectVisible

지정된 사각형의 일부가 표시 컨텍스트의 클리핑 영역 내에 있는지 여부를 확인합니다.

virtual BOOL RectVisible(LPCRECT lpRect) const;

매개 변수

lpRect
지정된 사각형의 RECT 논리적 좌표를 포함하는 구조체 또는 CRect 개체를 가리킵니다.

Return Value

지정된 사각형의 일부가 클리핑 영역 내에 있으면 0이 아닌 경우 그렇지 않으면 0입니다.

CDC::ReleaseAttribDC

이 멤버 함수를 호출하여 NULL로 설정합니다 m_hAttribDC .

virtual void ReleaseAttribDC();

설명

이렇게 하면 발생하지 않습니다 Detach . 출력 디바이스 컨텍스트만 개체에 CDC 연결되고 분리할 수 있습니다.

CDC::ReleaseOutputDC

이 멤버 함수를 호출하여 멤버NULL를 .로 m_hDC 설정합니다.

virtual void ReleaseOutputDC();

설명

출력 디바이스 컨텍스트가 개체에 연결된 경우 이 멤버 함수를 CDC 호출할 수 없습니다. 멤버 함수를 Detach 사용하여 출력 디바이스 컨텍스트를 분리합니다.

CDC::ResetDC

이 멤버 함수를 호출하여 개체로 래핑된 디바이스 컨텍스트를 업데이트합니다 CDC .

BOOL ResetDC(const DEVMODE* lpDevMode);

매개 변수

lpDevMode
Windows DEVMODE 구조체에 대한 포인터입니다.

Return Value

함수가 성공하면 0이 아니고 그렇지 않으면 0입니다.

설명

디바이스 컨텍스트는 Windows DEVMODE 구조에 지정된 정보에서 업데이트됩니다. 이 멤버 함수는 특성 디바이스 컨텍스트만 다시 설정합니다.

애플리케이션은 일반적으로 창에서 ResetDC 메시지를 처리할 때 멤버 함수를 WM_DEVMODECHANGE 사용합니다. 이 멤버 함수를 사용하여 문서를 인쇄하는 동안 용지 방향이나 용지함도 변경할 수 있습니다.

이 멤버 함수를 사용하여 드라이버 이름, 디바이스 이름 또는 출력 포트를 변경할 수 없습니다. 사용자가 포트 연결 또는 디바이스 이름을 변경하는 경우 원래 디바이스 컨텍스트를 삭제하고 새 정보를 사용하여 새 디바이스 컨텍스트를 만들어야 합니다.

이 멤버 함수를 호출하기 전에 디바이스 컨텍스트에서 선택한 모든 개체(스톡 개체 제외)가 선택되었는지 확인해야 합니다.

CDC::RestoreDC

디바이스 컨텍스트를 로 식별된 nSavedDC이전 상태로 복원합니다.

virtual BOOL RestoreDC(int nSavedDC);

매개 변수

nSavedDC
복원할 디바이스 컨텍스트를 지정합니다. 이전 SaveDC 함수 호출에서 반환된 값일 수 있습니다. -1이면 nSavedDC 가장 최근에 저장된 디바이스 컨텍스트가 복원됩니다.

Return Value

지정된 컨텍스트가 복원된 경우 0이 아닌 경우 그렇지 않으면 0입니다.

설명

RestoreDC 는 멤버 함수에 대한 이전 호출에서 만든 스택에서 상태 정보를 표시하여 디바이스 컨텍스트를 SaveDC 복원합니다.

스택에는 여러 디바이스 컨텍스트에 대한 상태 정보가 포함될 수 있습니다. 지정한 nSavedDC 컨텍스트가 스택의 맨 위에 없으면 지정된 nSavedDC 디바이스 컨텍스트와 스택 RestoreDC 의 맨 위 사이의 모든 상태 정보를 삭제합니다. 삭제된 정보가 손실됩니다.

CDC::RoundRect

현재 펜을 사용하여 둥근 모서리가 있는 사각형을 그립니다.

BOOL RoundRect(
    int x1,
    int y1,
    int x2,
    int y2,
    int x3,
    int y3);

BOOL RoundRect(
    LPCRECT lpRect,
    POINT point);

매개 변수

x1
사각형의 왼쪽 위 모퉁이의 x 좌표를 논리 단위로 지정합니다.

y1
사각형의 왼쪽 위 모퉁이의 y 좌표를 논리 단위로 지정합니다.

x2
사각형의 오른쪽 아래 모퉁이의 x 좌표를 논리 단위로 지정합니다.

y2
사각형의 오른쪽 아래 모퉁이에 대한 y 좌표를 논리 단위로 지정합니다.

x3
둥근 모서리를 그리는 데 사용되는 줄임표의 너비를 논리 단위로 지정합니다.

y3
둥근 모서리를 그리는 데 사용되는 줄임표의 높이를 논리 단위로 지정합니다.

lpRect
경계 사각형을 논리 단위로 지정합니다. 이 매개 변수의 구조체에 CRect 대한 개체 또는 포인터를 RECT 전달할 수 있습니다.

point
x 좌표 point 는 둥근 모서리를 그릴 줄임표의 너비를 논리 단위로 지정합니다. y 좌표 point 는 둥근 모서리를 그릴 줄임표의 높이를 논리 단위로 지정합니다. 이 매개 변수에 대한 POINT 구조체 또는 개체를 CPoint 전달할 수 있습니다.

Return Value

함수가 성공하면 0이 아니고 그렇지 않으면 0입니다.

설명

사각형의 내부는 현재 브러시를 사용하여 채워집니다.

이 함수가 그리는 그림은 최대로 확장되지만 오른쪽 및 아래쪽 좌표는 포함하지 않습니다. 즉, 그림의 높이와 y2 - y1 그림의 너비가 입니다.x2 - x1 경계 사각형의 높이와 너비는 모두 2단원보다 크고 32,767단원 미만이어야 합니다.

예시

void CDCView::DrawRoundRect(CDC *pDC)
{
   // create and select a solid blue brush
   CBrush brushBlue(RGB(0, 0, 255));
   CBrush *pOldBrush = pDC->SelectObject(&brushBlue);

   // create and select a thick, black pen
   CPen penBlack;
   penBlack.CreatePen(PS_SOLID, 3, RGB(0, 0, 0));
   CPen *pOldPen = pDC->SelectObject(&penBlack);

   // get our client rectangle
   CRect rect;
   GetClientRect(rect);

   // shrink our rect 20 pixels in each direction
   rect.DeflateRect(20, 20);

   // Draw a thick black rectangle filled with blue
   // corners rounded at a 17-unit radius. Note that
   // a radius of three or less is not noticeable because
   // the pen is three units wide.
   pDC->RoundRect(rect, CPoint(17, 17));

   // put back the old objects
   pDC->SelectObject(pOldBrush);
   pDC->SelectObject(pOldPen);
}

CDC::SaveDC

상태 정보(예: 클리핑 영역, 선택한 개체 및 매핑 모드)를 Windows에서 기본 컨텍스트 스택에 복사하여 디바이스 컨텍스트의 현재 상태를 저장합니다.

virtual int SaveDC();

Return Value

저장된 디바이스 컨텍스트를 식별하는 정수입니다. 오류가 발생하면 0입니다. 이 반환 값은 호출 RestoreDC하여 디바이스 컨텍스트를 복원하는 데 사용할 수 있습니다.

설명

저장된 디바이스 컨텍스트는 나중에 .를 사용하여 RestoreDC복원할 수 있습니다.

SaveDC 은 횟수에 따라 디바이스 컨텍스트 상태를 저장할 수 있습니다.

CDC::ScaleViewportExt

현재 값을 기준으로 뷰포트 익스텐트 수정

virtual CSize ScaleViewportExt(
    int xNum,
    int xDenom,
    int yNum,
    int yDenom);

매개 변수

xNum
현재 x 익스텐트 곱할 크기를 지정합니다.

xDenom
현재 x 익스텐트 값을 매개 변수 값 xNum 으로 곱한 결과를 나눌 크기를 지정합니다.

yNum
현재 y 익스텐트 곱할 크기를 지정합니다.

yDenom
현재 y 익스텐트 값을 매개 변수 값 yNum 으로 곱한 결과를 나눌 크기를 지정합니다.

Return Value

이전 뷰포트 익스텐트(디바이스 단위)를 개체로 사용합니다 CSize .

설명

수식은 다음과 같이 작성됩니다.

xNewVE = ( xOldVE * xNum ) / xDenom

yNewVE = ( yOldVE * yNum ) / yDenom

새 뷰포트 익스텐트에서는 현재 익스텐트 값을 지정된 숫자로 곱한 다음 지정된 분모로 나누어 계산합니다.

CDC::ScaleWindowExt

현재 값을 기준으로 창 익스텐트 수정

virtual CSize ScaleWindowExt(
    int xNum,
    int xDenom,
    int yNum,
    int yDenom);

매개 변수

xNum
현재 x 익스텐트 곱할 크기를 지정합니다.

xDenom
현재 x 익스텐트 값을 매개 변수 값 xNum 으로 곱한 결과를 나눌 크기를 지정합니다.

yNum
현재 y 익스텐트 곱할 크기를 지정합니다.

yDenom
현재 y 익스텐트 값을 매개 변수 값 yNum 으로 곱한 결과를 나눌 크기를 지정합니다.

Return Value

이전 창 익스텐트(논리 단위)를 개체로 사용합니다 CSize .

설명

수식은 다음과 같이 작성됩니다.

xNewWE = ( xOldWE * xNum ) / xDenom

yNewWE = ( yOldWE * yNum ) / yDenom

새 창 익스텐트에서는 현재 익스텐트 값을 지정된 숫자로 곱한 다음 지정된 분모로 나누어 계산합니다.

CDC::ScrollDC

비트의 사각형을 가로 및 세로로 스크롤합니다.

BOOL ScrollDC(
    int dx,
    int dy,
    LPCRECT lpRectScroll,
    LPCRECT lpRectClip,
    CRgn* pRgnUpdate,
    LPRECT lpRectUpdate);

매개 변수

dx
가로 스크롤 단위 수를 지정합니다.

dy
세로 스크롤 단위 수를 지정합니다.

lpRectScroll
스크롤 사각형의 RECT 좌표를 포함하는 구조체 또는 CRect 개체를 가리킵니다.

lpRectClip
클리핑 사각형의 RECT 좌표를 포함하는 구조체 또는 CRect 개체를 가리킵니다. 이 사각형이 가리키는 원래 lpRectScroll사각형보다 작으면 스크롤은 더 작은 사각형에서만 발생합니다.

pRgnUpdate
스크롤 프로세스에서 발견된 영역을 식별합니다. 함수는 ScrollDC 이 지역을 정의합니다. 반드시 사각형은 아닙니다.

lpRectUpdate
스크롤 업데이트 영역을 경계로 RECT 하는 사각형의 좌표를 받는 구조체 또는 CRect 개체를 가리킵니다. 다시 그려야 하는 가장 큰 사각형 영역입니다. 지정된 디바이스 컨텍스트에 대한 매핑 모드에 관계없이 함수가 반환되는 구조 또는 개체의 값이 클라이언트 좌표에 있습니다.

Return Value

스크롤이 실행되는 경우 0이 아닌 경우 그렇지 않으면 0입니다.

설명

NULL경우 lpRectUpdate Windows는 업데이트 사각형을 계산하지 않습니다. 둘 다 pRgnUpdatelpRectUpdate 인 경우 Windows는 NULL업데이트 지역을 계산하지 않습니다. 그렇지 NULL않은 경우 pRgnUpdate Windows는 스크롤 프로세스(멤버 함수에 의해 정의됨)에 의해 발견된 지역에 대한 유효한 포인터를 포함하고 있다고 ScrollDC 가정합니다. 반환된 lpRectUpdate 업데이트 지역은 필요한 경우 전달 CWnd::InvalidateRgn 될 수 있습니다.

애플리케이션은 창의 ScrollWindow 전체 클라이언트 영역을 스크롤해야 하는 경우 클래스 CWnd 의 멤버 함수를 사용해야 합니다. 그렇지 않으면 을 사용해야 ScrollDC합니다.

CDC::SelectClipPath

지정된 모드를 사용하여 새 영역을 기존 클리핑 영역과 결합하여 디바이스 컨텍스트에 대한 클리핑 영역으로 현재 경로를 선택합니다.

BOOL SelectClipPath(int nMode);

매개 변수

nMode
경로를 사용하는 방법을 지정합니다. 다음의 값이 허용됩니다.

  • RGN_AND 새 클리핑 영역에는 현재 클리핑 영역의 교집합(겹치는 영역)과 현재 경로가 포함됩니다.

  • RGN_COPY 새 클리핑 영역이 현재 경로입니다.

  • RGN_DIFF 새 클리핑 영역에는 현재 클리핑 영역의 영역이 포함되며 현재 경로의 영역은 제외됩니다.

  • RGN_OR 새 클리핑 영역에는 현재 클리핑 영역의 공용 구조체(결합 영역)와 현재 경로가 포함됩니다.

  • RGN_XOR 새 클리핑 영역에는 현재 클리핑 영역과 현재 경로의 합합이 포함되지만 겹치는 영역은 없습니다.

Return Value

함수가 성공하면 0이 아니고 그렇지 않으면 0입니다.

설명

식별된 디바이스 컨텍스트에는 닫힌 경로가 포함되어야 합니다.

CDC::SelectClipRgn

지정된 지역을 디바이스 컨텍스트의 현재 클리핑 영역으로 선택합니다.

int SelectClipRgn(CRgn* pRgn);

int SelectClipRgn(
    CRgn* pRgn,
    int nMode);

매개 변수

pRgn
선택할 지역을 식별합니다.

  • 이 함수의 첫 번째 버전에서 이 값이 NULL면 전체 클라이언트 영역이 선택되고 출력이 여전히 창으로 잘립니다.

  • 이 함수의 두 번째 버전에서는 모드가 지정된 경우에만 RGN_COPY 이 핸들이 될 NULL 수 있습니다.

nMode
수행할 작업을 지정합니다. 다음 값 중 하나여야 합니다.

  • RGN_AND 새 클리핑 영역은 현재 클리핑 영역의 겹치는 영역과 로 식별되는 영역을 결합합니다 pRgn.

  • RGN_COPY 새 클리핑 영역은 로 식별되는 pRgn영역의 복사본입니다. 이 기능은 첫 번째 버전의 SelectClipRgn. 식별되는 pRgn 영역이 있는 NULL경우 새 클리핑 영역은 기본 클리핑 영역(null 지역)이 됩니다.

  • RGN_DIFF 새 클리핑 영역은 현재 클리핑 영역의 영역을 식별된 영역에서 제외된 pRgn영역과 결합합니다.

  • RGN_OR 새 클리핑 영역은 현재 클리핑 영역과 로 식별되는 pRgn영역을 결합합니다.

  • RGN_XOR 새 클리핑 영역은 현재 클리핑 영역과 식별된 pRgn 영역을 결합하지만 겹치는 영역은 제외합니다.

Return Value

지역의 형식입니다. 다음 값 중 하나일 수 있습니다.

  • COMPLEXREGION 새 클리핑 영역에는 테두리가 겹칩니다.

  • ERROR 디바이스 컨텍스트 또는 지역이 잘못되었습니다.

  • NULLREGION 새 클리핑 영역이 비어 있습니다.

  • SIMPLEREGION 새 클리핑 영역에는 겹치는 테두리가 없습니다.

설명

선택한 영역의 복사본만 사용됩니다. 지역 자체는 여러 다른 디바이스 컨텍스트에 대해 선택하거나 삭제할 수 있습니다.

함수는 지정된 영역에 대한 좌표가 디바이스 단위로 지정되었다고 가정합니다. 일부 프린터 디바이스는 텍스트 메트릭을 표현하는 데 필요한 정밀도를 유지하기 위해 그래픽 출력보다 높은 해상도로 텍스트 출력을 지원합니다. 이러한 디바이스는 더 높은 해상도, 즉 텍스트 단위로 디바이스 단위를 보고합니다. 그런 다음 이러한 디바이스는 그래픽의 좌표를 조정하여 보고된 여러 디바이스 단위가 그래픽 단위 1개에만 매핑되도록 합니다. 항상 텍스트 단위를 사용하여 함수를 SelectClipRgn 호출해야 합니다.

GDI에서 그래픽 개체의 크기를 조정해야 하는 애플리케이션은 프린터 이스케이프 GETSCALINGFACTOR 를 사용하여 배율 인수를 결정할 수 있습니다. 이 배율 인수는 클리핑에 영향을 줍니다. 영역을 사용하여 그래픽을 클리핑하는 경우 GDI는 좌표를 배율 인수로 나눕니다. 영역을 사용하여 텍스트를 클리핑하는 경우 GDI는 크기 조정을 하지 않습니다. 배율 인수가 1이면 좌표가 2로 나뉩니다. 배율 인수가 2이면 좌표가 4로 나뉩니다. 등등.

CDC::SelectObject

디바이스 컨텍스트에 개체를 선택합니다.

CPen* SelectObject(CPen* pPen);
CBrush* SelectObject(CBrush* pBrush);
virtual CFont* SelectObject(CFont* pFont);
CBitmap* SelectObject(CBitmap* pBitmap);
int SelectObject(CRgn* pRgn);
CGdiObject* SelectObject(CGdiObject* pObject);

매개 변수

pPen
선택할 개체에 대한 CPen 포인터입니다.

pBrush
선택할 개체에 대한 CBrush 포인터입니다.

pFont
선택할 개체에 대한 CFont 포인터입니다.

pBitmap
선택할 개체에 대한 CBitmap 포인터입니다.

pRgn
선택할 개체에 대한 CRgn 포인터입니다.

pObject
선택할 개체에 대한 CGdiObject 포인터입니다.

Return Value

바꿀 개체에 대한 포인터입니다. 이는 사용되는 함수 버전에 따라 파생된 CGdiObject클래스 중 하나의 개체(예: CPen)에 대한 포인터입니다. 반환 값은 NULL 오류가 있는 경우입니다. 이 함수는 임시 개체에 대한 포인터를 반환할 수 있습니다. 이 임시 개체는 하나의 Windows 메시지를 처리하는 동안에만 유효합니다. 자세한 내용은 CGdiObject::FromHandle를 참조하세요.

지역 매개 변수를 사용하는 멤버 함수의 버전은 멤버 함수와 동일한 작업을 SelectClipRgn 수행합니다. 반환 값은 다음 중 어느 것이든 될 수 있습니다.

  • COMPLEXREGION 새 클리핑 영역에는 테두리가 겹칩니다.

  • ERROR 디바이스 컨텍스트 또는 지역이 잘못되었습니다.

  • NULLREGION 새 클리핑 영역이 비어 있습니다.

  • SIMPLEREGION 새 클리핑 영역에는 겹치는 테두리가 없습니다.

설명

클래스 CDC 는 펜, 브러시, 글꼴, 비트맵 및 영역을 포함하여 특정 종류의 GDI 개체에 대해 특수화된 5가지 버전을 제공합니다. 새로 선택한 개체는 동일한 형식의 이전 개체를 대체합니다. 예를 들어 개체를 가리키는 CPen 일반 버전의 SelectObject 경우 pObject 함수는 현재 펜을 지정된 pObject펜으로 바꿉니다.

애플리케이션은 메모리 디바이스 컨텍스트로 비트맵을 선택하고 한 번에 하나의 메모리 디바이스 컨텍스트로만 선택할 수 있습니다. 비트맵의 형식은 단색이거나 디바이스 컨텍스트와 호환되어야 합니다. 그렇지 않으면 SelectObject 오류를 반환합니다.

Windows 3.1 이상의 경우 함수는 SelectObject 메타파일에서 사용되는지 여부에 관계없이 동일한 값을 반환합니다. 이전 버전의 Windows SelectObject 에서는 성공에 대해 0이 아닌 값을 반환하고 메타파일에서 사용된 경우 실패에 대해 0을 반환했습니다.

CDC::SelectPalette

디바이스 컨텍스트의 선택한 색상표 개체로 지정된 pPalette 논리 팔레트를 선택합니다.

CPalette* SelectPalette(
    CPalette* pPalette,
    BOOL bForceBackground);

매개 변수

pPalette
선택할 논리 팔레트를 식별합니다. 이 색상표는 멤버 함수CreatePaletteCPalette 사용하여 이미 만들어졌어야 합니다.

bForceBackground
논리 색상표가 백그라운드 색상표로 강제 적용되는지 여부를 지정합니다. 0이 아닌 경우 bForceBackground 선택한 색상표는 창에 입력 포커스가 있는지 여부에 관계없이 항상 배경 팔레트입니다. 0이고 디바이스 컨텍스트가 창에 연결된 경우 bForceBackground 논리 팔레트는 창에 입력 포커스가 있을 때 전경 팔레트입니다.

Return Value

로 지정된 pPalette색상표로 CPalette 대체된 논리 팔레트를 식별하는 개체에 대한 포인터입니다. NULL 오류가 있는 경우입니다.

설명

새 색상표는 GDI가 디바이스 컨텍스트에 표시되는 색을 제어하는 데 사용하는 색상표 개체가 되고 이전 색상표를 대체합니다.

애플리케이션은 둘 이상의 디바이스 컨텍스트로 논리 팔레트를 선택할 수 있습니다. 그러나 논리 팔레트를 변경하면 선택한 모든 디바이스 컨텍스트에 영향을 줍니다. 애플리케이션이 둘 이상의 디바이스 컨텍스트로 색상표를 선택하는 경우 디바이스 컨텍스트는 모두 동일한 물리적 디바이스에 속해야 합니다.

CDC::SelectStockObject

CGdiObject 미리 정의된 스톡 펜, 브러시 또는 글꼴 중 하나에 해당하는 개체를 선택합니다.

virtual CGdiObject* SelectStockObject(int nIndex);

매개 변수

nIndex
원하는 스톡 개체의 종류를 지정합니다. 다음 값 중 하나일 수 있습니다.

  • BLACK_BRUSH 검정 브러시입니다.

  • DKGRAY_BRUSH 진한 회색 브러시입니다.

  • GRAY_BRUSH 회색 브러시.

  • HOLLOW_BRUSH 속이 빈 브러시입니다.

  • LTGRAY_BRUSH 연한 회색 브러시입니다.

  • NULL_BRUSH Null 브러시입니다.

  • WHITE_BRUSH 흰색 브러시입니다.

  • BLACK_PEN 검은색 펜.

  • NULL_PEN Null 펜입니다.

  • WHITE_PEN 흰색 펜입니다.

  • ANSI_FIXED_FONT ANSI 고정 시스템 글꼴입니다.

  • ANSI_VAR_FONT ANSI 변수 시스템 글꼴입니다.

  • DEVICE_DEFAULT_FONT 디바이스 종속 글꼴입니다.

  • OEM_FIXED_FONT OEM 종속 고정 글꼴입니다.

  • SYSTEM_FONT 시스템 글꼴입니다. 기본적으로 Windows는 시스템 글꼴을 사용하여 메뉴, 대화 상자 컨트롤 및 기타 텍스트를 그립니다. 그러나 대화 상자와 창에서 SYSTEM_FONT 사용하는 글꼴을 얻는 데 의존하지 않는 것이 가장 좋습니다. 대신 매개 변수와 SystemParametersInfo 함께 함수를 SPI_GETNONCLIENTMETRICS 사용하여 현재 글꼴을 검색합니다. SystemParametersInfo는 현재 테마를 고려하여 캡션, 메뉴 및 메시지 대화 상자에 대한 글꼴 정보를 제공합니다.

  • SYSTEM_FIXED_FONT 버전 3.0 이전의 Windows에서 사용되는 고정 너비 시스템 글꼴입니다. 이 개체는 이전 버전의 Windows와 호환되도록 사용할 수 있습니다.

  • DEFAULT_PALETTE 기본 색상표입니다. 이 색상표는 시스템 색상표의 20가지 정적 색으로 구성됩니다.

Return Value

함수가 CGdiObject 성공하면 대체된 개체에 대한 포인터입니다. 가리키는 실제 개체는 , CBrush또는 CFont 개체입니다CPen. 호출에 실패하면 반환 값은 NULL입니다.

CDC::SetAbortProc

인쇄 작업에 대한 중단 프로시저를 설치합니다.

int SetAbortProc(BOOL (CALLBACK* lpfn)(HDC, int));

매개 변수

lpfn
중단 프로시저로 설치할 중단 함수에 대한 포인터입니다. 콜백 함수에 대한 자세한 내용은 콜백 함수를 CDC::SetAbortProc참조하세요.

Return Value

함수의 결과를 지정합니다 SetAbortProc . 다음 값 중 일부는 다른 값보다 가능성이 높지만 모두 가능합니다.

  • SP_ERROR 일반 오류입니다.

  • SP_OUTOFDISK 현재 스풀링에 사용할 수 있는 디스크 공간이 부족하며 더 이상 사용할 수 있는 공간이 없습니다.

  • SP_OUTOFMEMORY 스풀링에 사용할 수 있는 메모리가 부족합니다.

  • SP_USERABORT 사용자가 인쇄 관리자를 통해 작업을 종료했습니다.

설명

애플리케이션이 스풀링 중에 인쇄 작업을 취소할 수 있도록 하려면 멤버 함수로 인쇄 작업을 시작하기 StartDoc 전에 중단 함수를 설정해야 합니다. 인쇄 관리자는 스풀링 중에 중단 함수를 호출하여 애플리케이션이 인쇄 작업을 취소하거나 디스크 공간 부족 조건을 처리할 수 있도록 합니다. 중단 함수가 설정되지 않은 경우 스풀링할 디스크 공간이 충분하지 않으면 인쇄 작업이 실패합니다.

Microsoft Visual C++의 기능은 전달된 콜백 함수의 생성을 간소화합니다 SetAbortProc. 멤버 함수에 EnumObjects 전달되는 주소는 호출 규칙을 사용하여 내보낸 __declspec(dllexport) 함수에 대한 __stdcall 포인터입니다.

또한 애플리케이션의 모듈 정의 파일의 문에서 EXPORTS 함수 이름을 내보낼 필요가 없습니다. 대신 다음과 같이 함수 한정자를 사용할 EXPORT 수 있습니다.

BOOL CALLBACK EXPORT AFunction( HDC, int );

을 사용하면 컴파일러가 별칭을 지정하지 않고 이름으로 내보내기 위한 적절한 내보내기 레코드를 내보냅니다. 대부분의 요구 사항에 맞게 작동합니다. 서수로 함수를 내보내거나 내보내기 별칭을 지정하는 등의 특수한 경우 모듈 정의 파일에서 문을 사용해야 EXPORTS 합니다.

콜백 등록 인터페이스는 이제 형식이 안전합니다(특정 콜백에 적합한 종류의 함수를 가리키는 함수 포인터를 전달해야 합니다).

모든 콜백 함수는 예외를 콜백 경계를 넘어 throw할 수 없으므로 Windows로 돌아가기 전에 Microsoft Foundation 예외를 트래핑해야 합니다. 예외에 대한 자세한 내용은 예외 문서를 참조하세요.

CDC::SetArcDirection

호 및 사각형 함수에 사용할 그리기 방향을 설정합니다.

int SetArcDirection(int nArcDirection);

매개 변수

nArcDirection
새 호 방향을 지정합니다. 이 매개 변수는 다음 값 중 하나일 수 있습니다.

  • AD_COUNTERCLOCKWISE 시계 반대 방향으로 그린 그림입니다.

  • AD_CLOCKWISE 시계 방향으로 그려진 그림입니다.

Return Value

성공하면 이전 호 방향을 지정합니다. 그렇지 않으면 0입니다.

설명

기본 방향은 시계 반대 방향입니다. 함수는 SetArcDirection 다음 함수가 그리는 방향을 지정합니다.

Arc 원형
ArcTo Rectangle
Chord RoundRect
Ellipse

CDC::SetAttribDC

이 함수를 호출하여 특성 디바이스 컨텍스트 m_hAttribDC를 설정합니다.

virtual void SetAttribDC(HDC hDC);

매개 변수

hDC
Windows 디바이스 컨텍스트입니다.

설명

이 멤버 함수는 디바이스 컨텍스트를 개체에 CDC 연결하지 않습니다. 출력 디바이스 컨텍스트만 개체에 CDC 연결됩니다.

CDC::SetBkColor

현재 배경색을 지정된 색으로 설정합니다.

virtual COLORREF SetBkColor(COLORREF crColor);

매개 변수

crColor
새 배경색을 지정합니다.

Return Value

RGB 색 값으로 이전 배경색입니다. 오류가 발생하면 반환 값이 0x80000000.

설명

배경 모드인 OPAQUE경우 시스템에서 배경색을 사용하여 스타일이 지정된 선의 간격, 브러시의 빗살 무늬 선 사이의 간격 및 문자 셀의 배경을 채웁니다. 또한 시스템에서는 비트맵을 색과 단색 디바이스 컨텍스트 간에 변환할 때 배경색을 사용합니다.

디바이스에서 지정된 색을 표시할 수 없는 경우 시스템은 배경색을 가장 가까운 실제 색으로 설정합니다.

CDC::SetBkMode

백그라운드 모드를 설정합니다.

int SetBkMode(int nBkMode);

매개 변수

nBkMode
설정할 모드를 지정합니다. 이 매개 변수는 다음 값 중 하나일 수 있습니다.

  • OPAQUE 배경은 텍스트, 빗살 무늬 브러시 또는 펜을 그리기 전에 현재 배경색으로 채워집니다. 기본 백그라운드 모드입니다.

  • TRANSPARENT 그리기 전에 배경이 변경되지 않습니다.

Return Value

이전 백그라운드 모드입니다.

설명

배경 모드는 텍스트, 빗살 무늬 브러시 또는 실선이 아닌 펜 스타일을 그리기 전에 시스템이 그리기 화면에서 기존 배경색을 제거할지 여부를 정의합니다.

예시

에 대한 예제를 CWnd::OnCtlColor참조하세요.

CDC::SetBoundsRect

지정된 디바이스 컨텍스트에 대한 경계 사각형 정보의 누적을 제어합니다.

UINT SetBoundsRect(
    LPCRECT lpRectBounds,
    UINT flags);

매개 변수

lpRectBounds
경계 사각형을 RECT 설정하는 데 사용되는 구조체 또는 CRect 개체를 가리킵니다. 사각형 차원은 논리 좌표로 제공됩니다. 이 매개 변수는 NULL일 수 있습니다.

flags
새 사각형을 누적된 사각형과 결합하는 방법을 지정합니다. 이 매개 변수는 다음 값의 조합일 수 있습니다.

  • DCB_ACCUMULATE 경계 사각형에 lpRectBounds 지정된 사각형을 추가합니다(사각형 통합 작업 사용).

  • DCB_DISABLE 범위 누적을 끕니다.

  • DCB_ENABLE 범위 누적을 켭니다. (범위 누적에 대한 기본 설정은 사용하지 않도록 설정됩니다.)

Return Value

함수가 성공한 경우 경계 사각형의 현재 상태입니다. 마찬가지로 flags반환 값은 값의 DCB_ 조합일 수 있습니다.

  • DCB_ACCUMULATE 경계 사각형이 비어 있지 않습니다. 이 값은 항상 설정됩니다.

  • DCB_DISABLE 범위 누적이 해제되었습니다.

  • DCB_ENABLE 범위 누적이 켜집니다.

설명

Windows는 모든 그리기 작업에 대한 경계 사각형을 기본 수 있습니다. 이 사각형은 애플리케이션에서 쿼리하고 다시 설정할 수 있습니다. 그리기 범위는 비트맵 캐시를 무효화하는 데 유용합니다.

CDC::SetBrushOrg

GDI가 애플리케이션이 디바이스 컨텍스트에 선택하는 다음 브러시에 할당할 원본을 지정합니다.

CPoint SetBrushOrg(
    int x,
    int y);

CPoint SetBrushOrg(POINT point);

매개 변수

x
새 원점의 x 좌표(디바이스 단위)를 지정합니다. 이 값은 0-7 범위여야 합니다.

y
새 원점의 y 좌표(디바이스 단위)를 지정합니다. 이 값은 0-7 범위여야 합니다.

point
새 원점의 x 및 y 좌표를 지정합니다. 각 값은 0-7 범위여야 합니다. 이 매개 변수에 대한 POINT 구조체 또는 개체를 CPoint 전달할 수 있습니다.

Return Value

디바이스 단위의 브러시의 이전 원본입니다.

설명

브러시 원점의 기본 좌표는 (0, 0)입니다. 브러시의 원본을 변경하려면 개체에 UnrealizeObject 대한 함수를 CBrush 호출 SetBrushOrg한 다음 멤버 함수를 SelectObject 호출하여 디바이스 컨텍스트로 브러시를 선택합니다.

스톡 CBrush 개체에는 사용하지 SetBrushOrg 마세요.

CDC::SetColorAdjustment

지정된 값을 사용하여 디바이스 컨텍스트의 색 조정 값을 설정합니다.

BOOL SetColorAdjustment(const COLORADJUSTMENT* lpColorAdjust);

매개 변수

lpColorAdjust
COLORADJUSTMENT 색 조정 값을 포함하는 데이터 구조를 가리킵니다.

Return Value

성공하면 0이 아니고, 그렇지 않으면 0입니다.

설명

색 조정 값은 모드가 설정되면 멤버 함수 HALFTONE 에 대한 호출에 대한 원본 비트맵의 입력 색을 CDC::StretchBlt 조정하는 데 사용됩니다.

CDC::SetDCBrushColor

현재 DC(디바이스 컨텍스트) 브러시 색을 지정된 색 값으로 설정합니다.

COLORREF SetDCBrushColor(COLORREF crColor);

매개 변수

crColor
새 브러시 색을 지정합니다.

Return Value

함수가 성공하면 반환 값은 이전 DC 브러시 색을 값으로 COLORREF 지정합니다.

함수가 실패하면 반환 값은 .입니다 CLR_INVALID.

설명

이 메서드는 Windows SDK에 설명된 대로 함수 SetDCBrushColor의 기능을 에뮬레이트합니다.

CDC::SetDCPenColor

현재 DC(디바이스 컨텍스트) 펜 색을 지정된 색 값으로 설정합니다.

COLORREF SetDCPenColor(COLORREF crColor);

매개 변수

crColor
새 펜 색을 지정합니다.

Return Value

함수가 성공하면 0이 아니고 그렇지 않으면 0입니다.

설명

이 멤버 함수는 Windows SDK에 설명된 대로 Win32 함수 SetDCPenColor를 사용합니다.

CDC::SetGraphicsMode

지정된 디바이스 컨텍스트에 대한 그래픽 모드를 설정합니다.

int SetGraphicsMode(int iMode);

매개 변수

iMode
그래픽 모드를 지정합니다. 이 매개 변수가 사용할 수 있는 값 목록은 다음을 참조하세요 SetGraphicsMode.

Return Value

성공하면 이전 그래픽 모드를 반환합니다.

실패하면 0을 반환합니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.

설명

이 메서드는 Windows GDI 함수 SetGraphicsMode를 래핑합니다.

CDC::SetLayout

이 멤버 함수를 호출하여 디바이스 컨텍스트의 텍스트 및 그래픽 레이아웃을 오른쪽에서 왼쪽으로 변경하고 아랍어 및 히브리어와 같은 문화권의 표준 레이아웃을 변경합니다.

DWORD SetLayout(DWORD dwLayout);

매개 변수

dwLayout
디바이스 컨텍스트 레이아웃 및 비트맵 컨트롤 플래그입니다. 다음 값의 조합일 수 있습니다.

의미
LAYOUT_BITMAPORIENTATIONPRESERVED 및 .에 대한 호출에 대한 리플렉션을 CDC::BitBltCDC::StretchBlt사용하지 않도록 설정합니다.
LAYOUT_RTL 기본 가로 레이아웃을 오른쪽에서 왼쪽으로 설정합니다.
LAYOUT_LTR 기본 레이아웃을 왼쪽에서 오른쪽으로 설정합니다.

Return Value

성공하면 디바이스 컨텍스트의 이전 레이아웃입니다.

실패하면 . GDI_ERROR 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.

설명

일반적으로 창을 호출 SetLayout 하지 않습니다. 대신 확장 창 스타일(예: WS_EX_RTLREADING.)을 설정하여 창에서 오른쪽에서 왼쪽으로 레이아웃을 제어합니다. 프린터 또는 메타파일과 같은 디바이스 컨텍스트는 이 레이아웃을 상속하지 않습니다. 오른쪽에서 왼쪽 레이아웃에 대한 디바이스 컨텍스트를 설정하는 유일한 방법은 호출 SetLayout하는 것입니다.

호출 SetLayout(LAYOUT_RTL)SetLayout 하는 경우 매핑 모드를 자동으로 .로 MM_ISOTROPIC변경합니다. 결과적으로 후속 호출 GetMapMode 이 대신 반환 MM_ISOTROPICMM_TEXT됩니다.

비트맵이 많은 경우처럼 왼쪽에서 오른쪽 레이아웃을 유지할 수도 있습니다. 이러한 경우 이미지를 호출 BitBlt 하여 렌더링하거나 StretchBlt비트맵 컨트롤 플래그 dwLayoutLAYOUT_BITMAPORIENTATIONPRESERVED를 로 설정합니다.

플래그를 사용하여 레이아웃을 LAYOUT_RTL 변경하면 일반적으로 오른쪽 또는 왼쪽을 지정하는 플래그가 반전됩니다. 혼동을 방지하기 위해 표준 플래그의 대체 이름을 정의할 수 있습니다. 제안된 대체 플래그 이름 목록은 Windows SDK를 참조 SetLayout 하세요.

CDC::SetMapMode

매핑 모드를 설정합니다.

virtual int SetMapMode(int nMapMode);

매개 변수

nMapMode
새 매핑 모드를 지정합니다. 다음 값 중 하나일 수 있습니다.

  • MM_ANISOTROPIC 논리 단위는 임의 배율 축이 있는 임의의 단위로 변환됩니다. 매핑 모드를 설정해 MM_ANISOTROPIC 도 현재 창이나 뷰포트 설정은 변경되지 않습니다. 단위, 방향 및 크기 조정을 변경하려면 및 SetViewportExt 멤버 함수를 SetWindowExt 호출합니다.

  • MM_HIENGLISH 각 논리 단위는 0.001인치로 변환됩니다. 양수 x는 오른쪽에 있습니다. 긍정 y는 최대입니다.

  • MM_HIMETRIC 각 논리 단위는 0.01mm로 변환됩니다. 양수 x는 오른쪽에 있습니다. 긍정 y는 최대입니다.

  • MM_ISOTROPIC 논리 단위는 균등하게 배율 조정된 축이 있는 임의의 단위로 변환됩니다. 즉, x축을 따라 1개 단위는 y축을 따라 1단위와 같습니다. SetWindowExtSetViewportExt 멤버 함수를 사용하여 원하는 단위와 축의 방향을 지정합니다. GDI는 x 및 y 단위가 동일한 크기를 다시 기본 있도록 필요에 따라 조정합니다.

  • MM_LOENGLISH 각 논리 단위는 0.01인치로 변환됩니다. 양수 x는 오른쪽에 있습니다. 긍정 y는 최대입니다.

  • MM_LOMETRIC 각 논리 단위는 0.1mm로 변환됩니다. 양수 x는 오른쪽에 있습니다. 긍정 y는 최대입니다.

  • MM_TEXT 각 논리 단위는 1개의 디바이스 픽셀로 변환됩니다. 양수 x는 오른쪽에 있습니다. 긍정 y가 다운되었습니다.

  • MM_TWIPS 각 논리 단위는 점의 1/20으로 변환됩니다. (점이 1/72인치이기 때문에 트립은 1/1440인치입니다.) 양수 x는 오른쪽에 있습니다. 긍정 y는 최대입니다.

Return Value

이전 매핑 모드입니다.

설명

매핑 모드는 논리 단위를 디바이스 단위로 변환하는 데 사용되는 측정 단위를 정의합니다. 또한 디바이스의 x축 및 y축 방향을 정의합니다. GDI는 매핑 모드를 사용하여 논리 좌표를 적절한 디바이스 좌표로 변환합니다. 이 MM_TEXT 모드를 사용하면 1단위가 1픽셀인 디바이스 픽셀에서 애플리케이션이 작동할 수 있습니다. 픽셀의 물리적 크기는 디바이스마다 다릅니다.

, MM_HIMETRIC, MM_LOENGLISHMM_LOMETRICMM_TWIPS 모드는 MM_HIENGLISH물리적으로 의미 있는 단위(예: 인치 또는 밀리미터)로 그려야 하는 애플리케이션에 유용합니다. 이 모드는 MM_ISOTROPIC 1:1 가로 세로 비율을 보장하며, 이미지의 정확한 모양을 유지하는 것이 중요할 때 유용합니다. 이 MM_ANISOTROPIC 모드를 사용하면 x 좌표와 y 좌표를 독립적으로 조정할 수 있습니다.

참고 항목

DC(디바이스 컨텍스트)를 오른쪽에서 왼쪽 레이아웃 SetLayout 으로 변경하도록 호출 SetLayout 하는 경우 매핑 모드MM_ISOTROPIC를 자동으로 변경합니다.

예시

에 대한 예제를 CView::OnPrepareDC참조하세요.

CDC::SetMapperFlags

논리 글꼴을 실제 글꼴로 변환할 때 글꼴 매퍼에서 사용하는 메서드를 변경합니다.

DWORD SetMapperFlags(DWORD dwFlag);

매개 변수

dwFlag
글꼴 매퍼가 글꼴의 가로 세로 높이와 너비를 디바이스에 일치시키려고 하는지 여부를 지정합니다. 이 값이면 매퍼는 ASPECT_FILTERINGx-aspect 및 y-aspect가 지정된 디바이스의 글꼴과 정확히 일치하는 글꼴만 선택합니다.

Return Value

글꼴 매퍼 플래그의 이전 값입니다.

설명

애플리케이션은 글꼴 매퍼가 지정된 디바이스의 가로 세로 비율과 정확히 일치하는 실제 글꼴만 선택하도록 하는 데 사용할 SetMapperFlags 수 있습니다.

래스터 글꼴만 사용하는 애플리케이션은 이 함수를 사용하여 SetMapperFlags 글꼴 매퍼에서 선택한 글꼴이 지정된 디바이스에서 매력적이고 읽을 수 있도록 할 수 있습니다. 확장성 있는(TrueType) 글꼴을 사용하는 애플리케이션은 일반적으로 사용하지 SetMapperFlags않습니다.

논리적 글꼴의 사양과 일치하는 가로 세로 비율이 실제 글꼴이 없는 경우 GDI는 새 가로 세로 비율을 선택하고 이 새 가로 세로 비율과 일치하는 글꼴을 선택합니다.

CDC::SetMiterLimit

디바이스 컨텍스트에 대한 miter 조인의 길이 제한을 설정합니다.

BOOL SetMiterLimit(float fMiterLimit);

매개 변수

fMiterLimit
디바이스 컨텍스트에 대한 새 miter 제한을 지정합니다.

Return Value

함수가 성공하면 0이 아니고 그렇지 않으면 0입니다.

설명

마이터 길이는 조인 내부에 있는 선벽의 교집합에서 조인 외부의 선벽 교집합까지의 거리로 정의됩니다. 마이터 제한은 줄 너비에 대한 미터 길이의 최대 허용 비율입니다. 기본 miter 제한은 10.0입니다.

CDC::SetOutputDC

이 멤버 함수를 호출하여 출력 디바이스 컨텍스트 m_hDC를 설정합니다.

virtual void SetOutputDC(HDC hDC);

매개 변수

hDC
Windows 디바이스 컨텍스트입니다.

설명

이 멤버 함수는 디바이스 컨텍스트가 개체에 연결되지 않은 경우에만 호출할 CDC 수 있습니다. 이 멤버 함수는 디바이스 컨텍스트를 설정 m_hDC 하지만 개체에 CDC 연결하지는 않습니다.

CDC::SetPixel

지정된 지점의 픽셀을 지정한 색 crColor의 근사치에 가장 가깝게 설정합니다.

COLORREF SetPixel(
    int x,
    int y,
    COLORREF crColor);

COLORREF SetPixel(
    POINT point,
    COLORREF crColor);

매개 변수

x
설정할 점의 논리적 x 좌표를 지정합니다.

y
설정할 점의 논리적 y 좌표를 지정합니다.

crColor
COLORREF 점을 그리는 데 사용되는 색을 지정하는 RGB 값입니다. 이 값에 대한 설명은 Windows SDK를 참조 COLORREF 하세요.

point
설정할 점의 논리적 x 및 y 좌표를 지정합니다. 이 매개 변수에 대한 POINT 구조체 또는 개체를 CPoint 전달할 수 있습니다.

Return Value

점이 그려지는 색의 RGB 값입니다. 이 값은 해당 색의 근사값을 사용하는 경우 지정한 crColor 값과 다를 수 있습니다. 함수가 실패하면(점이 클리핑 영역 외부에 있는 경우) 반환 값은 -1입니다.

설명

점이 클리핑 영역에 있어야 합니다. 점이 클리핑 영역에 없으면 함수는 아무 것도 수행하지 않습니다.

모든 디바이스가 SetPixel 기능을 지원하지는 않습니다. 디바이스에서 지원하는지 여부를 확인하려면 인덱스를 SetPixel사용하여 멤버 함수를 GetDeviceCapsRASTERCAPS 호출하고 플래그의 반환 값을 RC_BITBLT 검사.

CDC::SetPixelV

지정된 좌표의 픽셀을 지정된 색의 근사치로 설정합니다.

BOOL SetPixelV(
    int x,
    int y,
    COLORREF crColor);

BOOL SetPixelV(
    POINT point,
    COLORREF crColor);

매개 변수

x
설정할 점의 x 좌표를 논리 단위로 지정합니다.

y
설정할 점의 y 좌표를 논리 단위로 지정합니다.

crColor
점을 그리는 데 사용할 색을 지정합니다.

point
설정할 점의 논리적 x 및 y 좌표를 지정합니다. 이 매개 변수에 POINT 대한 데이터 구조 또는 개체를 CPoint 전달할 수 있습니다.

Return Value

함수가 성공하면 0이 아니고 그렇지 않으면 0입니다.

설명

점이 클리핑 영역과 디바이스 표면의 표시되는 부분 모두에 있어야 합니다. 모든 디바이스가 멤버 함수를 지원하는 것은 아닙니다. 자세한 내용은 멤버 함수의 RC_BITBLT 기능을 CDC::GetDeviceCaps 참조하세요. SetPixelV 는 그린 점의 색 값을 반환할 필요가 없기 때문에 더 SetPixel 빠릅니다.

CDC::SetPolyFillMode

다각형 채우기 모드를 설정합니다.

int SetPolyFillMode(int nPolyFillMode);

매개 변수

nPolyFillMode
새 채우기 모드를 지정합니다. 이 값은 둘 중 하나 ALTERNATEWINDING수도 있습니다. Windows에서 설정된 기본 모드는 .입니다 ALTERNATE.

Return Value

성공한 경우 이전 채우기 모드입니다. 그렇지 않으면 0입니다.

설명

다각형 채우기 모드인 경우 ALTERNATE시스템은 각 스캔 줄에서 홀수 번호와 짝수 다각형 면 사이의 영역을 채웁니다. 즉, 시스템은 첫 번째와 두 번째 면 사이의 영역, 세 번째와 네 번째 측면 사이의 영역을 채웁니다. 이 모드가 기본값입니다.

다각형 채우기 모드인 경우 WINDING시스템은 그림을 그린 방향을 사용하여 영역을 채울지 여부를 결정합니다. 다각형의 각 선 세그먼트는 시계 방향 또는 시계 반대 방향으로 그려집니다. 밀폐된 영역에서 그림의 바깥쪽으로 그린 가상 선이 시계 방향 선 세그먼트를 통과할 때마다 개수가 증가합니다. 줄이 시계 반대 방향 선 세그먼트를 통과하면 개수가 감소합니다. 그림 바깥쪽에 줄이 도달하면 수가 0이 아닌 경우 영역이 채워집니다.

CDC::SetROP2

현재 그리기 모드를 설정합니다.

int SetROP2(int nDrawMode);

매개 변수

nDrawMode
새 그리기 모드를 지정합니다. 다음 값 중 하나일 수 있습니다.

  • R2_BLACK 픽셀은 항상 검은색입니다.

  • R2_WHITE 픽셀은 항상 흰색입니다.

  • R2_NOP픽셀 다시 기본 변경되지 않습니다.

  • R2_NOT 픽셀은 화면 색의 역입니다.

  • R2_COPYPEN 픽셀은 펜 색입니다.

  • R2_NOTCOPYPEN 픽셀은 펜 색의 역입니다.

  • R2_MERGEPENNOT 픽셀은 펜 색과 화면 색의 역(최종 픽셀 = (~ 화면 픽셀) | 펜)의 조합입니다.

  • R2_MASKPENNOT 픽셀은 펜과 화면의 역(최종 픽셀 = (~ 화면 픽셀) & 펜 모두에 공통된 색의 조합입니다.

  • R2_MERGENOTPEN 픽셀은 화면 색과 펜 색의 역(최종 픽셀 = (~ 펜) | 화면 픽셀)의 조합입니다.

  • R2_MASKNOTPEN 픽셀은 화면에 공통적인 색과 펜의 역(최종 픽셀 = (~ 펜) 화면 픽셀) & 의 조합입니다.

  • R2_MERGEPEN 픽셀은 펜 색과 화면 색의 조합입니다(최종 픽셀 = 펜 | 화면 픽셀).

  • R2_NOTMERGEPEN 픽셀은 색의 R2_MERGEPEN 역(최종 픽셀 = ~ (펜 | 화면 픽셀))입니다.

  • R2_MASKPEN 픽셀은 펜과 화면 모두에 공통된 색의 조합입니다(최종 픽셀 = 펜 & 화면 픽셀).

  • R2_NOTMASKPEN 픽셀은 색의 R2_MASKPEN 역(최종 픽셀 = ~ (펜 & 화면 픽셀))입니다.

  • R2_XORPEN 픽셀은 펜이나 화면에 있지만 둘 다에 있지 않은 색의 조합입니다(최종 픽셀 = 펜 ^ 화면 픽셀).

  • R2_NOTXORPEN 픽셀은 색의 R2_XORPEN 역(최종 픽셀 = ~ (펜 ^ 화면 픽셀))입니다.

Return Value

이전 그리기 모드입니다.

Windows SDK에 지정된 값일 수 있습니다.

설명

그리기 모드는 펜의 색과 채워진 개체의 내부를 디스플레이 화면에 이미 있는 색과 결합하는 방법을 지정합니다.

그리기 모드는 래스터 디바이스에만 해당합니다. 벡터 디바이스에는 적용되지 않습니다. 그리기 모드는 이진 연산자 및(배타적) 및 ^ 단항 연산&|을 사용하여 두 변수의 가능한 모든 부울 조합을 나타내는 이진 래스터 연산 ~코드입니다.|

CDC::SetStretchBltMode

멤버 함수의 비트맵 스트레치 모드를 StretchBlt 설정합니다.

int SetStretchBltMode(int nStretchMode);

매개 변수

nStretchMode
스트레치 모드를 지정합니다. 다음 값 중 하나일 수 있습니다.

설명
BLACKONWHITE 제거된 픽셀과 기존 픽셀의 색 값을 사용하여 부울 & 연산을 수행합니다. 비트맵이 단색 비트맵인 경우 이 모드는 흰색 픽셀을 희생하여 검은색 픽셀을 유지합니다.
COLORONCOLOR 픽셀을 삭제합니다. 이 모드는 해당 정보를 유지하지 않고 제거된 모든 픽셀 줄을 삭제합니다.
HALFTONE 원본 사각형에서 대상 사각형의 픽셀 블록으로 픽셀을 지도. 대상 픽셀 블록의 평균 색은 원본 픽셀의 색과 유사합니다.
확장 모드를 HALFTONE 설정한 후 애플리케이션은 Win32 함수 SetBrushOrgEx 를 호출하여 브러시 원점 설정해야 합니다. 이렇게 하지 않으면 브러시가 잘못 정렬됩니다.
STRETCH_ANDSCANS Windows 95/98: BLACKONWHITE
STRETCH_DELETESCANS Windows 95/98: COLORONCOLOR
STRETCH_HALFTONE Windows 95/98: 와 같습니다 HALFTONE.
STRETCH_ORSCANS Windows 95/98: WHITEONBLACK
WHITEONBLACK 제거된 픽셀과 기존 픽셀의 색 값을 사용하여 부울 | 연산을 수행합니다. 비트맵이 단색 비트맵인 경우 이 모드는 검은색 픽셀을 희생하여 흰색 픽셀을 유지합니다.

Return Value

이전 스트레치 모드입니다. 또는 .STRETCH_DELETESCANSSTRETCH_ORSCANSSTRETCH_ANDSCANS수 있습니다.

설명

비트맵 스트레치 모드는 함수를 사용하여 압축되는 비트맵에서 정보를 제거하는 방법을 정의합니다.

BLACKONWHITE(STRETCH_ANDSCANS) 및 WHITEONBLACK(STRETCH_ORSCANS) 모드는 일반적으로 전경 픽셀을 단색 비트맵으로 유지하는 데 사용됩니다. COLORONCOLOR(STRETCH_DELETESCANS) 모드는 일반적으로 색 비트맵에서 색을 유지하는 데 사용됩니다.

이 모드는 HALFTONE 다른 세 가지 모드보다 원본 이미지를 더 많이 처리해야 합니다. 다른 모드보다 느리지만 더 높은 품질의 이미지를 생성합니다. SetBrushOrgEx 또한 브러시가 잘못 정렬되지 않도록 모드를 HALFTONE 설정한 후에 호출해야 합니다.

디바이스 드라이버의 기능에 따라 더 많은 스트레칭 모드를 사용할 수도 있습니다.

CDC::SetTextAlign

텍스트 맞춤 플래그를 설정합니다.

UINT SetTextAlign(UINT nFlags);

매개 변수

nFlags
텍스트 맞춤 플래그를 지정합니다. 플래그는 텍스트를 경계로 하는 점과 사각형 간의 관계를 지정합니다. 점은 텍스트 출력 함수에 지정된 현재 위치 또는 좌표일 수 있습니다. 텍스트를 경계로 하는 사각형은 텍스트 문자열의 인접한 문자 셀에 의해 정의됩니다. 매개 변수는 nFlags 다음 세 가지 범주에서 하나 이상의 플래그가 될 수 있습니다. 각 범주에서 하나의 플래그만 선택합니다. 첫 번째 범주는 x 방향의 텍스트 맞춤에 영향을 줍니다.

  • TA_CENTER 경계 사각형의 가로 가운데에 점을 맞춥니다.

  • TA_LEFT 경계 사각형의 왼쪽에 점을 맞춥니다. 이것이 기본 설정입니다.

  • TA_RIGHT 경계 사각형의 오른쪽에 점을 맞춥니다.

두 번째 범주는 y 방향의 텍스트 맞춤에 영향을 줍니다.

  • TA_BASELINE 선택한 글꼴의 기본 줄에 점을 맞춥니다.

  • TA_BOTTOM 경계 사각형의 아래쪽에 점을 맞춥니다.

  • TA_TOP 경계 사각형의 위쪽에 점을 맞춥니다. 이것이 기본 설정입니다.

세 번째 범주는 텍스트를 쓸 때 현재 위치가 업데이트되는지 여부를 결정합니다.

  • TA_NOUPDATECP 텍스트 출력 함수를 호출할 때마다 현재 위치를 업데이트하지 않습니다. 이것이 기본 설정입니다.

  • TA_UPDATECP텍스트 출력 함수를 호출할 때마다 현재 x 위치를 업데이트. 새 위치는 텍스트의 경계 사각형 오른쪽에 있습니다. 이 플래그를 설정하면 멤버 함수 호출에 TextOut 지정된 좌표가 무시됩니다.

Return Value

성공한 경우 이전 텍스트 맞춤 설정입니다. 하위 바이트에는 가로 설정이 포함되고 상위 바이트에는 세로 설정이 포함됩니다. 그렇지 않으면 0입니다.

설명

ExtTextOut 멤버 함수는 TextOut 표시 또는 디바이스에 텍스트 문자열을 배치할 때 이러한 플래그를 사용합니다. 플래그는 특정 지점과 텍스트를 경계로 하는 사각형 간의 관계를 지정합니다. 이 점의 좌표는 멤버 함수에 TextOut 매개 변수로 전달됩니다. 텍스트를 경계로 하는 사각형은 텍스트 문자열의 인접한 문자 셀에 의해 형성됩니다.

CDC::SetTextCharacterExtra

문자 간 간격을 설정합니다.

int SetTextCharacterExtra(int nCharExtra);

매개 변수

nCharExtra
각 문자에 추가할 여분 공간(논리 단위)을 지정합니다. 현재 매핑 모드가 아닌 MM_TEXTnCharExtra 경우 변환되고 가장 가까운 픽셀로 반올림됩니다.

Return Value

이전 문자 간 간격의 양입니다.

설명

GDI는 디바이스 컨텍스트에 텍스트 줄을 쓸 때 중단 문자를 포함하여 각 문자에 이 간격을 추가합니다. 문자 간 간격의 기본값은 0입니다.

CDC::SetTextColor

텍스트 색을 지정된 색으로 설정합니다.

virtual COLORREF SetTextColor(COLORREF crColor);

매개 변수

crColor
텍스트의 색을 RGB 색 값으로 지정합니다.

Return Value

이전 텍스트 색의 RGB 값입니다.

설명

시스템에서는 이 디바이스 컨텍스트에 텍스트를 쓸 때와 색과 단색 디바이스 컨텍스트 간에 비트맵을 변환할 때 이 텍스트 색을 사용합니다.

디바이스에서 지정된 색을 나타낼 수 없는 경우 시스템은 텍스트 색을 가장 가까운 실제 색으로 설정합니다. 문자의 배경색은 및 SetBkMode 멤버 함수에 SetBkColor 의해 지정됩니다.

예시

에 대한 예제를 CWnd::OnCtlColor참조하세요.

CDC::SetTextJustification

문자열의 나누기 문자에 공백을 추가합니다.

int SetTextJustification(
    int nBreakExtra,
    int nBreakCount);

매개 변수

nBreakExtra
텍스트 줄에 추가할 총 추가 공간을 논리 단위로 지정합니다. 현재 매핑 모드가 아닌 MM_TEXT경우 이 매개 변수에서 제공하는 값이 현재 매핑 모드로 변환되고 가장 가까운 디바이스 단위로 반올림됩니다.

nBreakCount
줄의 줄 바꿈 문자 수를 지정합니다.

Return Value

함수가 성공하면 1개, 그렇지 않으면 0입니다.

설명

애플리케이션은 멤버 함수를 GetTextMetrics 사용하여 글꼴의 중단 문자를 검색할 수 있습니다.

멤버 함수가 SetTextJustification 호출된 후 텍스트 출력 함수(예: TextOut)에 대한 호출은 지정된 분리 문자 수에 지정된 추가 공간을 균등하게 분산합니다. 중단 문자는 일반적으로 공백 문자(ASCII 32)이지만 글꼴로 다른 문자로 정의할 수 있습니다.

멤버 함수 GetTextExtent 는 일반적으로 .와 함께 SetTextJustification사용됩니다. GetTextExtent 는 맞춤 전에 지정된 줄의 너비를 계산합니다. 애플리케이션은 정렬 후 문자열의 너비에서 nBreakExtra 반환된 GetTextExtent 값을 빼 매개 변수에 지정할 공간의 양을 결정할 수 있습니다.

함수를 SetTextJustification 사용하여 여러 글꼴로 여러 개의 실행이 포함된 줄을 정렬할 수 있습니다. 이 경우 각 실행을 개별적으로 정렬하고 작성하여 줄을 증분으로 만들어야 합니다.

정렬 중에 반올림 오류가 발생할 수 있으므로 시스템은 현재 오류를 정의하는 실행 중인 오류 용어를 유지합니다. 여러 실행이 포함된 줄을 정렬하는 경우 다음 실행 GetTextExtent 의 익스텐트를 계산할 때 이 오류 용어를 자동으로 사용합니다. 이렇게 하면 텍스트 출력 함수가 오류를 새 실행에 혼합할 수 있습니다.

각 줄이 정렬된 후에는 다음 줄에 통합되지 않도록 이 오류 용어를 지워야 합니다. 0으로 nBreakExtra 설정된 상태에서 호출 SetTextJustification 하여 용어를 지울 수 있습니다.

CDC::SetViewportExt

디바이스 컨텍스트 뷰포트의 x 및 y 익스텐트 집합입니다.

virtual CSize SetViewportExt(
    int cx,
    int cy);

CSize SetViewportExt(SIZE size);

매개 변수

cx
뷰포트의 x 익스텐트(디바이스 단위)를 지정합니다.

cy
뷰포트의 y 익스텐트(디바이스 단위)를 지정합니다.

size
뷰포트의 x 및 y 익스텐트(디바이스 단위)를 지정합니다.

Return Value

뷰포트의 이전 익스텐트(개체)입니다 CSize . 오류가 발생하면 반환 CSize 된 개체의 x 좌표와 y 좌표가 모두 0으로 설정됩니다.

설명

뷰포트는 디바이스 컨텍스트 창과 함께 GDI가 논리 좌표계의 점을 실제 디바이스의 좌표계를 가리키는 방법을 정의합니다. 즉, GDI가 논리 좌표를 디바이스 좌표로 변환하는 방법을 정의합니다.

다음 매핑 모드가 설정되면 호출 SetWindowExtSetViewportExt 무시됩니다.

MM_HIENGLISH MM_LOMETRIC
MM_HIMETRIC MM_TEXT
MM_LOENGLISH MM_TWIPS

MM_ISOTROPIC 모드가 설정되면 애플리케이션은 멤버 함수를 SetWindowExt 호출하기 전에 호출SetViewportExt해야 합니다.

예시

에 대한 예제를 CView::OnPrepareDC참조하세요.

CDC::SetViewportOrg

디바이스 컨텍스트의 뷰포트 원본을 설정합니다.

virtual CPoint SetViewportOrg(
    int x,
    int y);

CPoint SetViewportOrg(POINT point);

매개 변수

x
뷰포트 원점의 x 좌표(디바이스 단위)를 지정합니다. 값은 디바이스 좌표계의 범위 내에 있어야 합니다.

y
뷰포트 원점의 y 좌표(디바이스 단위)를 지정합니다. 값은 디바이스 좌표계의 범위 내에 있어야 합니다.

point
뷰포트의 원본을 지정합니다. 값은 디바이스 좌표계의 범위 내에 있어야 합니다. 이 매개 변수에 대한 POINT 구조체 또는 개체를 CPoint 전달할 수 있습니다.

Return Value

뷰포트의 이전 원본(디바이스 좌표)을 개체로 사용합니다 CPoint .

설명

뷰포트는 디바이스 컨텍스트 창과 함께 GDI가 논리 좌표계의 점을 실제 디바이스의 좌표계를 가리키는 방법을 정의합니다. 즉, GDI가 논리 좌표를 디바이스 좌표로 변환하는 방법을 정의합니다.

뷰포트 원점은 GDI가 창 원점을 매핑하는 디바이스 좌표계의 점을 표시하며 멤버 함수에 지정된 논리 좌표계의 SetWindowOrg 한 지점입니다. GDI는 창 원본을 뷰포트 원본에 매핑하는 데 필요한 동일한 프로세스에 따라 다른 모든 지점을 매핑합니다. 예를 들어 창 원점 주위의 원에 있는 모든 지점은 뷰포트 원점 주위의 원에 있습니다. 마찬가지로 창 원점을 통과하는 줄의 모든 지점은 뷰포트 원점을 통과하는 줄에 있습니다.

예시

에 대한 예제를 CView::OnPrepareDC참조하세요.

CDC::SetWindowExt

디바이스 컨텍스트와 연결된 창의 x 및 y 익스텐트 설정

virtual CSize SetWindowExt(
    int cx,
    int cy);

CSize SetWindowExt(SIZE size);

매개 변수

cx
창의 x 익스텐트(논리 단위)를 지정합니다.

cy
창의 y 익스텐트(논리 단위)를 지정합니다.

size
창의 x 및 y 익스텐트(논리 단위)를 지정합니다.

Return Value

개체로서 창의 이전 익스텐트(논리 단위)입니다 CSize . 오류가 발생하면 반환 CSize 된 개체의 x 좌표와 y 좌표가 모두 0으로 설정됩니다.

설명

창은 디바이스 컨텍스트 뷰포트와 함께 GDI가 논리 좌표계의 점을 디바이스 좌표계의 점에 매핑하는 방법을 정의합니다.

다음 매핑 모드가 설정되면 호출 SetWindowExtSetViewportExt 함수가 무시됩니다.

  • MM_HIENGLISH

  • MM_HIMETRIC

  • MM_LOENGLISH

  • MM_LOMETRIC

  • MM_TEXT

  • MM_TWIPS

MM_ISOTROPIC 모드가 설정되면 애플리케이션은 호출하기 전에 멤버 함수를 SetWindowExt 호출SetViewportExt해야 합니다.

예시

에 대한 예제를 CView::OnPrepareDC참조하세요.

CDC::SetWindowOrg

디바이스 컨텍스트의 창 원본을 설정합니다.

CPoint SetWindowOrg(
    int x,
    int y);

CPoint SetWindowOrg(POINT point);

매개 변수

x
창의 새 원점의 논리적 x 좌표를 지정합니다.

y
창의 새 원점의 논리적 y 좌표를 지정합니다.

point
창의 새 원점의 논리적 좌표를 지정합니다. 이 매개 변수에 대한 POINT 구조체 또는 개체를 CPoint 전달할 수 있습니다.

Return Value

개체로서 창의 이전 원본입니다 CPoint .

설명

창은 디바이스 컨텍스트 뷰포트와 함께 GDI가 논리 좌표계의 점을 디바이스 좌표계의 점에 매핑하는 방법을 정의합니다.

창 원점은 GDI가 뷰포트 원점을 매핑하는 논리 좌표계의 점을 표시하며, 이는 함수에서 지정한 디바이스 좌표계의 SetWindowOrg 한 지점입니다. GDI는 창 원본을 뷰포트 원본에 매핑하는 데 필요한 동일한 프로세스에 따라 다른 모든 지점을 매핑합니다. 예를 들어 창 원점 주위의 원에 있는 모든 지점은 뷰포트 원점 주위의 원에 있습니다. 마찬가지로 창 원점을 통과하는 줄의 모든 지점은 뷰포트 원점을 통과하는 줄에 있습니다.

CDC::SetWorldTransform

지정된 디바이스 컨텍스트에 대한 세계 공간과 페이지 공간 간의 2차원 선형 변환을 설정합니다. 이 변환을 사용하여 그래픽 출력의 크기를 조정, 회전, 전단 또는 변환할 수 있습니다.

BOOL SetWorldTransform(const XFORM& rXform);

매개 변수

rXform
XFORM 변환 데이터를 포함하는 구조체에 대한 참조입니다.

Return Value

성공에 대한 0이 아닌 값을 반환합니다.

실패하면 0을 반환합니다.

확장 오류 정보를 가져오려면 GetLastError를 호출합니다.

설명

이 메서드는 Windows GDI 함수 SetWorldTransform를 래핑합니다.

CDC::StartDoc

디바이스 드라이버에 새 인쇄 작업이 시작되고 호출이 발생할 때까지 EndDoc 모든 후속 StartPageEndPage 호출이 동일한 작업에서 스풀화되어야 임을 알릴 수 있습니다.

int StartDoc(LPDOCINFO lpDocInfo);
int StartDoc(LPCTSTR lpszDocName);

매개 변수

lpDocInfo
DOCINFO 문서 파일의 이름과 출력 파일의 이름을 포함하는 구조를 가리킵니다.

lpszDocName
문서 파일의 이름을 포함하는 문자열에 대한 포인터입니다.

Return Value

함수가 성공하면 반환 값이 0보다 큽니다. 이 값은 문서의 인쇄 작업 식별자입니다.

함수가 실패하면 반환 값은 0보다 작거나 같습니다.

설명

이렇게 하면 한 페이지보다 긴 문서가 다른 작업과 섞여 있지 않습니다.

Windows 버전 3.1 이상의 경우 이 함수는 프린터 이스케이프를 STARTDOC 대체합니다. 이 함수를 사용하면 둘 이상의 페이지가 포함된 문서가 다른 인쇄 작업과 섞이지 않습니다.

StartDoc 메타파일 내에서는 사용하지 않아야 합니다.

예시

이 코드 조각은 기본 프린터를 가져오고 인쇄 작업을 열고 "Hello, World!"가 있는 한 페이지를 스풀합니다. 이 코드로 인쇄된 텍스트는 프린터의 논리 단위로 크기가 조정되지 않으므로 출력 텍스트가 작은 문자로 되어 결과를 읽을 수 없을 수 있습니다. CDC 크기 조정 함수(예: SetMapMode, SetViewportOrgSetWindowExt)를 사용하여 크기 조정을 수정할 수 있습니다.

void CDCView::DoStartDoc()
{
   // get the default printer
   CPrintDialog dlg(FALSE);
   dlg.GetDefaults();

   // is a default printer set up?
   HDC hdcPrinter = dlg.GetPrinterDC();
   if (hdcPrinter == NULL)
   {
      MessageBox(_T("Buy a printer!"));
   }
   else
   {
      // create a CDC and attach it to the default printer
      CDC dcPrinter;
      dcPrinter.Attach(hdcPrinter);

      // call StartDoc() to begin printing
      DOCINFO docinfo;
      memset(&docinfo, 0, sizeof(docinfo));
      docinfo.cbSize = sizeof(docinfo);
      docinfo.lpszDocName = _T("CDC::StartDoc() Code Fragment");

      // if it fails, complain and exit gracefully
      if (dcPrinter.StartDoc(&docinfo) < 0)
      {
         MessageBox(_T("Printer wouldn't initialize"));
      }
      else
      {
         // start a page
         if (dcPrinter.StartPage() < 0)
         {
            MessageBox(_T("Could not start page"));
            dcPrinter.AbortDoc();
         }
         else
         {
            // actually do some printing
            CGdiObject *pOldFont = dcPrinter.SelectStockObject(SYSTEM_FONT);

            dcPrinter.TextOut(50, 50, _T("Hello World!"), 12);

            dcPrinter.EndPage();
            dcPrinter.EndDoc();
            dcPrinter.SelectObject(pOldFont);
         }
      }
   }
}

CDC::StartPage

이 멤버 함수를 호출하여 데이터를 받을 프린터 드라이버를 준비합니다.

int StartPage();

Return Value

함수가 성공한 경우 0보다 크거나 같거나, 오류가 발생한 경우 음수 값입니다.

설명

StartPageNEWFRAME 대체하고 BANDINFO 이스케이프합니다.

인쇄 호출 시퀀스에 대한 개요는 멤버 함수를 StartDoc 참조하세요.

시스템에서 호출 StartPageEndPage멤버 함수를 ResetDC 사용하지 않도록 설정합니다.

예시

에 대한 예제를 CDC::StartDoc참조하세요.

CDC::StretchBlt

소스 사각형에서 대상 사각형으로 비트맵을 복사하고 필요 시 비트맵을 늘이거나 줄여 대상 사각형의 크기에 맞춥니다.

BOOL StretchBlt(
    int x,
    int y,
    int nWidth,
    int nHeight,
    CDC* pSrcDC,
    int xSrc,
    int ySrc,
    int nSrcWidth,
    int nSrcHeight,
    DWORD dwRop);

매개 변수

x
대상 사각형 왼쪽 위 모퉁이의 X 좌표(논리 단위)를 지정합니다.

y
대상 사각형 왼쪽 위 모퉁이의 Y 좌표(논리 단위)를 지정합니다.

nWidth
대상 사각형의 너비(논리 단위)를 지정합니다.

nHeight
대상 사각형의 높이(논리 단위)를 지정합니다.

pSrcDC
소스 디바이스 컨텍스트를 지정합니다.

xSrc
소스 사각형 왼쪽 위 모퉁이의 X 좌표(논리 단위)를 지정합니다.

ySrc
소스 사각형 왼쪽 위 모퉁이의 Y 좌표(논리 단위)를 지정합니다.

nSrcWidth
소스 사각형의 너비(논리 단위)를 지정합니다.

nSrcHeight
소스 사각형의 높이(논리 단위)를 지정합니다.

dwRop
수행할 래스터 연산을 지정합니다. 래스터 연산 코드는 GDI가 현재 브러시, 가능한 소스 비트맵 및 대상 비트맵을 호출하는 출력 연산에서 색을 결합하는 방법을 정의합니다. 이 매개 변수는 다음 값 중 하나일 수 있습니다.

  • BLACKNESS 모든 출력을 검은색으로 바꿉니다.

  • DSTINVERT 대상 비트맵을 반전합니다.

  • MERGECOPY 부울 AND 연산자를 사용하여 패턴과 원본 비트맵을 결합합니다.

  • MERGEPAINT 부울 OR 연산자를 사용하여 반전된 소스 비트맵을 대상 비트맵과 결합합니다.

  • NOTSRCCOPY 반전된 원본 비트맵을 대상으로 복사합니다.

  • NOTSRCERASE 부울 OR 연산자를 사용하여 대상 및 원본 비트맵을 결합한 결과를 반전합니다.

  • PATCOPY 패턴을 대상 비트맵에 복사합니다.

  • PATINVERT 부울 XOR 연산자를 사용하여 대상 비트맵을 패턴과 결합합니다.

  • PATPAINT 부울 OR 연산자를 사용하여 반전된 소스 비트맵을 패턴과 결합합니다. 부울 OR 연산자를 사용하여 이 작업의 결과를 대상 비트맵과 결합합니다.

  • SRCAND 부울 AND 연산자를 사용하여 대상 및 원본 비트맵의 픽셀을 결합합니다.

  • SRCCOPY 원본 비트맵을 대상 비트맵에 복사합니다.

  • SRCERASE 대상 비트맵을 반전하고 부울 AND 연산자를 사용하여 결과를 원본 비트맵과 결합합니다.

  • SRCINVERT 부울 XOR 연산자를 사용하여 대상 및 원본 비트맵의 픽셀을 결합합니다.

  • SRCPAINT 부울 OR 연산자를 사용하여 대상 및 원본 비트맵의 픽셀을 결합합니다.

  • WHITENESS 모든 출력을 흰색으로 바꿉니다.

Return Value

비트맵을 그리면 0이 아니고 그렇지 않으면 0입니다.

설명

이 함수는 대상 디바이스 컨텍스트(SetStretchBltMode로 설정)의 늘이기 모드를 사용하여 비트맵을 늘이거나 줄이는 방법을 결정합니다.

이 함수는 StretchBlt 지정된 원본 디바이스 pSrcDC 에서 멤버 함수가 호출되는 디바이스 컨텍스트 개체가 나타내는 대상 디바이스로 비트맵을 이동합니다. , ySrcnSrcWidthnSrcHeight 매개 변수는 xSrc원본 사각형의 왼쪽 위 모서리와 차원을 정의합니다. , ynWidthnHeight 매개 변수는 x대상 사각형의 왼쪽 위 모서리와 차원을 제공합니다. 지정된 dwRop 래스터 작업은 원본 비트맵과 대상 디바이스에 이미 있는 비트가 결합되는 방법을 정의합니다.

함수는 StretchBlt 및 또는 nHeightnSrcHeight 매개 변수의 기호가 다른 경우 비트맵의 nSrcWidthnWidth 미러 이미지를 만듭니다. nWidth 기호가 다르면 nSrcWidth 함수는 x축을 따라 비트맵의 미러 이미지를 만듭니다. nHeight 기호가 다르면 nSrcHeight 함수는 y축을 따라 비트맵의 미러 이미지를 만듭니다.

StretchBlt 함수는 메모리에서 소스 비트맵을 늘이거나 줄인 다음 결과를 대상으로 복사합니다. 패턴이 결과와 병합되는 경우 확장된 원본 비트맵이 대상에 복사될 때까지 병합되지 않습니다. 브러시를 사용하는 경우 대상 디바이스 컨텍스트에서 선택한 브러시입니다. 대상 좌표는 대상 디바이스 컨텍스트에 따라 변환됩니다. 소스 좌표는 소스 디바이스 컨텍스트에 따라 변환됩니다.

대상, 원본 및 패턴 비트맵의 색 형식 StretchBlt 이 같지 않으면 원본 및 패턴 비트맵을 대상 비트맵과 일치하도록 변환합니다. 대상 디바이스 컨텍스트의 전경 및 배경 색이 변환에 사용됩니다.

StretchBlt가 단색 비트맵을 컬러로 변환해야 하는 경우 흰색 비트(1)를 배경색으로, 검정색 비트(0)를 전경색으로 설정합니다. 컬러를 단색으로 변환하기 위해 배경색과 일치하는 픽셀을 흰색(1)으로 설정하고 다른 모든 픽셀을 검정색(0)으로 설정합니다. 색이 있는 디바이스 컨텍스트의 전경 및 배경색이 사용됩니다.

모든 디바이스가 StretchBlt 기능을 지원하지는 않습니다. 디바이스에서 지원하는지 여부를 확인하려면 인덱스를 StretchBlt사용하여 멤버 함수를 GetDeviceCapsRASTERCAPS 호출하고 플래그의 반환 값을 RC_STRETCHBLT 검사.

CDC::StrokeAndFillPath

경로의 열려 있는 그림을 닫고, 현재 펜을 사용하여 경로의 윤곽선을 스트로크하고, 현재 브러시를 사용하여 내부를 채웁니다.

BOOL StrokeAndFillPath();

Return Value

함수가 성공하면 0이 아니고 그렇지 않으면 0입니다.

설명

디바이스 컨텍스트는 닫힌 경로를 포함해야 합니다. 멤버 함수는 StrokeAndFillPath 펜이 넓더라도 채워진 영역이 스트로크된 영역과 겹치지 않는다는 점을 제외하고 경로의 열려 있는 모든 그림을 닫고 경로를 별도로 쓰다듬고 채우는 것과 같은 효과를 줍니다.

CDC::StrokePath

현재 펜을 사용하여 지정된 경로를 렌더링합니다.

BOOL StrokePath();

Return Value

함수가 성공하면 0이 아니고 그렇지 않으면 0입니다.

설명

디바이스 컨텍스트는 닫힌 경로를 포함해야 합니다.

CDC::TabbedTextOut

이 멤버 함수를 호출하여 지정된 위치에 문자열을 작성하고 탭을 탭 중지 위치 배열에 지정된 값으로 확장합니다.

virtual CSize TabbedTextOut(
    int x,
    int y,
    LPCTSTR lpszString,
    int nCount,
    int nTabPositions,
    LPINT lpnTabStopPositions,
    int nTabOrigin);

CSize TabbedTextOut(
    int x,
    int y,
    const CString& str,
    int nTabPositions,
    LPINT lpnTabStopPositions,
    int nTabOrigin);

매개 변수

x
문자열 시작점의 논리적 x 좌표를 지정합니다.

y
문자열 시작점의 논리적 y 좌표를 지정합니다.

lpszString
그릴 문자열을 가리킵니다. 포인터를 문자 배열에 전달하거나 이 매개 변수의 개체를 CString 전달할 수 있습니다.

nCount
가리키는 문자열 의 길이를 지정합니다 lpszString.

nTabPositions
탭 중지 위치 배열의 값 수를 지정합니다.

lpnTabStopPositions
탭 중지 위치(논리 단위)가 포함된 배열을 가리킵니다. 탭 정지는 순서대로 정렬되어야 합니다. 가장 작은 x-값은 배열의 첫 번째 항목이어야 합니다.

nTabOrigin
탭이 확장되는 시작 위치의 x 좌표를 논리 단위로 지정합니다.

str
CString 지정된 문자를 포함하는 개체입니다.

Return Value

개체로서 문자열의 차원(논리 단위)입니다 CSize .

설명

텍스트는 현재 선택한 글꼴로 작성됩니다. 0 lpnTabStopPositionsNULL이면 nTabPositions 탭이 평균 문자 너비의 8배로 확장됩니다.

1이면 nTabPositions 탭 정지는 배열의 첫 번째 값 lpnTabStopPositions 으로 지정된 거리로 구분됩니다. 배열에 lpnTabStopPositions 둘 이상의 값이 포함된 경우 배열의 각 값에 대해 탭 정지가 지정된 숫자까지 설정됩니다 nTabPositions. 이 nTabOrigin 매개 변수를 사용하면 애플리케이션이 한 줄에 대해 함수를 TabbedTextOut 여러 번 호출할 수 있습니다. 애플리케이션이 매번 동일한 값으로 nTabOrigin 설정된 함수를 두 번 이상 호출하는 경우 함수는 지정된 nTabOrigin위치를 기준으로 모든 탭을 확장합니다.

기본적으로 현재 위치는 함수에서 사용되거나 업데이트되지 않습니다. 애플리케이션이 함수를 호출할 때 현재 위치를 업데이트해야 하는 경우 애플리케이션은 로 nFlags 설정된 멤버 함수를 호출 SetTextAlignTA_UPDATECP수 있습니다. 이 플래그가 설정되면 Windows는 현재 위치를 대신 사용하여 후속 호출TabbedTextOut에서 매개 변수 및 y 매개 변수를 무시 x 합니다.

CDC::TextOut

현재 선택된 글꼴을 사용하여 지정된 위치에 문자열을 씁니다.

virtual BOOL TextOut(
    int x,
    int y,
    LPCTSTR lpszString,
    int nCount);

BOOL TextOut(
    int x,
    int y,
    const CString& str);

매개 변수

x
텍스트 시작점의 논리적 X 좌표를 지정합니다.

y
텍스트 시작점의 논리적 Y 좌표를 지정합니다.

lpszString
그릴 문자열을 가리킵니다.

nCount
문자열에 있는 문자의 수를 지정합니다.

str
그릴 문자를 포함하는 CString 개체입니다.

Return Value

함수가 성공하면 0이 아니고 그렇지 않으면 0입니다.

설명

문자 원본은 문자 셀의 왼쪽 위 모퉁이에 있습니다. 기본적으로 현재 위치는 함수에서 사용되거나 업데이트되지 않습니다.

애플리케이션이 호출TextOut할 때 현재 위치를 업데이트해야 하는 경우 애플리케이션은 로 설정된 멤버 함수 nFlagsSetTextAlign 호출할 TA_UPDATECP수 있습니다. 이 플래그가 설정되면 Windows는 현재 위치를 대신 사용하여 후속 호출TextOut에서 매개 변수 및 y 매개 변수를 무시 x 합니다.

예시

에 대한 예제를 CDC::BeginPath참조하세요.

CDC::TransparentBlt

지정된 원본 디바이스 컨텍스트에서 픽셀 사각형에 해당하는 색 데이터의 비트 블록을 대상 디바이스 컨텍스트로 전송하려면 이 멤버 함수를 호출합니다.

BOOL TransparentBlt(
    int xDest,
    int yDest,
    int nDestWidth,
    int nDestHeight,
    CDC* pSrcDC,
    int xSrc,
    int ySrc,
    int nSrcWidth,
    int nSrcHeight,
    UINT clrTransparent);

매개 변수

xDest
대상 사각형의 왼쪽 위 모서리에 있는 x 좌표(논리 단위)를 지정합니다.

yDest
대상 사각형의 왼쪽 위 모서리에 있는 y 좌표를 논리 단위로 지정합니다.

nDestWidth
대상 사각형의 너비를 논리 단위로 지정합니다.

nDestHeight
대상 사각형의 높이를 논리 단위로 지정합니다.

pSrcDC
원본 디바이스 컨텍스트에 대한 포인터입니다.

xSrc
원본 사각형의 x 좌표(논리 단위)를 지정합니다.

ySrc
원본 사각형의 y 좌표를 논리 단위로 지정합니다.

nSrcWidth
원본 사각형의 너비를 논리 단위로 지정합니다.

nSrcHeight
원본 사각형의 높이를 논리 단위로 지정합니다.

clrTransparent
투명으로 처리할 원본 비트맵의 RGB 색입니다.

Return Value

성공하면 TRUE이고, 그렇지 않으면 FALSE입니다.

설명

TransparentBlt 투명도를 허용합니다. 즉, 표시된 clrTransparent RGB 색이 전송을 위해 투명하게 렌더링됩니다.

자세한 내용은 Windows SDK를 참조 TransparentBlt 하세요.

CDC::UpdateColors

클라이언트 영역의 현재 색을 픽셀 단위로 시스템 팔레트에 일치시켜 디바이스 컨텍스트의 클라이언트 영역을 업데이트.

void UpdateColors();

설명

실현된 논리 팔레트가 있는 비활성 창은 시스템 팔레트가 변경될 때 클라이언트 영역을 다시 그리는 대신 호출 UpdateColors 할 수 있습니다.

색상표 사용에 대한 자세한 내용은 Windows SDK를 참조 UpdateColors 하세요.

멤버 함수는 UpdateColors 일반적으로 영역을 다시 그리는 것보다 클라이언트 영역을 더 빠르게 업데이트합니다. 그러나 함수는 시스템 팔레트가 변경되기 전에 각 픽셀의 색을 기반으로 색 변환을 수행하므로 이 함수를 호출할 때마다 색 정확도가 손실됩니다.

CDC::WidenPath

현재 경로가 디바이스 컨텍스트에 선택된 펜을 사용하여 스트로크된 경우 그릴 영역으로 현재 경로를 다시 정의합니다.

BOOL WidenPath();

Return Value

함수가 성공하면 0이 아니고 그렇지 않으면 0입니다.

설명

이 함수는 현재 펜이 두 번째 버전의 CreatePen 멤버 함수에서 만든 기하학적 펜이거나 펜이 첫 번째 버전 CreatePen 으로 생성되고 디바이스 단위에서 너비가 1보다 큰 경우에만 성공합니다. 디바이스 컨텍스트는 닫힌 경로를 포함해야 합니다. 경로의 모든 Bzier 곡선은 확대된 곡선을 근사하는 직선 시퀀스로 변환됩니다. 따라서 호출된 후 WidenPath 경로에 기본 Bzier 곡선이 없습니다.

참고 항목

CObject 클래스
계층 구조 차트
CPaintDC 클래스
CWindowDC 클래스
CClientDC 클래스
CMetaFileDC 클래스