텍스트 그리기(GDI+)
Graphics 클래스의 DrawString 메서드를 사용하여 지정된 위치 또는 지정된 사각형 내에서 텍스트를 그릴 수 있습니다.
지정된 위치에 텍스트 그리기
지정된 위치에 텍스트를 그리려면 Graphics, FontFamily, Font, PointF 및 Brush 개체가 필요합니다.
다음 예제에서는 위치에서 문자열 "Hello"를 그립니다(30, 10). 글꼴 패밀리는 Times New Roman입니다. 글꼴 패밀리의 개별 구성원인 글꼴은 Times New Roman이며 크기는 24픽셀, 일반 스타일입니다. 그래픽이 기존 Graphics 개체라고 가정합니다.
FontFamily fontFamily(L"Times New Roman");
Font font(&fontFamily, 24, FontStyleRegular, UnitPixel);
PointF pointF(30.0f, 10.0f);
SolidBrush solidBrush(Color(255, 0, 0, 255));
graphics.DrawString(L"Hello", -1, &font, pointF, &solidBrush);
다음 그림에서는 이전 코드의 출력을 보여 줍니다.
앞의 예제에서 FontFamily 생성자는 글꼴 패밀리를 식별하는 문자열을 받습니다. FontFamily 개체의 주소는 Font 생성자에 첫 번째 인수로 전달됩니다. Font 생성자에 전달된 두 번째 인수는 네 번째 인수에 의해 지정된 단위로 측정된 글꼴의 크기를 지정합니다. 세 번째 인수는 글꼴의 스타일(일반, 굵게, 기울임꼴 등)을 지정합니다.
DrawString 메서드는 5개의 인수를 받습니다. 첫 번째 인수는 그릴 문자열이고 두 번째 인수는 해당 문자열의 길이(바이트가 아닌 문자)입니다. 문자열이 null로 끝나는 경우 길이에 대해 –1을 전달할 수 있습니다. 세 번째 인수는 이전에 생성된 Font 개체의 주소입니다. 네 번째 인수는 문자열의 왼쪽 위 모서리 좌표를 포함하는 PointF 개체입니다. 다섯 번째 인수는 문자열의 문자를 채우는 데 사용할 SolidBrush 개체의 주소입니다.
사각형에 텍스트 그리기
Graphics 클래스의 DrawString 메서드 중 하나에 RectF 매개 변수가 있습니다. DrawString 메서드를 호출하면 지정된 사각형에 줄 바꿈되는 텍스트를 그릴 수 있습니다. 사각형에 텍스트를 그리려면 그래픽, FontFamily, Font, RectF 및 Brush 개체가 필요합니다.
다음 예제에서는 왼쪽 위 모서리(30, 10), 너비 100 및 높이 122가 있는 사각형을 만듭니다. 그런 다음 코드는 해당 사각형 안에 문자열을 그립니다. 문자열은 사각형으로 제한되며 개별 단어가 끊어지지 않도록 래핑됩니다.
WCHAR string[] =
L"Draw text in a rectangle by passing a RectF to the DrawString method.";
FontFamily fontFamily(L"Arial");
Font font(&fontFamily, 12, FontStyleBold, UnitPoint);
RectF rectF(30.0f, 10.0f, 100.0f, 122.0f);
SolidBrush solidBrush(Color(255, 0, 0, 255));
graphics.DrawString(string, -1, &font, rectF, NULL, &solidBrush);
Pen pen(Color(255, 0, 0, 0));
graphics.DrawRectangle(&pen, rectF);
다음 그림에서는 사각형에 그려진 텍스트를 보여 줍니다.
앞의 예제에서 DrawString 메서드에 전달된 네 번째 인수는 텍스트의 경계 사각형을 지정하는 RectF 개체입니다. 다섯 번째 매개 변수는 StringFormat 형식입니다. 특수 문자열 서식 지정이 필요하지 않으므로 인수는 NULL 입니다.