VBレスキュー(花ちゃん)
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ各掲示板

メニューへ戻ります。 Button 関係のメニュー
1.Button コントロールに関するワンポイントテクニック集
2.ボタン等のテキストを影付き文字等色々なスタイルで表示
3.円形のボタンを作成する 
4. 
5. 
6.
7.
8. 
9. 
10. 
11.
12.
 . 
20.その他、当サイト内に掲載の Button に関するサンプル


2.ボタン等のテキストを影付き文字等色々なスタイルで表示(15_But_02) (旧、SampleNo.344)
1.ボタン等のテキストを影付き文字等色々なスタイルで表示
2.
3.
4.
5.
6.

上記以外に、コントロール共通関係 のところやこれ以外のコントロールのところに書いてある場合もありますので、そちらの方もご覧ください。

 下記プログラムコードに関する補足・注意事項 
動作確認:Windows 8.1 (Windows 7) / VB2013 (VB2010) / Framework 4.5.1 / 対象の CPU:x86
Option :[Compare Text] [Explicit On] [Infer On] [Strict On]
Imports :追加なし
参照設定:
追加なし
その他 :
    :
このサンプル等の内容を無断で転載、掲載、配布する事はお断りします。(私の修正・改訂・削除等が及ばなくなるので)
必要ならリンクをはるようにして下さい。(引用の場合は引用元のリンクを明記して下さい)
このページのトップへ移動します。 1.ボタン等のテキストを影付き文字等色々なスタイルで表示

Public Class Form1

#Region "本文関係の処理(Button_Click イベントの処理等)"

Private Sub Button1_Paint(sender As Object, e As PaintEventArgs) Handles Button1.Paint
'Silver 色の文字の上に2Pixel ずらした、Black 色の文字を重ねて描画して影付き文字を作成
    Button1.Text = ""
    Button1.Size = New Size(Label13.Width, CInt(Label13.Height * 1.75))
    'テキストをアンチエイリアス処理して表示(効果はあまり見られないが)
    e.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias
    e.Graphics.DrawString("影付き文字", _
                New Font("MS Pゴシック", 20, FontStyle.Bold), Brushes.Silver, fX + 1, fY + 1)
    e.Graphics.DrawString("影付き文字", _
                New Font("MS Pゴシック", 20, FontStyle.Bold), Brushes.Black, fX - 1, fY - 1)
End Sub

Private Sub Button2_Paint(sender As Object, e As PaintEventArgs) Handles Button2.Paint
'GraphicsPath と DrawPath を使って中抜き文字を作成(文字内部は無色です。)
    Button2.Text = ""
    Button2.Size = New Size(Label13.Width, CInt(Label13.Height * 1.75))
    Using gp As New System.Drawing.Drawing2D.GraphicsPath
        gp.AddString("中抜き文字", New FontFamily("MS Pゴシック"), FontStyle.Bold, fh, _
                                    New Point(fX, fY), StringFormat.GenericDefault)
        'テキストをアンチエイリアス処理して表示
        e.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias

        '文字の縁の部分を描画
        e.Graphics.DrawPath(Pens.Red, gp)
    End Using
End Sub

Private Sub Button3_Paint(sender As Object, e As PaintEventArgs) Handles Button3.Paint
'2Pixelづつずらして4個描画した上に、バックカラーで文字を描画して中抜き文字を作成(こちらの方が綺麗)
    Button3.Text = ""
    Button3.Size = New Size(Label13.Width, CInt(Label13.Height * 1.75))
    'テキストをアンチエイリアス処理して表示
    e.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias
    e.Graphics.DrawString("中抜き文字", New Font("MS Pゴシック", 20, FontStyle.Regular), _
                                    New SolidBrush(Color.Red), fX, fY + 1)
    e.Graphics.DrawString("中抜き文字", New Font("MS Pゴシック", 20, FontStyle.Regular), _
                                    New SolidBrush(Color.Red), fX, fY - 1)
    e.Graphics.DrawString("中抜き文字", New Font("MS Pゴシック", 20, FontStyle.Regular), _
                                    New SolidBrush(Color.Red), fX + 1, fY)
    e.Graphics.DrawString("中抜き文字", New Font("MS Pゴシック", 20, FontStyle.Regular), _
                                    New SolidBrush(Color.Red), fX - 1, fY)

    e.Graphics.DrawString("中抜き文字", New Font("MS Pゴシック", 20, FontStyle.Regular), _
                                    New SolidBrush(Button3.BackColor), fX, fY)
End Sub

