难道这个是VB6的超级大坑?

高手都到碗里来 2009-04-13 03:02:20
难道这个是VB6的超级大坑?


随便弄个控件
Option Explicit
Public Event MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Private Sub UserControl_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
RaiseEvent MouseMove(Button, Shift, X, Y)
End Sub
Public Property Get hwnd() As Long
hwnd = UserControl.hwnd
End Property

再来个Exe工程

Option Explicit
'移动控件
Private Declare Function ReleaseCapture Lib "user32" () As Long
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_SYSCOMMAND = &H112
Private Const SC_MOVE = &HF010&
Private Const HTCAPTION = 2
Public Sub MoveWindow(ByVal hwnd As Long)
Dim ret As Long
ReleaseCapture
ret = SendMessage(hwnd, WM_SYSCOMMAND, SC_MOVE + HTCAPTION, 0)
End Sub

Private Sub Command1_Click()
MsgBox UserControl11.Left
End Sub
Private Sub UserControl11_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Call MoveWindow(UserControl11.hwnd)
End Sub

运行以后你会发现,移动控件以后控件的left属性没有变。。。。。
但是,郁闷的事情在于,windows自带的控件就不会出现这样的事,这个坑太大了吧
...全文
73 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
嗷嗷叫的老马 2009-04-13
  • 打赏
  • 举报
回复
100呀,哈哈
Tiger_Zhao 2009-04-13
  • 打赏
  • 举报
回复
http://topic.csdn.net/u/20080415/23/2844e450-862c-46a0-90d9-8120deaff51e.html
dengnansky 2009-04-13
  • 打赏
  • 举报
回复
留个脚印!
  • 打赏
  • 举报
回复
唉,搞不懂啊搞不懂
CHIC250 2009-04-13
  • 打赏
  • 举报
回复
关注....

1,451

社区成员

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

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