首页 > 学院 > 开发设计 > 正文

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

2019-11-18 17:43:54
字体:
来源:转载
供稿:网友
在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事件中要作相应的改动。->


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表