让窗体的标题栏不相应鼠标双击

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 40star 的 blog

还等什么,让我们现在开始。

1。新建一个vb6的标准exe工程,然后添加一个模块,将下列代码加入新的模块中:

option explicit
                   
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
       
const gwl_wndproc = (-4&)

dim prevwndproc&

const wm_nclbuttondblclk = &ha3
 
public sub init(hwnd as long)
  prevwndproc = setwindowlong(hwnd, gwl_wndproc, addressof subwndproc)
end sub

public sub terminate(hwnd as long)
  call setwindowlong(hwnd, gwl_wndproc, prevwndproc)
end sub

private function subwndproc(byval hwnd as long, byval msg as long, _
                            byval wparam as long, byval lparam as long) _
                            as long
 
  if msg = wm_nclbuttondblclk then
     exit function
  end if
 
  subwndproc = callwindowproc(prevwndproc, hwnd, msg, wparam, lparam)
end function

2。在窗体的load事件中加入一下代码:

private sub form_load()
call init(me.hwnd)
end sub

3。最后在窗体的unload事件中加入:

private sub form_unload(cancel as integer)
call terminate(me.hwnd)
end sub

好啦,可以运行我们创建的这个工程了,现在双击窗体的标题栏是不是和以前不一样啊!

:)

以上程序在win2000中文版、vb6下编译运行通过
                    

 

本文关键:WM_NCLBUTTONDBLCLK
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top