⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frm_main.frm

📁 基于51和VB的广告牌控制系统
💻 FRM
📖 第 1 页 / 共 2 页
字号:
nHeight = 3 '小块的高度,即
Stripes = Picture1.Height / nHeight '总共的小块数目n个
P2 = nHeight
P1 = Picture1.Width
For i = 0 To Picture1.Height Step nHeight
p3 = i
r% = BitBlt(Me.pic_Viewport.hdc, 0, p3, P1, P2, Me.Picture1.hdc, 0, p3, &HCC0020)
For j = 1 To 800000   ' 注释:‘等待片刻,图片从上到下出现的时间可以由此调节
Next
Next

Case 2:
pic_Viewport.Cls
nWidth = 3 '小块的宽度,即
Stripes = Picture1.Width / nWidth '总共的小块数目n个
P2 = Picture1.Height
P1 = nWidth
For i = Picture1.Width / 2 + nWidth To 0 Step -nWidth
p3 = i
p4 = Picture1.Width - i
r% = BitBlt(Me.pic_Viewport.hdc, p3, 0, P1, P2, Me.Picture1.hdc, p3, 0, &HCC0020)
r% = BitBlt(Me.pic_Viewport.hdc, p4, 0, P1, P2, Me.Picture1.hdc, p4, 0, &HCC0020)
For j = 1 To 800000 '等待片刻,图片开门效果出现的时间可以由此调节
Next
Next
       
Case 3:

pic_Viewport.Cls
nWidth = 3
mWidth = 18
Stripes = Picture1.Width / nWidth
P2 = Picture1.Height
P1 = nWidth
For j = 0 To mWidth Step nWidth
For i = 0 To Picture1.Width + nWidth Step mWidth
p3 = i + j
r% = BitBlt(Me.pic_Viewport.hdc, p3, 0, P1, P2, Me.Picture1.hdc, p3, 0, &HCC0020)
Next
For k = 1 To 8000000
Next
Next
  
Case 4:

Dim a(0 To 1000) As Integer
Dim B(0 To 400) As Integer
Dim S1, S2 As Integer
pic_Viewport.Cls

'注释: 产生随机数组
For i = 0 To 1000
a(i) = 0
Next
For i = 0 To 400
Loop1: k = Int(Rnd() * 1000) + 1
If Not (a(k) = 0) Then GoTo Loop1
a(k) = i
Next
For i = 0 To 1000
If Not (a(i) = 0) Then
B(V1) = a(i)
V1 = V1 + 1
End If
Next
'根据随机数组的值,拷贝小图片
S1 = Picture1.Width / 20
S2 = Picture1.Height / 20
For i = 0 To 400
k2 = B(i) Mod 20
k1 = ((Int(B(i)) - k2) / 20) * S2
k2 = k2 * S1
r% = BitBlt(pic_Viewport.hdc, k2, k1, S1 + 2, S2 + 2, Picture1.hdc, k2, k1, &HCC0020)
For j = 1 To 500000 '注释:wait
Next
Next

End Select

pic_Viewport.Picture = Picture1.Picture             '以上效果变化完后在快速设置一下pic_Viewport的图片

End Function


Private Sub ctrl_btn_Previous_Click()
js = js - 1
If js = 0 Then
js = zs
End If

