goo blog サービス終了のお知らせ 

日々のDraft

回答原案集

フォント

2006-12-12 15:15:05 | プログラム
Sub FontCreate(ByVal parameterDirect3DDevice As Microsoft.DirectX.Direct3D.Device)


FontCreate(CInt(System.Windows.Forms.Control.DefaultFont.SizeInPoints), parameterDirect3DDevice)

End Sub

Sub FontCreate(ByVal FaceName As String, ByVal parameterDirect3DDevice As Microsoft.DirectX.Direct3D.Device)

FontCreate(FaceName, CInt(System.Windows.Forms.SystemInformation.MenuFont.SizeInPoints), parameterDirect3DDevice)

End Sub

Sub FontCreate(ByVal Size As Integer, ByVal parameterDirect3DDevice As Microsoft.DirectX.Direct3D.Device)
FontCreate(System.Windows.Forms.SystemInformation.MenuFont.Name, Size, parameterDirect3DDevice)
End Sub

Sub FontCreate(ByVal FaceName As String, ByVal Size As Integer, ByVal parameterDirect3DDevice As Microsoft.DirectX.Direct3D.Device)

fd.Height = Size

fd.FaceName = FaceName

MessageManagerStringFont = New Microsoft.DirectX.Direct3D.Font(parameterDirect3DDevice, fd)

End Sub


フォント作って~♪


Function MessageWindowAutoSize(ByVal paramterMessage As String, ByVal x As Integer, ByVal y As Integer, ByVal Font As Microsoft.DirectX.Direct3D.Font) As System.Drawing.Rectangle

Dim separators As New System.Collections.Generic.List(Of String)
Dim Maxlength As Integer
Dim ReturnRectangle As System.Drawing.Rectangle
separators.Add(System.Environment.NewLine)
Maxlength = 0

Dim i As Integer
i = 0

For Each oneline As String In paramterMessage.Split(separators.ToArray, System.StringSplitOptions.None)
If oneline.Length > Maxlength Then
Maxlength = oneline.Length
End If

i = i + 1

Next

ReturnRectangle = New System.Drawing.Rectangle(x, y, 12 * Maxlength, Font.Description.Height * i)



Return ReturnRectangle
End Function

行数と最も多い文字数~もとめて♪
というわけで。強調された部分。

フォントの横幅を求めたいんですよ、横幅。
これ、暫定的に12をおいているが
fd.Width = Size
ってやって
System.Drawing.Rectangle(x, y, Font.Description.Width * Maxlength, Font.Description.Height * i)

とかやると文字がはみ出ます。何でだー


最新の画像もっと見る

post a comment

サービス終了に伴い、10月1日にコメント投稿機能を終了させていただく予定です。