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