Private Sub Button4_Paint(sender As Object, e As PaintEventArgs) Handles Button4.Paint
'GraphicsPath と DrawPath を使って中抜き文字を作成し文字内部を赤色で塗潰して縁取り文字を作成
    Button4.Text = ""
    Button4.Size = New Size(Label13.Width, CInt(Label13.Height * 1.75))
    Using gp As New System.Drawing.Drawing2D.GraphicsPath
        'テキストをアンチエイリアス処理して表示
        e.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias
        gp.AddString("縁取り文字", New FontFamily("MS Pゴシック"), FontStyle.Bold, fh, _
                                    New Point(fX, fY), StringFormat.GenericDefault)
        e.Graphics.FillPath(Brushes.Red, gp)
        e.Graphics.DrawPath(Pens.Blue, gp)
    End Using
End Sub

Private Sub Button5_Paint(sender As Object, e As PaintEventArgs) Handles Button5.Paint
'5個の文字を重ねて描画した中抜き文字と同じ手法で縁取り文字を作成(こちらの方が見た目が綺麗)
    Button5.Text = ""
    Button5.Size = New Size(Label13.Width, CInt(Label13.Height * 1.75))
    'テキストをアンチエイリアス処理して表示
    e.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias
    e.Graphics.DrawString("縁取り文字", New Font("MS Pゴシック", 20, FontStyle.Regular), _
                                    New SolidBrush(Color.Blue), fX, fY + 1)
    e.Graphics.DrawString("縁取り文字", New Font("MS Pゴシック", 20, FontStyle.Regular), _
                                    New SolidBrush(Color.Blue), fX, fY - 1)
    e.Graphics.DrawString("縁取り文字", New Font("MS Pゴシック", 20, FontStyle.Regular), _
                                    New SolidBrush(Color.Blue), fX + 1, fY)
    e.Graphics.DrawString("縁取り文字", New Font("MS Pゴシック", 20, FontStyle.Regular), _
                                    New SolidBrush(Color.Blue), fX - 1, fY)

    e.Graphics.DrawString("縁取り文字", New Font("MS Pゴシック", 20, FontStyle.Regular), _
                                    New SolidBrush(Color.Red), fX, fY)
End Sub

Private Sub Button6_Paint(sender As Object, e As PaintEventArgs) Handles Button6.Paint
'線形グラデーションをかけて文字を描画、影文字も線形グラデーションをかけて描画して影付き文字を作成
    Button6.Text = ""
    Button6.Size = New Size(Label13.Width, CInt(Label13.Height * 1.75))
    Using br1 As New System.Drawing.Drawing2D.LinearGradientBrush( _
            Button2.ClientRectangle, Color.Yellow, Color.Black, _
            System.Drawing.Drawing2D.LinearGradientMode.Horizontal)
    Using br2 As New System.Drawing.Drawing2D.LinearGradientBrush( _
            Button6.ClientRectangle, Color.Blue, Color.Red, _
            System.Drawing.Drawing2D.LinearGradientMode.Horizontal)
        'テキストをアンチエイリアス処理して表示
        e.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias
        e.Graphics.DrawString("影付き文字", _
                    New Font("MS Pゴシック", 20, FontStyle.Bold), br1, fX + 2, fY + 2)
        e.Graphics.DrawString("影付き文字", _
                    New Font("MS Pゴシック", 20, FontStyle.Bold), br2, fX, fY)
    End Using
    End Using
End Sub

Private Sub Button7_Paint(sender As Object, e As PaintEventArgs) Handles Button7.Paint
'vb3DShadowとvb3DHighlightの2色使って凹み文字を作成(凹んだように見えるでしょうか?)
    Button7.Text = ""
    Button7.Size = New Size(Label13.Width, CInt(Label13.Height * 1.75))
    'テキストをアンチエイリアス処理して表示
    e.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias
    e.Graphics.DrawString("凹む文字?", New Font("MS Pゴシック", 20, FontStyle.Bold), _
                                    New SolidBrush(ColorTranslator.FromWin32(-2147483628)), fX + 2, fY + 2)
    e.Graphics.DrawString("凹む文字?", New Font("MS Pゴシック", 20, FontStyle.Bold), _
                                    New SolidBrush(ColorTranslator.FromWin32(-2147483632)), fX, fY)
End Sub

Private Sub Button8_Paint(sender As Object, e As PaintEventArgs) Handles Button8.Paint
'vb3DShadowとvb3DHighlightの2色使って凸む(つばく・む)文字を作成(凸む文字と呼ぶのが正しいかは?)
    Button8.Text = ""
    Button8.Size = New Size(Label13.Width, CInt(Label13.Height * 1.75))
    'テキストをアンチエイリアス処理して表示
    e.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias
    e.Graphics.DrawString("凸む文字?", New Font("MS Pゴシック", 20, FontStyle.Bold), _
                                    New SolidBrush(ColorTranslator.FromWin32(-2147483632)), fX + 2, fY + 2)
    e.Graphics.DrawString("凸む文字?", New Font("MS Pゴシック", 20, FontStyle.Bold), _
                                    New SolidBrush(ColorTranslator.FromWin32(-2147483628)), fX, fY)
