MeasureString 을 사용한 사각형 영역안에 폰트 크기 수정하기
'폼에 그린 사각형 영역 안에 텍스트를 입력시킬경우 텍스트 문자열의 길이가 사각형 영역보다 클경우 글씨가 잘리는 현상이 발생한다 이현상을 막기위해 MeasureString 를 사용할수 있다.
'화면에 사각형 출력
Private Sub Screen_Rectangle_Drawing(ByVal D_String As String, ByVal Rectangle_Style As RectangleF)
eScreen.Graphics.DrawRectangle(blackPen, Rectangle_Style.X, Rectangle_Style.Y, Rectangle_Style.Width, Rectangle_Style.Height) '사각영역을 그려준다
Dim st = eScreen.Graphics.MeasureString(D_String, drawFont, Rectangle_Style.Size, drawFormat) '그려진사각영역안에 그린 문자열에대한 사이즈를 가지고 온다
Dim re_font = drawFont
Dim font_size As Integer
font_size = drawFont.Size
'문자열의 사이즈가 사각형 영역의 사이즈와 같을경우 글자가 잘린 상태이므로
'반복문 안에 폰트크기를 줄여 줄수있는 루틴을 정의 한다.
While (st.Height >= Rectangle_Style.Size.Height Or st.Width >= Rectangle_Style.Size.Width)
font_size = font_size - 1 ' 추출된 st 의 크기가 사각형 영역보다 크거나 같을경우 폰트크기를 줄인다
re_font = New Font("돋움", font_size)
st = eScreen.Graphics.MeasureString(D_String, re_font, Rectangle_Style.Size, drawFormat)
'폰트 크기를 줄인후 다시 사이즈를 st에 저장시켜본다
End While
'st 가 사각형 영역의 사이즈보다 작게된경우 반복문을 빠져나오고
사각형 영역안에 DrawString 을 사용하여 문자열을 그려준다.
eScreen.Graphics.DrawString(D_String, re_font, drawBrush, Rectangle_Style, drawFormat)
End Sub