vb里面好像没有那个事件?做个定时器好像有点极端,那位大侠指点小弟一下,谢谢!
解决方案 »
- VB读写文件的简单问题
- 关于操作Word的几点问题?
- 我想实现当在目录窗口或资源管理器中选中文件时,得到此文件的文件名.和路径名
- DataGrid与Adodc控件绑定之后的Addnew和Update问题?
- ERP二次开发论坛欢迎加入 http://www.erpdem.com
- 关于common dialig小问题一个(在线)
- 控件设计中要在那个事件中加入判断
- 我在VB6中添加了水晶报表设计器9.0,但不能设置页面大小,总是A4大?
- ★请问★这个哪个地方出错了?
- vb简单问题一个
- 初级问题:怎么把access2000的转成Vb6可用的access7?
- ◆30元提供一套VB软件源码(含进销存和人事工资模块)◆
在里边加上对这个消息的判断
用 SetWindowLong(hWnd, GWL_WNDPROC, WndProcPrev) 'Restore the previous WndProc
然后捕获WM_MOVE进行处理你的代码
ProcOld = SetWindowLong(hwnd, GWL_WNDPROC, AddressOf WindowProc)
unload中
Call SetWindowLong(hwnd, GWL_WNDPROC, ProcOld)
WindowProc中进行处理
Public Function WindowProc(ByVal hwnd As Long, ByVal iMsg As Long, _
ByVal wParam As Long, ByVal lParam As Long) As Long
On Error GoTo handle_err Select Case iMsg
Case WM_MOVE
'*****************************8
Case Else
WindowProc = CallWindowProc(ProcOld, hwnd, iMsg, wParam, lParam)
End Select
handle_exit:
Exit Function
handle_err: If ProcOld <> 0 Then
Call SetWindowLong(hwnd, GWL_WNDPROC, ProcOld)
End If
MsgBox Err.Description
Resume handle_exit
End Function
给你罗列了一点窗口消息,你自己看看吧:
=======================
'''form代码:
Private Sub Form_Load()
prevWndProc = GetWindowLong(Me.hwnd, GWL_WNDPROC)
SetWindowLong Me.hwnd, GWL_WNDPROC, AddressOf WndProc
End SubPrivate Sub Form_Unload(Cancel As Integer)
SetWindowLong Me.hwnd, GWL_WNDPROC, prevWndProc
End Sub'''新建一个模块,代码:
Declare Function Beep Lib "kernel32" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long
Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
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
Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As LongPublic Const GWL_WNDPROC = (-4)
Public Const SC_MAXIMIZE = &HF030&
Public Const SC_MINIMIZE = &HF020&
Public Const SC_SIZE = &HF000
Public Const SC_CLOSE = &HF060
Public Const WM_SYSCOMMAND = &H112
Public Const SC_DEFAULT = &HF160
Public Const WM_NCLBUTTONDBLCLK = &HA3
Public Const SC_RESTORE = &HF120&Public prevWndProc As Long ''''默认窗口程序地址Public Function WndProc(ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
On Error GoTo ShowErr If Msg = WM_SYSCOMMAND Then
If wParam = SC_RESTORE Then
MsgBox "窗体恢复原状!"
'Exit Function '''这里如果被使用了,则移除相关操作,可以尝试使其有效
ElseIf wParam = SC_MAXIMIZE Then
MsgBox "窗体最大化!"
'Exit Function
ElseIf wParam = SC_MINIMIZE Then
MsgBox "窗体最小化!"
'Exit Function
Else
WndProc = CallWindowProc(prevWndProc, hwnd, Msg, wParam, lParam)
End If
ElseIf Msg = WM_NCLBUTTONDBLCLK Then
MsgBox "你双击了标题栏!"
'Exit Function
End If
WndProc = CallWindowProc(prevWndProc, hwnd, Msg, wParam, lParam)
Exit Function
ShowErr:
WndProc = CallWindowProc(prevWndProc, hwnd, Msg, wParam, lParam)
Exit Function
End Function