📄 module1.bas
字号:
Attribute VB_Name = "Module1"
Public Declare Function SetWindowLong Lib "user32" _
Alias "SetWindowLongA" _
(ByVal hwnd As Long, _
ByVal nIndex As Long, _
ByVal dwNewLong As Long) _
As Long
Public Declare Function GetWindowLong Lib "user32" _
Alias "GetWindowLongA" _
(ByVal hwnd As Long, _
ByVal nIndex As Long) _
As Long
Public Declare Function CallWindowProc Lib "user32" _
Alias "CallWindowProcA" _
(ByVal lpPrevWndFunc As Long, _
ByVal hwnd As Long, _
ByVal Msg As Long, _
ByVal wParam As Long, _
ByVal lParam As Long) _
As Long
'定义常数
Public Const GWL_WNDPROC = (-4)
Public Const WM_QUERYENDSESSION = &H11
'全局变量,存放控件标志性数据
Public preWinProc As Long
Public m_AllowExit As Boolean
'本函数就是用来接收子分类时截取的消息的
Public Function wndproc(ByVal hwnd As Long, ByVal Msg As Long, _
ByVal wParam As Long, ByVal lParam As Long) As Long
'截取下来的消息存放在msg参数中.
If (Msg = WM_QUERYENDSESSION) And (m_AllowExit = False) Then
'检测到消息,这里就可以加入处理代码
'需要注意,如果这儿不加入任何代码,则相当于吃掉了这条消息.
Else
'如果不是需要处理的消息,则将之送回原来的程序.
wndproc = CallWindowProc(preWinProc, hwnd, Msg, wParam, lParam)
End If
End Function
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -