龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VB开发 >

用SendMessage函数实现VB程序的查询功能

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
在API文本浏览器里,当我们在搜索栏输入任意字母,“可用项”里以该字母开头的项目以高亮显示以引起我们注意该项是不是我们所需的。象这样的功能一切提供搜索选项的程序都应该
在API文本浏览器里,当我们在搜索栏输入任意字母,“可用项”里以该字母开头的项目以高亮显示以引起我们注意该项是不是我们所需的。象这样的功能一切提供搜索选项的程序都应该具备。以下例子采用SendMessage函数实现这一技术。
  请给标准工程添加ListBox和TextBox控件各一个,其各项属性均取默认值,然后将下列代码拷贝到你的工程:
  
  OptionExplicit
  
  '申明API函数
  PrivateDeclareFunctionSendMessageLib"user32"Alias"SendMessageA"(ByValhwndAsLong,ByValwMsgAsLong,ByValwParamAsInteger,ByVallParamAsAny)AsLong
  
  ConstLB_FINDSTRING=&H18F'常数
  
  PrivateSubForm_Load()
  
  '给列表框添加26个字母(大写)
  DimiAsInteger
  Fori=Asc("A")ToAsc("Z")
  List1.AddItemChr$(i)
  Next
  Text1=""'令文本框为空
  
  EndSub
  
  PrivateSubText1_KeyPress(KeyAsciiAsInteger)
  
  Text1=""'按下任意键则令原内容消失
  Text1.SelLength=1'限制长度
  Text1.SelText=Chr(KeyAscii)'显示键盘符号
  KeyAscii=0'禁止响铃
  'ListBox中的项目文本若与文本框的一致则选中(高亮)
  List1.ListIndex=SendMessage(List1.hwnd,LB_FINDSTRING,-1,ByValCStr(Text1.Text))
  
  EndSub
  
  以上程序适用于单项目为多个字母的查询,但必须注意,在TextBox的KeyPress事件中要作相应的改动。->

精彩图集

赞助商链接