自定义处理窗体的移动消息WM_MOVE
来源:互联网 发布:seo外包公司如何优化 编辑:程序博客网 时间:2024/06/10 03:31
标准模块中:
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 Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public Const GWL_WNDPROC = (-4)
Public Const WM_MOVE = &H3
Public procOld As Long '保存原来的窗体处理的地址
消息回调函数
Public Function SysProc(ByVal hwnd As Long, ByVal iMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Static i As Integer, j As Integer
If iMsg = WM_MOVE Then MsgBox "Move" '先处理自定义消息
SysProc = CallWindowProc(procOld, hwnd, iMsg, wParam, lParam)
'再处理系统定义消息
End Function
'窗口
Private Sub Form_Load()
'procOld = GetWindowLong(Me.hwnd, GWL_WNDPROC)
procOld = SetWindowLong(hwnd, GWL_WNDPROC, AddressOf SysProc)
'获得原消息处理句柄,并将消息处理转交自定义函数
End Sub
Private Sub Form_Unload(Cancel As Integer)
SetWindowLong hwnd, GWL_WNDPROC, procOld
End Sub
注意点:请千万要在Form_Unload中还原原有的信息处理循环函数调用地址,否则程序运行将出错!
- 自定义处理窗体的移动消息WM_MOVE
- WM_MOVE 窗体移动后的位置
- C# 窗体处理自定义消息
- C# 自定义窗体移动窗体的方法
- 自定义消息的处理
- winform中自定义的窗体移动代码
- Delphi 自定义窗体(最大化、最小化、关闭、窗体的移动)
- 窗体和消息处理
- 窗体移动(消息欺骗应用)
- WinForm之拦截双击标题栏/移动窗体的系统消息
- 移动窗体的函数,在窗体的WM_LBUTTONDOWN消息中,响应下面的函数
- Qt学习笔记:自定义窗体的移动+控件图标
- 通过自定义消息调用主窗体的菜单项
- c++多线程读写窗体控件_自定义消息的实现
- c++多线程读写窗体控件_自定义消息的实现
- c++多线程读写窗体控件_自定义消息的实现
- 捕获窗体移动并处理
- C# 窗体和消息处理
- 为什么在国内没有买的很好的共享软件呢
- ASP.NET中如何防范SQL注入式攻击
- Hibernate
- C语言之指针、数组和函数
- ASP.NET中将数据输出到Excel
- 自定义处理窗体的移动消息WM_MOVE
- 在ASP.NET中从SQL Server检索图片
- 简单的抓取屏幕生成位图文件(不用内存图象拷贝API函数)
- 实现金山快译工具条的自动收缩功能
- java.lang.Byte翻译
- native2ascii-本地码-至-ASCII 码转换器
- 美国人日常生活中常用的五星级句子
- 字符过滤函数
- Entity Bean vs Hibernate Pojo