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