End Sub

Private Sub Button9_Paint(sender As Object, e As PaintEventArgs) Handles Button9.Paint
'TextureBrush を使って画像で文字を描画
    Button9.Text = ""
    Button9.Size = New Size(Label13.Width, CInt(Label13.Height * 1.75))
    Using tbr As New TextureBrush(Image.FromFile("..\..\..\data_pic\test344.jpg"))
        'テキストをアンチエイリアス処理して表示
        e.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias
        e.Graphics.DrawString("画像で文字", _
                New Font("MS Pゴシック", 20, FontStyle.Bold), tbr, fX, fY)
    End Using
End Sub

Private Sub Button10_Paint(sender As Object, e As PaintEventArgs) Handles Button10.Paint
'HatchBrush 及び HatchStyle=Percent50 を使って文字を描画(フォントサイズが小さいと効果がでない)
    Button10.Text = ""
    Button10.Size = New Size(Label13.Width, CInt(Label13.Height * 1.75))
    Dim hs As System.Drawing.Drawing2D.HatchStyle = Drawing2D.HatchStyle.Percent50
    Using hbr As New System.Drawing.Drawing2D.HatchBrush(hs, Color.Red, Color.Blue)
        'テキストをアンチエイリアス処理して表示
        e.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias
        e.Graphics.DrawString("ハッチ文字", _
                New Font("MS Pゴシック", 20, FontStyle.Bold), hbr, fX, fY)
    End Using
End Sub

Private Sub Button11_Paint(sender As Object, e As PaintEventArgs) Handles Button11.Paint
'HatchBrush 及び HatchStyle=LightDownwardDiagonal を使って文字を描画し影を追加
    Button11.Text = ""
    Button11.Size = New Size(Label13.Width, CInt(Label13.Height * 1.75))
    Dim hs As System.Drawing.Drawing2D.HatchStyle = Drawing2D.HatchStyle.LightDownwardDiagonal
    'テキストをアンチエイリアス処理して表示
    e.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias
    e.Graphics.DrawString("ハッチ+影", _
                New Font("MS Pゴシック", 20, FontStyle.Bold), Brushes.Black, fX + 2, fY + 2)
    Using hbr As New System.Drawing.Drawing2D.HatchBrush(hs, Color.Yellow, Color.Red)
        e.Graphics.DrawString("ハッチ+影", _
                New Font("MS Pゴシック", 20, FontStyle.Bold), hbr, fX, fY)
    End Using
End Sub

Private Sub Button12_Paint(sender As Object, e As PaintEventArgs) Handles Button12.Paint
'HatchBrush 及び HatchStyle=SmallCheckerBoard を使って文字を描画し縁を追加
    Button12.Text = ""
    Button12.Size = New Size(Label13.Width, CInt(Label13.Height * 1.75))
    Dim hs As System.Drawing.Drawing2D.HatchStyle = Drawing2D.HatchStyle.SmallCheckerBoard
    Using hbr As New System.Drawing.Drawing2D.HatchBrush(hs, Color.Yellow, Color.Red)
    Using gp As New System.Drawing.Drawing2D.GraphicsPath
        'テキストをアンチエイリアス処理して表示
        e.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias
        gp.AddString("ハッチ+縁", New FontFamily("MS Pゴシック"), FontStyle.Bold, fh, _
                                    New Point(fX, fY), StringFormat.GenericDefault)
        e.Graphics.FillPath(hbr, gp)
        e.Graphics.DrawPath(Pens.Blue, gp)
    End Using
    End Using
End Sub

#End Region

#Region "起動時の処理(Form1_Load イベント等の処理"

Private fh As Integer
Private fX As Integer
Private fY As Integer

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    fh = CInt(Label13.Height)
    fX = CInt(Label13.Height / 4)
    fY = CInt(Label13.Height / 2) - 2
    Label13.Visible = False
End Sub

#End Region

End Class

  図1.上記実行図
 vb2013button02_1

このページのトップへ移動します。 2.


このページのトップへ移動します。 3.


このページのトップへ移動します。 4.


このページのトップへ移動します。 5. 



このページのトップへ移動します。 6.


このページのトップへ移動します。 検索キーワード及びサンプルコードの別名(機能名)
影付き文字の作成  中抜き文字(2種類)  縁取り文字(2種類)  グラデーションで影付き文字  凹んだ形の文字  凸む(つばく・む)文字?  文字色に画像を使った文字
色々ハッチスタイルの文字  グラフィックスで文字を描画する  コントロールの表面に文字を描画する



このページのトップへ移動します。