VB6中如何实现 鼠标双击标题栏什么也不作?谢谢!

blueer 2002-04-24 03:49:12
如上
...全文
103 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
jyu1221 2002-04-25
  • 打赏
  • 举报
回复
''---------------------以下代码必须放在模块中---------------------
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private 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
Private Const GWL_WNDPROC = (-4)
Private Const WM_NCLBUTTONDBLCLK = &HA3

Private m_lpPrevWndProc As Long



Public g_hWnd As Long


Function WindowProc(ByVal hwnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
If uMsg <> WM_NCLBUTTONDBLCLK Then
WindowProc = CallWindowProc(m_lpPrevWndProc, hwnd, uMsg, wParam, lParam)
End If
End Function

Public Function Hook() As Boolean
Hook = True
If g_hWnd = 0 Then
Hook = False
Exit Function
End If
m_lpPrevWndProc = SetWindowLong(g_hWnd, GWL_WNDPROC, AddressOf WindowProc)
End Function

Public Function UnHook() As Boolean
Call SetWindowLong(g_hWnd, GWL_WNDPROC, m_lpPrevWndProc)
End Function

'----------模块代码结束------------------------------

'使用方法
'1.设置g_hWnd变量为需要的窗口句柄
'如:g_hWnd = Me.hwnd
'2.调用函数Hook就可以实现你需要的功能,调用函数UnHook就可以去掉该功能

'-------------此代码在VB6。0的调试状态,NATIVE CODE状态,P-CODE状态-都可以运行-------测试通过!!!--------
printer 2002-04-25
  • 打赏
  • 举报
回复
同意sonicdater(发呆呆)的说法.
警告:注意危险性,如果重载窗口函数,很容易让你的程序死掉,记着设置为自动存盘.
tnt_tnt 2002-04-25
  • 打赏
  • 举报
回复
可以把这个窗口的句柄屏蔽了
这样就从根本上解决了问题!
blueer 2002-04-25
  • 打赏
  • 举报
回复
To 288794:
请继续指点菜鸟Blueer,谢谢
288794 2002-04-25
  • 打赏
  • 举报
回复
拦截“WM_NCLBUTTONDBLCLK”消息!!!
根据 wparam 和 lparam 来判断点击的项目。
blueer 2002-04-25
  • 打赏
  • 举报
回复
To 发呆呆&打印机:
能否详细一些?谢谢
wqb 2002-04-25
  • 打赏
  • 举报
回复
gz
fadestarfish 2002-04-25
  • 打赏
  • 举报
回复
把最大化按钮设成不可用就行了吧!
zyl910 2002-04-25
  • 打赏
  • 举报
回复
拦截“WM_NCLBUTTONDBLCLK”消息!!!
tg123 2002-04-25
  • 打赏
  • 举报
回复
这个不可能
因为鼠标双击标题栏和最大化,最小化按钮
产生的是同一条消息
daryl715 2002-04-24
  • 打赏
  • 举报
回复
可以隐藏标题栏
sonicdater 2002-04-24
  • 打赏
  • 举报
回复
用 Subclass , 拦截 鼠标的 WM_LBUTTONDOWN,WM_LBUTTONUP 之类的消息.
blueer 2002-04-24
  • 打赏
  • 举报
回复
up
blueer 2002-04-24
  • 打赏
  • 举报
回复
to 阿甘:
我想允许通过最大化,最小化按钮或拖动钮调整窗口大小,但不响应标题栏的双击。ActiveSkin控件破解后存在双击标题栏非法操作的问题,如有好用的ActiveSkin破解版亦可,谢谢!
gump2000 2002-04-24
  • 打赏
  • 举报
回复
设计时候boardstyle=1就可以了啊。
blueer 2002-04-24
  • 打赏
  • 举报
回复
大家来讨论讨论

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