程序的变量说明为: Dim imagearray(1 To 10, 1 To 20) As String Dim curstr As String 注释:当前的描绘字符串
1.在Form_Load()过程中加入初始化代码,如下: Private Sub Form_Load() Dim i As Integer Dim j As Integer For i = 1 To 10 For j = 1 To 20 imagearray(i, j) = " " 注释:把数组都清为空格 Next Next tops = (Form1.Height - 2000) \ 2 - 500 lefts = (Form1.Width - 4000) \ 2 For i = 0 To 199 Shape1(i).Top = tops + (i \ 20) * 200 Shape1(i).Left = lefts + (i Mod 20) * 200 Next 注释:排列控件,使之按20*10排列 curstr = "*" End Sub
2.在MouseDown过程中添加如下代码: Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Dim i As Integer Dim j As Integer If Button = 1 Then 注释:如果是左键 For i = 1 To 10 For j = 1 To 20 If (X >= lefts + (j - 1) * 200) And (X <= lefts + j * 200) And (Y >= tops + (i - 1) * 200) And (Y <= tops + i * 200) Then 注释:以上判断鼠标点在哪个控件上 imagearray(i, j) = curstr 注释:置相应的数组元素为Curstr Shape1((i - 1) * 20 + j - 1).FillColor = vbBlue 注释:控件颜色变为蓝色
End If Next Next ElseIf Button = 2 Then 注释:如果是右键 For i = 1 To 10 For j = 1 To 20 If (X >= lefts + (j - 1) * 200) And (X <= lefts + j * 200) And (Y >= tops + (i - 1) * 200) And (Y <= tops + i * 200) Then imagearray(i, j) = " " 注释:置相应的数组元素为空格 Shape1((i - 1) * 20 + j - 1).FillColor = vbWhite 注释:控件颜色变为白色 End If Next Next End If End Sub
3.在MouseDown过程添加如下代码: Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Dim i As Integer Dim j As Integer If Button = 1 Then 注释:按着鼠标左键 For i = 1 To 10 For j = 1 To 20 If (X >= lefts + (j - 1) * 200) And (X <= lefts + j * 200) And (Y >= tops + (i - 1) * 200) And (Y <= tops + i * 200) Then imagearray(i, j) = curstr 注释:置相应的数组元素为Curstr Shape1((i - 1) * 20 + j - 1).FillColor = vbBlue 注释:控件颜色变为蓝色
End If Next Next ElseIf Button = 2 Then 注释:按着鼠标右键 For i = 1 To 10 For j = 1 To 20 If (X >= lefts + (j - 1) * 200) And (X <= lefts + j * 200) And (Y >= tops + (i - 1) * 200) And (Y <= tops + i * 200) Then imagearray(i, j) = " " 注释:置相应的数组元素为空格 Shape1((i - 1) * 20 + j - 1).FillColor = vbWhite 注释:控件颜色变为白色
End If Next Next End If End Sub 4.New菜单的Click事件: Private Sub NewMenu_Click(Index As Integer) Dim i As Integer Dim j As Integer For i = 1 To 10 For j = 1 To 20 imagearray(i, j) = " " 注释:数组全清为空格 Next Next For i = 0 To 199 Shape1(i).FillColor = vbWhite 注释:控件的颜色全置为白色 Next End Sub