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

📄 module1.bas

📁 LED显示屏控制卡的编程例程
💻 BAS
字号:
Attribute VB_Name = "Module1"
Public Declare Sub SetRect Lib "user32" (ARect As rect, ByVal left As Long, ByVal top As Long, ByVal right As Long, ByVal bottom As Long)
Public Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndProc As Long, ByVal hWnd As Long, ByVal Message As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwValue As Long) As Long
Public Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hWnd As Long, ByVal Message As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

Const GWL_WNDPROC = (-4)
Const WM_USER = 1024
Public Const WM_LED_NOTIFY = WM_USER + 1
Global lpPrevWndProc As Long

Public Sub Hook(ByVal hWnd As Long)
  lpPrevWndProc = SetWindowLong(hWnd, GWL_WNDPROC, AddressOf WndProc)
End Sub

Public Sub UnHook(ByVal hWnd As Long)
  SetWindowLong hWnd, GWL_WNDPROC, lpPrevWndProc
End Sub


Function WndProc(ByVal hWnd As Long, ByVal Message As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

  Dim P As TNotifyMessage
  
  If Message = WM_LED_NOTIFY Then
    If LED_GetNotifyMessage(P) <> 0 Then  '该函数专门为VB编写,使用该函数可得到发送状态结构
      If P.Message = LM_TX_COMPLETE Then
        Form1.Caption = "发送完成"
      ElseIf P.Message = LM_RESPOND Then
        If P.Command = PKC_QUERY Then
          Form1.Caption = "查询状态成功"
        ElseIf P.Command = PKC_GET_POWER Then
          If P.Status = LED_POWER_ON Then
            Form1.Caption = "电源已打开"
          Else:
            Form1.Caption = "电源已关闭"
          End If
        ElseIf P.Command = PKC_SET_POWER Then
          If P.Result = 99 Then
            Form1.Caption = "处于自动开关屏模式,不能进行电源操作"
          ElseIf P.Status = LED_POWER_ON Then
            Form1.Caption = "电源已打开"
          ElseIf P.Status = LED_POWER_OFF Then
            Form1.Caption = "电源已关闭"
          End If
        ElseIf P.Command = PKC_GET_BRIGHT Then
          Form1.Caption = "显示屏亮度为:" & P.Status
        ElseIf P.Command = PKC_SET_BRIGHT Then
          Form1.Caption = "亮度调整完毕"
        ElseIf P.Command = PKC_ADJUST_TIME Then
          Form1.Caption = "时钟校正完成"
        End If
      End If
    ElseIf P.Message = LM_TIMEOUT Then
      Form1.Caption = "传送超时"
    End If
  Else
    WndProc = CallWindowProc(lpPrevWndProc, hWnd, Message, wParam, lParam)
  End If
  
End Function

⌨️ 快捷键说明

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