크기변경된 개체의 글자크기 계산식 변경

This commit is contained in:
chii
2020-11-05 22:05:11 +09:00
parent 45f2854c49
commit 33633b3982
3 changed files with 39 additions and 12 deletions

View File

@@ -5,7 +5,7 @@
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>9.0.21022</ProductVersion> <ProductVersion>9.0.21022</ProductVersion>
<SchemaVersion>2.0</SchemaVersion> <SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{78345183-B834-4478-BD7A-775BFCCE2168}</ProjectGuid> <ProjectGuid>{A8FF605F-231E-4DC1-9CD8-FD1466FDE5CD}</ProjectGuid>
<OutputType>Library</OutputType> <OutputType>Library</OutputType>
<RootNamespace>CEpole</RootNamespace> <RootNamespace>CEpole</RootNamespace>
<AssemblyName>CEpole</AssemblyName> <AssemblyName>CEpole</AssemblyName>

View File

@@ -62,8 +62,16 @@ Public Class C_label
''' </summary> ''' </summary>
''' <returns></returns> ''' <returns></returns>
''' <remarks></remarks> ''' <remarks></remarks>
Public Function GetSize(g As Graphics) As SizeF
' Return System.Windows.Forms.TextRenderer.MeasureText(text2, Font)
Return g.MeasureString(text2, Font)
End Function
Public Function GetSize() As SizeF Public Function GetSize() As SizeF
Return System.Windows.Forms.TextRenderer.MeasureText(text2, Font) Return System.Windows.Forms.TextRenderer.MeasureText(text2, Font)
'Return g.MeasureString(text2, Font)
End Function End Function
Private Sub RotateAt(ByVal gr As Graphics, ByVal cx As Integer, ByVal cy As Integer, ByVal angle As Single) Private Sub RotateAt(ByVal gr As Graphics, ByVal cx As Integer, ByVal cy As Integer, ByVal angle As Single)

View File

