Command ボタンの装飾
                                                          玄関へお回り下さい。
Command ボタンの装飾(ForeColor・Alignment の設定)           (119)
   Option Explicit   'SampleNo=119 WindowsXP VB6.0(SP5) 2002.05.22
'Picture で描画した文字や色をCommandボタンに貼り付けています。
'別途 Command ボタンの Style=1 に設定し,右クリックで最前面に移動
'PictureBox は .Appearance = 0: .BorderStyle = 0 に設定
'下図の実行前参照
Private Sub Command4_Click()
  'Command ボタンとPictureボックスの表示位置を同じに
  '別途 Picture を右クリックして最背面へ移動して置いて下さい。
  Call sCaptionSet(Command1, "ボタンの装飾", QBColor(15), 0)
  Call sCaptionSet(Command2, "ボタンの装飾", QBColor(14), 1)
  Call sCaptionSet(Command3, "ボタンの装飾", QBColor(12), 2)
End Sub
'================================================================
'      |ComBut   :表示するCommand ボタン名
' 〃⌒⌒ヽ |myCaption :Command ボタンに表示する文字
'..ノノノノ)|ForCor   :ForeColor
'★§∩ ∩ |AlignM   :Alignment 0=左揃え 1=右揃え 2=中央揃え
'彡人 ▽ノ |Pictu   :Captionを作成するPictureBox名
'   -   |
'      |CommandButtonのプロパティで設定できる部分は設定して下さい
'================================================================

Private Sub sCaptionSet(ComBut As CommandButton, myCaption As String, _
            ForCor As Long, AlignM As Integer)
  'ピクチャーボックスの設定
  With Picture1
    .Move ComBut.Left, ComBut.Top, ComBut.Width, ComBut.Height
    .AutoRedraw = True
    .Cls
    .ForeColor = ForCor
    'Caption 以外はCommand ボタンのプロパティで設定して下さい
    '後はCommand ボタンのプロパティの通りの設定
    .BackColor = ComBut.BackColor
    .FontBold = ComBut.FontBold
    .FontName = ComBut.FontName
    .FontSize = ComBut.FontSize
    .FontItalic = ComBut.FontItalic
    .FontUnderline = ComBut.FontUnderline
  End With
  If AlignM > 2 Or AlignM < 1 Then
    AlignM = 0
  End If
  With Picture1
    Select Case AlignM
      Case 0  '左揃え
        .CurrentX = 100 '余白分
        .CurrentY = (ComBut.Height - .TextHeight("W")) \ 2
      Case 1  '右揃え
        .CurrentX = (ComBut.Width - .TextWidth(myCaption)) - 100
        .CurrentY = (ComBut.Height - .TextHeight("W")) \ 2
      Case 2  '中央揃え
        .CurrentX = (ComBut.Width - .TextWidth(myCaption)) \ 2
        .CurrentY = (ComBut.Height - .TextHeight("W")) \ 2
    End Select
  End With
  'Picture Box にCaption の内容を描画する
  Picture1.Print myCaption
  'Picture BoxをコマンドボタンのCaptionに貼り付け
  Set ComBut.Picture = Picture1.Image
End Sub

  実行前                 実行後
    
   Command ボタンの Caption はForeColor Alignmentの設定ができません。
Captionに表示する文字列を左揃えするには文字の後ろにスペースを付加するかAPIを使えば
できます。
又、ForeColor は Micrsoft Forms 2.0 Object Library の CommandButton を使用すれば ForeColor も変更できます。
前もって、BMPファイルでボタンの表面の画像を作っておき、それを貼り付ける方法等がありますが、今回は、それらの長所をいかして表示するプロシージャを作ってみました。
方法は、コマンドボタンと同じ大きさのピクチャーを用意しておき、そのピクチャーにプログラム上で表示して貼り付けております。


2003/11/04


VBレスキュー(花ちゃん)
Visual Basic6.0  VB6.0