Picture1.Picture = LoadPicture(App.Path + "\image\" & js & ".jpg")

Call picload


End Sub

Private Sub ctrl_ListObject_Click(Index As Integer)
Call caozuo(Index)
End Sub

Function caozuo(Index As Integer)
 Select Case Index
        Case 0:
           outbyte(1) = 200         '停止滚动
           MSComm1.Output = outbyte
           MSComm1.OutBufferCount = 0       '清空缓存
            
        Case 1:
           outbyte(1) = 201           '继续滚动
           MSComm1.Output = outbyte
           MSComm1.OutBufferCount = 0       '清空缓存
            
        Case 2:
           temp = 0
           temp = Int(Val(InputBox("请输入每张广告显示时间," & "当前时间为:" & sjjg & "S", "修改时间", sjjg)))
           If temp >= 1 And temp <= 99 Then
           sjjg = temp
           
           outbyte(1) = sjjg           '1-99则为时间
           MSComm1.Output = outbyte
           MSComm1.OutBufferCount = 0       '清空缓存
           
           ElseIf temp <> 0 Then
           MsgBox "输入的时间必须大于等于1秒,小于等于99秒!", vbInformation, "错误"
           End If
          
        Case 3:
           temp = 0
           temp = Int(Val(InputBox("请输入要显示的广告数量(共有3张广告)," & "现显示" & zs & "张。", "修改广告数量", zs)))
           If temp >= 2 And temp <= 3 Then
           zs = temp
           
           outbyte(1) = zs + 150         '152、153则为广告张数分别表示2、3张
           MSComm1.Output = outbyte
           MSComm1.OutBufferCount = 0       '清空缓存
           
           MsgBox "广告数量修改成功,将在下一轮生效。", vbInformation, "成功"
           
           ElseIf temp <> 0 Then
           MsgBox "输入的数至少要2张,也不能超过3张!", vbInformation, "错误"
           End If
           
        Case 4:
                      
           outbyte(1) = 203         '上一张
           MSComm1.Output = outbyte
           MSComm1.OutBufferCount = 0       '清空缓存
           
           Me.ScaleMode = 3
           ctrl_btn_Previous_Click
           
        Case 5:
            
           outbyte(1) = 204         '下一张
           MSComm1.Output = outbyte
           MSComm1.OutBufferCount = 0       '清空缓存
            
           Me.ScaleMode = 3
           ctrl_btn_Next_Click
        Case 6:
           outbyte(1) = 202         '复位
           MSComm1.Output = outbyte
           MSComm1.OutBufferCount = 0       '清空缓存
           
        Case 7:
            End
    End Select

End Function

Private Sub ctrl_ListObject_MouseMove(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)
    Select Case Index
        Case 0:
            frm_Main.lbl_Statusbar.Caption = "广告停止滚动。"
        Case 1:
            frm_Main.lbl_Statusbar.Caption = "广告以一定时间间隔滚动。"
        Case 2:
            frm_Main.lbl_Statusbar.Caption = "设置广告显示时间。"
        Case 3:
            frm_Main.lbl_Statusbar.Caption = "设置广告总数量。"
        Case 4:
            frm_Main.lbl_Statusbar.Caption = "显示上一张广告。"
        Case 5:
            frm_Main.lbl_Statusbar.Caption = "显示下一张广告。"
        Case 6:
            frm_Main.lbl_Statusbar.Caption = "硬件电路复位。"
        Case 7:
            frm_Main.lbl_Statusbar.Caption = "退出应用程序。"
    End Select
End Sub

Private Sub ctrl_PullDownMenu_Click(Index As Integer)
Me.ScaleMode = 1
    Select Case Index
        Case 1:
            PopupMenu frm_Menu.ppm_Start, , frm_Main.ctrl_PullDownMenu.Left + frm_Main.ctrl_PullDownMenu.pSelectionLeft, frm_Main.ctrl_PullDownMenu.Top + frm_Main.ctrl_PullDownMenu.pSelectionBottom
        Case 2:
            PopupMenu frm_Menu.ppm_View, , frm_Main.ctrl_PullDownMenu.Left + frm_Main.ctrl_PullDownMenu.pSelectionLeft, frm_Main.ctrl_PullDownMenu.Top + frm_Main.ctrl_PullDownMenu.pSelectionBottom
        Case 3:
            PopupMenu frm_Menu.ppm_Skins, , frm_Main.ctrl_PullDownMenu.Left + frm_Main.ctrl_PullDownMenu.pSelectionLeft, frm_Main.ctrl_PullDownMenu.Top + frm_Main.ctrl_PullDownMenu.pSelectionBottom
        Case 4:
            PopupMenu frm_Menu.ppm_Tutorials, , frm_Main.ctrl_PullDownMenu.Left + frm_Main.ctrl_PullDownMenu.pSelectionLeft, frm_Main.ctrl_PullDownMenu.Top + frm_Main.ctrl_PullDownMenu.pSelectionBottom
        Case 5:
            PopupMenu frm_Menu.ppm_Help, , frm_Main.ctrl_PullDownMenu.Left + frm_Main.ctrl_PullDownMenu.pSelectionLeft, frm_Main.ctrl_PullDownMenu.Top + frm_Main.ctrl_PullDownMenu.pSelectionBottom
    End Select
    
Me.ScaleMode = 3

End Sub


Private Sub MSComm1_OnComm()

Dim aaa As Integer

    Select Case MSComm1.CommEvent
        Case comEvReceive
            inbyte = MSComm1.Input
            aaa = CInt(inbyte(0))
            If aaa >= 1 And aaa <= 99 Then
            sjjg = aaa
            ElseIf aaa >= 101 And aaa <= 103 Then
            js = aaa - 100
            Picture1.Picture = LoadPicture(App.Path + "\image\" & js & ".jpg")
            Call picload
            ElseIf aaa >= 152 And aaa <= 153 Then
            zs = aaa - 150
            End If
            MSComm1.InBufferCount = 0           '清空缓存
    End Select
End Sub


Private Sub Form_Load()
    ctrl_SkinableForm.SkinPath = App.Path + "\Skins\Titanium"
    Call Initialize
    
    '字体闪烁颜色数组
   color = Array(&HC0C0FF, &H8080FF, &HC0&, &HFF&, &HC0&, &H8080FF, &HC0C0FF, &HC0E0FF, &H80C0FF, &H40C0&, &H80FF&, &H40C0&, &H80C0FF, &HC0E0FF, &HC0FFFF, &H80FFFF, &HC0C0&, &HFFFF&, &HC0C0&, &H80FFFF, &HC0FFFF, &HC0FFC0, &H80FF80, &H80FF80, &HFF00&, &H80FF80, &H80FF80, &HC0FFC0)
   ci = 0
   
   js = 1
   zs = 3
   sjjg = 20
   
    MSComm1.PortOpen = True
    
    outbyte(1) = 255                 '向下位机获取当前参数
    MSComm1.Output = outbyte
    MSComm1.OutBufferCount = 0       '清空缓存
    
  
End Sub

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

    frm_Main.ctrl_btn_Previous.Refresh
    frm_Main.ctrl_btn_Next.Refresh
    frm_Main.ctrl_btn_dq.Refresh
End Sub

Private Sub Form_Resize()
    If pLastTransparencyPath <> "" Then
      Call frm_Main.ctrl_TransparetForm.ShapeForm(frm_Main, pLastTransparencyPath, True)
    End If
  
End Sub

Private Sub Form_Unload(Cancel As Integer)

MSComm1.PortOpen = False

    Dim v_ctControl As Control
    
    For Each v_ctControl In frm_Main
        Set v_ctControl = Nothing
    Next v_ctControl
    End
End Sub

Private Sub Timer1_Timer()

Label1.ForeColor = color(ci)
ci = ci + 1

If ci = UBound(color) + 1 Then
ci = 0
End If
End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -