如何得知窗体被移动通知另一人窗体也随着移动.保持它们之间的相对位置不变

lzh1160 2008-03-21 05:26:19
也就在当用户点击标题栏时移动窗体,而另一个窗体跟着移动..两个窗体相对位置不变..请指教!如何实现?
...全文
167 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
lzh1160 2008-03-31
  • 打赏
  • 举报
回复
我现在在研究一下先..尝试下,.有没相关子类化技术的啊,,我想学下..
m60a1 2008-03-29
  • 打赏
  • 举报
回复
2L可以了!
嗷嗷叫的老马 2008-03-26
  • 打赏
  • 举报
回复
开了个记事本拿SPY++拆了看了一下,貌似应该拦截WM_MOVING消息.

lParam指向一个RECT结构,里面有当前窗口的TOP,LEFT,BUTTOM,RIGHT参数.

拦截下来后直接FORM2.MOVE应该就可以了......
嗷嗷叫的老马 2008-03-26
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 jennyvenus 的回复:]
俺是水货的三星,白沟组装的。不支持anycall。
[/Quote]

射天狼 2008-03-25
  • 打赏
  • 举报
回复
http://www.j2soft.cn/static_html/200511092049543857admin.html

这里有源码!
zzyong00 2008-03-25
  • 打赏
  • 举报
回复
http://www.mndsoft.com/blog/article.asp?id=215
枕善居高手的代码
用户 昵称 2008-03-25
  • 打赏
  • 举报
回复
俺是水货的三星,白沟组装的。不支持anycall。

我在form1中拦截了多个消息转发到form2上,并让form2也拦截并执行,可是form2并不跟随。
lzh1160 2008-03-25
  • 打赏
  • 举报
回复
是不是通过子类化来捕获消息..好似用到SetWindowLong与CallWindowProc来做..但我不那么会用..试过也失败了啊..那也多谢你jennyvenus!不知如何做好!
舉杯邀明月 2008-03-25
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 jennyvenus 的回复:]
抱歉,没写出来,楼主不用等俺的结果了。
[/Quote]

不会吧???
你可是“三星”哟!!!
用户 昵称 2008-03-25
  • 打赏
  • 举报
回复
抱歉,没写出来,楼主不用等俺的结果了。
用户 昵称 2008-03-24
  • 打赏
  • 举报
回复
我来试写一个看看。
lzh1160 2008-03-24
  • 打赏
  • 举报
回复
如何截拦wm_nchittest这个消息啊..最好有例子拉..各位
嗷嗷叫的老马 2008-03-22
  • 打赏
  • 举报
回复
楼主应该结帖了.

路过.
cbm6666 2008-03-22
  • 打赏
  • 举报
回复
'建立两个窗体

'Form1的代码

Private Sub Form_Load()
Me.Move (Screen.Width - Me.Width) \ 2, (Screen.Height - Me.Height) \ 2
Form2.Show
End Sub


'Form2的代码

Private Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
Private Sub Form_Load()
Call SetParent(Me.hWnd, Form1.hWnd)
Me.Width = Form1.ScaleWidth: Me.Height = Form1.ScaleHeight
Me.Move 0, 0
End Sub

'Unload 时要先 Unload Form2 再Unload Form1

用户 昵称 2008-03-22
  • 打赏
  • 举报
回复
拦截wm_nchittest消息并向另一个 窗口转发。
zzyong00 2008-03-21
  • 打赏
  • 举报
回复
Private Sub Form_Load()
Form2.Show
Timer1.Interval = 1
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Unload Form2
Unload Form1
End Sub
Private Sub Timer1_Timer()
Form2.Move Form1.Left, Form1.Top + Form1.Height
End Sub

来个简单的
smalle 2008-03-21
  • 打赏
  • 举报
回复
拦截WM_MOVE消息

1,488

社区成员

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

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