@@ -1508,17 +1508,34 @@ Public Class Defalut_PrintForm
If obj.WordWidth = 100 AndAlso obj.WordHeight = 100 Then '//이미지확대축소 디지않았을경우 If obj.WordWidth = 100 AndAlso obj.WordHeight = 100 Then '//이미지확대축소 디지않았을경우
Ga.DrawString(obj.text2, obj.Font, Brush, NewLeft, NewTop) Ga.DrawString(obj.text2, obj.Font, Brush, NewLeft, NewTop)
Else '//이미지확대축소 됬을경우 Else '//이미지확대축소 됬을경우
'Dim aNewX = obj.GetSize().Width * (obj.WordWidth / 100.0) '* (Ga.DpiX / SrcG.DpiX)
'Dim aNewY = obj.GetSize().Height * (obj.WordHeight / 100.0) ' * (Ga.DpiY / SrcG.DpiY)
If Not Print Then If Not Print Then
NewX = obj.GetSize.Width * (obj.WordWidth / 100) '* (Ga.DpiX / SrcG.DpiX) NewX = obj.GetSize(Ga).Width * (obj.WordWidth / 100.0) '* (Ga.DpiX / SrcG.DpiX)
NewY = obj.GetSize.Height * (obj.WordHeight / 100) ' * (Ga.DpiY / SrcG.DpiY) NewY = obj.GetSize(Ga).Height * (obj.WordHeight / 100.0) ' * (Ga.DpiY / SrcG.DpiY)
Else Else
NewX = obj.GetSize.Width * (obj.WordWidth / 100) * (Ga.DpiX / SrcG.DpiX) NewX = obj.GetSize(Ga).Width * (obj.WordWidth / 100.0) * (Ga.DpiX / SrcG.DpiX)
NewY = obj.GetSize.Height * (obj.WordHeight / 100) * (Ga.DpiY / SrcG.DpiY) NewY = obj.GetSize(Ga).Height * (obj.WordHeight / 100.0) * (Ga.DpiY / SrcG.DpiY)
End If End If
'If Not Print Then
' NewX = obj.GetSize().Width * (obj.WordWidth / 100.0) '* (Ga.DpiX / SrcG.DpiX)
' NewY = obj.GetSize().Height * (obj.WordHeight / 100.0) ' * (Ga.DpiY / SrcG.DpiY)
'Else
' NewX = obj.GetSize().Width * (obj.WordWidth / 100.0) * (Ga.DpiX / SrcG.DpiX)
' NewY = obj.GetSize().Height * (obj.WordHeight / 100.0) * (Ga.DpiY / SrcG.DpiY)
'End If
Dim BMP As New Bitmap(NewX, NewY, Ga) Dim BMP As New Bitmap(NewX, NewY, Ga)
Dim G As Graphics = Graphics.FromImage(BMP) Dim G As Graphics = Graphics.FromImage(BMP)
G.ScaleTransform((obj.WordWidth / 100), (obj.WordHeight / 100)) G.ScaleTransform((obj.WordWidth / 100.0), (obj.WordHeight / 100.0))
G.DrawString(obj.text2, obj.Font, Brush, 0, 0)
Dim sf As New StringFormat()
G.DrawString(obj.text2, obj.Font, Brush, 0.0F, 0.0F)
G.Dispose() G.Dispose()
Try Try
@@ -3061,11 +3078,12 @@ Public Class Defalut_PrintForm
Dim selitem As New ArrayList '//마우스클릭했을때 여러개가 겹친경우 해당 아이템들을 넣는곳 Dim selitem As New ArrayList '//마우스클릭했을때 여러개가 겹친경우 해당 아이템들을 넣는곳
Dim g As Graphics = CreateGraphics()
Tobj = Nothing Tobj = Nothing
For i As Integer = 0 To Me.AllLabels.GetUpperBound(0) For i As Integer = 0 To Me.AllLabels.GetUpperBound(0)
If Me.AllLabels(i).visible AndAlso Me.AllLabels(i).Text <> "" AndAlso _ If Me.AllLabels(i).visible AndAlso Me.AllLabels(i).Text <> "" AndAlso _
((e.X >= Me.AllLabels(i).Left) And e.X <= (Me.AllLabels(i).Left + Me.AllLabels(i).GetSize.Width)) _ ((e.X >= Me.AllLabels(i).Left) And e.X <= (Me.AllLabels(i).Left + Me.AllLabels(i).GetSize(g).Width)) _
AndAlso ((e.Y >= Me.AllLabels(i).Top) AndAlso (e.Y <= (Me.AllLabels(i).Top + Me.AllLabels(i).GetSize.Height))) Then AndAlso ((e.Y >= Me.AllLabels(i).Top) AndAlso (e.Y <= (Me.AllLabels(i).Top + Me.AllLabels(i).GetSize(g).Height))) Then
Tobj = Me.AllLabels(i) Tobj = Me.AllLabels(i)
selitem.Add(Me.AllLabels(i)) selitem.Add(Me.AllLabels(i))
'Exit For 'Exit For
@@ -3157,10 +3175,11 @@ Public Class Defalut_PrintForm
'//더블클릭하면 번호표시형태를 변경할수 있게한다. '//더블클릭하면 번호표시형태를 변경할수 있게한다.
If Me.DMode = E_DesignMode.Text Then If Me.DMode = E_DesignMode.Text Then
Dim Tobj As CEpole.C_label = Nothing Dim Tobj As CEpole.C_label = Nothing
Dim g As Graphics = CreateGraphics()
For i As Integer = 0 To Me.AllLabels.GetUpperBound(0) For i As Integer = 0 To Me.AllLabels.GetUpperBound(0)
If Me.AllLabels(i).visible AndAlso Me.AllLabels(i).Text <> "" AndAlso _ If Me.AllLabels(i).visible AndAlso Me.AllLabels(i).Text <> "" AndAlso _
((e.X >= Me.AllLabels(i).Left) And e.X <= (Me.AllLabels(i).Left + Me.AllLabels(i).GetSize.Width)) _ ((e.X >= Me.AllLabels(i).Left) And e.X <= (Me.AllLabels(i).Left + Me.AllLabels(i).GetSize(g).Width)) _
AndAlso ((e.Y >= Me.AllLabels(i).Top) AndAlso (e.Y <= (Me.AllLabels(i).Top + Me.AllLabels(i).GetSize.Height))) Then AndAlso ((e.Y >= Me.AllLabels(i).Top) AndAlso (e.Y <= (Me.AllLabels(i).Top + Me.AllLabels(i).GetSize(g).Height))) Then
Tobj = Me.AllLabels(i) Tobj = Me.AllLabels(i)
Exit For Exit For
End If End If