设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 6563|回复: 19
打印 上一主题 下一主题

SendMessage,ReleaseCapture两API函数求教

[复制链接]
跳转到指定楼层
1#
发表于 2002-10-26 17:37:00 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
Trynew斑竹,以下为API32。CHM中对SendMessage,ReleaseCapture解释对照你的例子还是不明,请有空指点指点,谢谢

Declare Function SendMessage& Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any)
说明
调用一个窗口的窗口函数,将一条消息发给那个窗口。除非消息处理完毕,否则该函数不会返回。SendMessageBynum, SendMessageByString是该函数的“类型安全”声明形式
返回值
Long,由具体的消息决定
参数表
参数 类型及说明
hwnd Long,要接收消息的那个窗口的句柄
wMsg Long,消息的标识符
wParam Long,具体取决于消息
lParam Any,具体取决于消息

Declare Function ReleaseCapture Lib "user32" Alias "ReleaseCapture" () As Long
说明
为当前的应用程序释放鼠标捕获
返回值
Long,TRUE(非零)表示成功,零表示失败

你是这样使用的:
Const WM_SYSCOMMAND As Long = &H112
Const SC_MOVE_MOUSE As Long = &HF012&
'To Simulate the Caption Move
Private Declare Function apiReleaseCapture Lib "user32" _
  Alias "ReleaseCapture" () 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 Sub BarTitle_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
  apiReleaseCapture
  Call SendMessage(Me.Parent.hWnd, WM_SYSCOMMAND, SC_MOVE_MOUSE, 0)
End Sub

我的问题是:1.wMsg参数是不是可以自己乱取(消息的标识符 )?
            2.wParam ,lParam 两参数该如何赋值?
            3.能解释你对以上三个参数是如何赋值的吗?换句话就是为什么要
            wMsg=&H112,wParam=&HF012&,lParam=0

            4.ReleaseCapture在你的例子中起什么作用?

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
20#
 楼主| 发表于 2002-10-31 21:27:00 | 只看该作者
谢谢,现在可以用了。
19#
发表于 2002-10-31 06:46:00 | 只看该作者

控件

找个VB6装吧。文件下载
18#
 楼主| 发表于 2002-10-31 02:59:00 | 只看该作者
[upload=bmp]http://www.office-cn.net/vvb/uploadimages/2002103018572627533.bmp[/img]
Trynew兄,谢谢你!

不过你的程序还差一个控件。
17#
发表于 2002-10-30 07:48:00 | 只看该作者

API 浏览器 上传

其中 WIN32API.TXT 可找到类型和常量的定义
APILOAD.EXE 不安装不知能不能运行。文件下载(187K)
16#
发表于 2002-10-29 07:55:00 | 只看该作者

上传 Windoes.pas 文件(To Gnoy)

文件下载
一个文本文件,要在Win32 SDK 或Api 帮助里找到常量名,再在文件查找,如 SC_MOVE=61456, 转为16位,Hex(61456)=F012。
其实很笨。
15#
 楼主| 发表于 2002-10-29 04:10:00 | 只看该作者
以下是引用zhuyiwen在2002-10-28 19:56:31的发言:

也就是说:SC_MOVE_MOUSE = &HF012& 中的 SC_MOVE_MOUSE 为常量指针,是不能改变的。

[em26]


SC_MOVE_MOUSE 是既定参数这没有异议但是
问题是vba中他不认啊它需要值啊

点击这里给我发消息

14#
发表于 2002-10-29 03:57:00 | 只看该作者
以下是引用gnoy在2002-10-28 19:53:40的发言:
对呀,我也是这么认为的。但是你知道&HF012&从那里可以得到吗?


也就是说:SC_MOVE_MOUSE = &HF012& 中的 SC_MOVE_MOUSE 为常量指针,是不能改变的。

[em26]

点击这里给我发消息

13#
发表于 2002-10-29 03:54:00 | 只看该作者
因为不能修改贴子,所以连发四贴,呵呵[em26]
12#
 楼主| 发表于 2002-10-29 03:54:00 | 只看该作者
对呀,我也是这么认为的。但是你知道&HF012&从那里可以得到吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2025-1-8 20:36 , Processed in 0.105963 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表