0

ラベルを使用してゲーム メニューをシミュレートしたい。私がやりたいのは、マウスを上に置くと、フォントが大きくなり、フォントの色が変わることです。Visual Basic 6.0 で配列だけを使用してこれを行う既存のコードはありますか? 手動で行うと、かなりの時間がかかるためです。私を助けてください。

4

2 に答える 2

0

マウスの入力をキャッチして、イベントを終了する必要があります。これは古いものですが、TrackMouseEventAPIを使用してマウスイベントをキャッチしてみることができます。APIを実装するクラスへのリンクhttp://www.vbaccelerator.com/home/VB/Code/Libraries/Subclassing/Generating_MouseLeave_Events_for_a_Window/article.aspを次に示し、その使用例を示します。ただし、この記事は古く、Win 95までの使用についてのみ説明しているため、まだサポートされているかどうかを確認するために簡単なテストを行う必要があります。

于 2012-09-27T15:29:03.800 に答える
0

ラベルの配列を作成するには:フォームにラベルを配置し、基本的に1つのラベルの配列を作成するインデックス0を指定します。これをコードで展開できます

'1 form with :
'    1 label : name=Label1    Index=0
Option Explicit

Private Sub Form_Load()
  Dim intIndex As Integer
  For intIndex = 1 To 4
    Load Label1(intIndex)
    Label1(intIndex).Visible = True
    Label1(intIndex).Caption = CStr(intIndex)
  Next intIndex
End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
  OnLabel False
End Sub

Private Sub Form_Resize()
  Dim intIndex As Integer
  Dim sngWidth As Single, sngHeight As Single
  Dim sngLblWidth As Single
  sngWidth = ScaleWidth
  sngHeight = ScaleHeight
  sngLblWidth = sngWidth / Label1.Count
  For intIndex = 0 To Label1.Count - 1
    Label1(intIndex).Move intIndex * sngLblWidth, 0, sngLblWidth
  Next intIndex
End Sub

Private Sub Label1_MouseMove(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)
  OnLabel True
End Sub

Private Sub OnLabel(blnOn As Boolean)
  Dim intIndex As Integer
  Dim intSize As Integer
  Dim lngColor As Long
  If blnOn Then
    intSize = 20
    lngColor = vbRed
  Else
    intSize = 10
    lngColor = vbBlack
  End If
  For intIndex = 0 To Label1.Count - 1
    With Label1(intIndex)
      .FontSize = intSize
      .ForeColor = lngColor
    End With 'Label1(intIndex)
  Next intIndex
End Sub
于 2012-11-08T15:12:46.323 に答える