我想做个窗体,用鼠标点击窗体部分并按住就能拖动窗体移动,而不需要按窗体的标题栏来拖动。
这个功能怎么实现?代码怎么写呢?谢谢达人帮忙解决!
这个功能怎么实现?代码怎么写呢?谢谢达人帮忙解决!
解决方案 »
- 如何在vb 6.0(XP)下实现usb摄像头的图片截取及保存图片
- 狼终于来了~~~~
- 通过sql语句能否得到这样的结果
- 向高手请教:如何用vb将excel转化为xml文档?
- 怎么要TEXT响应回车键?》????
- 200分求教!!! 如何实现VB ActiveX DLL的Singleton Patten?
- VBA中使用internetexplorer的filedownload事件提示错误,请各位大侠帮忙看看!
- VB
- 谁招程序员?(我是长沙的)
- inputbox不能输入中文是怎么回事?3x
- 重分奖励(200分,回答得100分后再赠送100分)---如何在EXCEL中用VBA编程读取LOTUS1-2-3文件(含多个sheet),
- 上标在字符串中位置
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Const WM_NCLBUTTONDOWN = &HA1
Private Const HTCAPTION = 2Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
Call ReleaseCapture
Call SendMessage(Me.hwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0)
End If
End Sub放在任何控件或者窗体的mousedown中就可以
dim ix as integer,iy as integersub form_mousedown(button As .....)
b=ture
ix=x
iy =y
end subsub form1_mousemove(.......)
if not b then exit sub
me.move me.left+x-ix,me.top+y-iy
end subsub form1_mouseup(........)
b=0
end sub
不过 me.move me.left+x-ix,me.top+y-iy 这行代码现在还是有点不太理解,其中的ix和iy这两个量应该是不变的,它们是鼠标刚点击窗体时在窗体里的坐标,而me.left、me.top、x、y这四个量是一直在变化的,那怎么上面的那行代码就实现了鼠标与窗体没有发生相对移动呢?小生刚学VB不到一个月,还望大虾讲清楚啊,谢谢老~~