怎样用SendMessageLong来限制文本框输入内容长度?

zhangcoco 2004-08-30 11:27:13
我见有人这样用 是用在treeview上的
Private Sub TreeView1_BeforeLabelEdit(Cancel As Integer)
Dim lEditHWND As Long
'得到treeview上编辑框的句柄
lEditHWND = SendMessageLong(TreeView1.hwnd, TVM_GETEDITCONTROL, 0, 0)
' 限制到20个字符
If lEditHWND > 0 Then
SendMessageLong lEditHWND, EM_LIMITTEXT, 20, 0
End If

End Sub

可我放在text1_change上却不管用 我想应该是其中的参数写的不对
请教该如何写? 用SendMessageLong可以得到文本框输入的行数 网上有很多例子 可怎样达到限制输入长度呢?
...全文
172 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
rainstormmaster 2004-08-30
  • 打赏
  • 举报
回复
Option Explicit
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 Const EM_LIMITTEXT = &HC5

Private Sub Form_Load()
'设置textbox最多只能输入10个字节(10个英文字符或5个汉字)
SendMessage Text1.hwnd, EM_LIMITTEXT, 10, 0&
End Sub
rainstormmaster 2004-08-30
  • 打赏
  • 举报
回复
//SendMessageLong是API,在MSDN中没有

晕了,SendMessageLong不过是SendMessage的一种安全声明方式而已,在msdn中你应该查找SendMessage
zhangcoco 2004-08-30
  • 打赏
  • 举报
回复
谢谢楼上的 看来我是舍近求远了
programfish 2004-08-30
  • 打赏
  • 举报
回复
msdn中没有,查API大全。
programfish 2004-08-30
  • 打赏
  • 举报
回复
限制文本框内容的长度用。text.MaxLength属性就行了。
zhangcoco 2004-08-30
  • 打赏
  • 举报
回复
我知道它是api 难道msdn里没有api的讲解?
programfish 2004-08-30
  • 打赏
  • 举报
回复
SendMessageLong是API,在MSDN中没有。
zhangcoco 2004-08-30
  • 打赏
  • 举报
回复
ps 怎么利用msdn学习呢?我在msdn里搜索SendMessageLong却搜索为空?
zhangcoco 2004-08-30
  • 打赏
  • 举报
回复
谢谢暴风雨
十分的感谢 我要的就是这个答案

1,486

社区成员

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

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