关于在vb中调用SendMessage

ring 2000-03-27 09:34:00
在vb中,我想这样子

SendMessage hWnd, WM_GETTEXT, 20, buf
MsgBox buf

请问各位大虾,其中的buf该是什么类型的?
...全文
188 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ring 2000-03-28
  • 打赏
  • 举报
回复
天哪
微软耍我
api viewer里在lParam之前没有加上ByVal
Un1,崇拜你!
hailong,我用vbnullstring声明,系统怎么说没有这种类型,但msdn明明有啊?
haihong 2000-03-28
  • 打赏
  • 举报
回复
vbnullstr
Un1 2000-03-28
  • 打赏
  • 举报
回复
申明:

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) As Long

由于vb的非定长String没有固定存储空间,你必须自己分配空间:
Dim s As String
s = String(255, 0)

SendMessage hWnd, WM_GETTEXT, 255, s

Dim l As Long
l = Instr(s, vbNullChar)

If l > 0 Then s = Left$(s, l - 1)

Msgbox s
syz 2000-03-27
  • 打赏
  • 举报
回复
是不是应该定义数组,传递地址指针?抱错?访问非法!
ring 2000-03-27
  • 打赏
  • 举报
回复
我用了string类型,但是系统报错,要我关闭vb
怎么办?
mybluesky 2000-03-27
  • 打赏
  • 举报
回复
buf是指一个缓冲区,是用来存放你要显示的字符串(提示信息)的地址的指针
一般VB里是不需要用指针的,因此此用法多用于VC中.说的简单点,Buf就是你
定义的一个字符串变量的名称.如 dim mystring as string .buf 就用mystring
代替

7,759

社区成员

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

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