📄 comboexsubclass.bas
字号:
Attribute VB_Name = "SubClass"
Option Private Module
Option Explicit
Public NextProcs As Long
Public NextProcs1 As Long
Public Nodef As Boolean
Public Const WM_SIZE = &H5
Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Any) As Long
Public Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal wndrpcPrev As Long, ByVal hWnd As Long, ByVal uMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Public Const GWL_USERDATA = (-21)
Public Const GWL_WNDPROC = -4
Public DemoLoaded As Boolean
Public Demo1Loaded As Boolean
Declare Function SendMessage Lib "user32" Alias "SendMessageW" (ByVal hWnd As Long, ByVal uMgs As Long, ByVal wParam As Long, lParam As Any) As Long
Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDest As Any, pSrc As Any, ByVal ByteLen As Long)
Public Function WindowProcDemo1(ByVal hWnd As Long, ByVal uMsg As Long, _
ByVal wParam As Long, ByVal lParam As Long) As Long
On Error Resume Next
Select Case hWnd
Case Demo1.hWnd
Demo1.ProcMsg hWnd, uMsg, wParam, lParam, 0& ', 0&
End Select
If Nodef = True Then
WindowProcDemo1 = CallWindowProc(NextProcs1, hWnd, uMsg, wParam, ByVal lParam)
Else
Nodef = False
Nodef = True
End If
End Function
Public Function WindowProcDemo(ByVal hWnd As Long, ByVal uMsg As Long, _
ByVal wParam As Long, ByVal lParam As Long) As Long
On Error Resume Next
Select Case hWnd
Case Demo.hWnd
Demo.ProcMsg hWnd, uMsg, wParam, lParam, 0& ', 0&
End Select
If Nodef = True Then
WindowProcDemo = CallWindowProc(NextProcs, hWnd, uMsg, wParam, ByVal lParam)
Else
Nodef = False
Nodef = True
End If
End Function
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -