vb.net关于sendmessage函数使用WM_gettext的声明方法

w12wangbo 2013-09-04 01:42:25
以下是论坛某个兄弟给的代码,讲如何使用sendmessage发送wm_gettext消息的。经验证代码无误。
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As IntPtr, ByVal wMsg As Integer,ByVal wParam As Integer,ByVal lParam As System.Text.StringBuilder) As Integer
Private Const WM_GETTEXTLENGTH As Integer = &HE
Private Const WM_GETTEXT As Integer = &HD
Sub GetText()
' 查询Eidt中文本长度
Dim textLength As Integer = SendMessage(hdl, WM_GETTEXTLENGTH, 0, Nothing)
textLength = textLength + 1
' 创建字符串缓冲区
Dim build As New System.Text.StringBuilder(textLength)
' 查询Edit中文本
SendMessage(hdl, WM_GETTEXT, textLength, build)
' 显示
MsgBox(build.ToString)
End Sub

我的问题是:我程序中还用到了另外一个声明方法Public Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Int32, ByVal wMsg As Int32, ByVal wParam As Int32, ByVal lParam As Int32) As Int32,重点在第四个参数上,应用于SendMessage 窗口句柄, WM_CLOSE, 0, 0 ,但是这两种使用方法不能共存,请问如何处理?
...全文
914 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
threenewbee 2013-09-07
  • 打赏
  • 举报
回复
Public Declare Function SendMessage2 Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Int32, ByVal wMsg As Int32, ByVal wParam As Int32, ByVal lParam As Int32) As Int32 就是了 红色部分可以随便写,叫HelloWorld也可以。
真相重于对错 2013-09-07
  • 打赏
  • 举报
回复
这两个本来 就不能共存的一个是unicode版,一个是ansi版
w12wangbo 2013-09-07
  • 打赏
  • 举报
回复
我的问题是我需要使用sendmessage两种不同的声明方法,差异在第四个参数上,单独都可以用,但是两个声明方法放到一起就出错了,调用的时候系统不知道我要用哪个。
w12wangbo 2013-09-07
  • 打赏
  • 举报
回复
caozhy的答案正确,已经验证。记得API可以改变名称写两个函数的(参数不同),原来如此。 我估计System.Text.StringBuilder的变量传地址也可以,但是不知道如何获取地址。 如果问题已经解决了,感谢!
青岛小帅锅 2013-09-04
  • 打赏
  • 举报
回复
不可能吧。。。。 你调用的方法问题,尝试这个: 常量定义: Const WM_GETTEXT = &HD Const WM_SETFOCUS = &H7 Const WM_KILLFOCUS = &H8 Const WM_CLOSE = &H10 Const WM_SYSCOMMAND = &H112 Const SC_CLOSE = &HF060& Const SC_MINIMIZE = &HF020& 调用: SendMessage(hWnd, WM_SYSCOMMAND, SC_Close, 0) 'hWnd为窗体句柄

16,550

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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