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

2018-06-17 17:14:15来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

在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事件中要作相应的改动。->

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:使用ObjPtr检测2个对象变量是否指向同一对象

下一篇:用VB建立Access数据库结构