关于 SendMessage的相关问题

azhilee 2006-03-29 02:25:42
from1 一个,当picture1.move 0, 0, me.width, me.height 时。

在 from1的mousemove事件里怎么能感应到picture1的mousemove事件。
我是这样写的

picture1的mousemove事件里

ReleaseCapture
Call SendMessage(hWnd, WM_NCMOUSEMOVE, HTCLIENT, 0)

但是不起做用,请教各位高手


...全文
119 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
azhilee 2006-04-07
  • 打赏
  • 举报
回复
太细了谢谢
homezj 2006-03-29
  • 打赏
  • 举报
回复
你这里的错误很多,
1、picture1.move 0, 0, me.width, me.height
应改为
picture1.move 0, 0, scalewidth, scaleheight
2、ReleaseCapture
这里用不着
3、WM_NCMOUSEMOVE是窗体非客户区消息,正常程序不会自己处理它,VB更不会为它提供响应事件。
4、HTCLIENT代表鼠标位于客户区,发非客户区消息说明鼠标在客户区,这很矛盾,而且HTCLIENT,正常时是窗体处理过程在处理WM_HTTEST消息时的返回值,代表随后主消息将转换为客户区消息。
5、lParam参数在这个消息中代表鼠标位置,简单的传0没有意义;

你的代码可以这样写
Const WM_MOUSEMOVE = &H200&
With Picture1
SendMessage hwnd, WM_MOUSEMOVE, 0, ByVal CLng(.ScaleX(X, .ScaleMode, 3)) + CLng(.ScaleY(Y, .ScaleMode, 3)) * &H10000
End With

注意:
1、这里没有传按键,你可根据Button及Shift参数自己加上。
2、若将scaleMode指定为3,那就不会Scale转换这么麻烦了。
3、Picture1的边框要设为0,不然会坐标会有点小误码率差的^_^

够详细吧?但愿你能学好API
azhilee 2006-03-29
  • 打赏
  • 举报
回复
TO 小吉。可以。但我想用API实现,
我不是为了实现这个功能而实现这个功能的。
只要是想学学API 常量。。。谢谢
homezj 2006-03-29
  • 打赏
  • 举报
回复
这真是一个比较有创意的消息!其合理性先不说,我只是不太明白你的意思?直接调用from_mousemove事件过程不行吗?
云路 2006-03-29
  • 打赏
  • 举报
回复

1,486

社区成员

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

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