求用SHAutoComplete实现自动匹配的实例

sxj0384 2009-12-27 06:28:02
我的程序有个combobox是用来输网址的,我想让它有像IE一样当输入网址时弹出下拉列表自动匹配输入的内容.
在网上看了可以用SHAutoComplete来实现,可是都没有实例,我是菜鸟,一点也不懂,请高手不吝惜给个实例.
请高手指教!
谢谢了!
...全文
297 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
sxj0384 2009-12-31
  • 打赏
  • 举报
回复
谢谢了~~
sxj1234 2009-12-31
  • 打赏
  • 举报
回复
多谢各位的热心指教,小菜感激不尽~~
vansoft 2009-12-29
  • 打赏
  • 举报
回复
补充说一句,不是这几代码就可以搞定的.
Tiger_Zhao 2009-12-29
  • 打赏
  • 举报
回复
ComboBox 也可以的,不过编辑框是子窗口。
SHAutoComplete GetWindow(Combo1.hWnd, GW_CHILD), SHACF_DEFAULT
lingll 2009-12-29
  • 打赏
  • 举报
回复
建一class
'---------------------------------------------------------------------------------------
' Module : cAutoComplete
' DateTime : 2004-3-5 1:14
' Author : Lingll
' Email : lingll_xl@163.com
' Purpose :
'---------------------------------------------------------------------------------------

Option Explicit

Private Declare Function SHAutoComplete Lib "Shlwapi.dll" (ByVal hwndEdit As Long, ByVal dwFlags As Long) As Long
Private Declare Function DllGetVersion Lib "Shlwapi.dll" (ByRef dvi As DLLVERSIONINFO) As Long

Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" ( _
ByVal hWnd1 As Long, _
ByVal hWnd2 As Long, _
ByVal lpsz1 As String, _
ByVal lpsz2 As String) As Long



Private Type DLLVERSIONINFO
cbSize As Long
dwMajorVersion As Long
dwMinorVersion As Long
dwBuildVersion As Long
dwPlatformID As Long
End Type

Private Const SHACF_AUTOSUGGEST_FORCE_ON = &H10000000
Private Const SHACF_AUTOSUGGEST_FORCE_OFF = &H20000000
Private Const SHACF_AUTOAPPEND_FORCE_ON = &H40000000
Private Const SHACF_AUTOAPPEND_FORCE_OFF = &H80000000
Private Const SHACF_DEFAULT = &H0
Private Const SHACF_FILESYSTEM = &H1
Private Const SHACF_URLHISTORY = &H2
Private Const SHACF_URLMRU = &H4
Private Const SHACF_URLALL = (SHACF_URLHISTORY Or SHACF_URLMRU)
Private Const SHACF_USETAB As Long = &H8


Private Const DLLVER_PLATFORM_WINDOWS = &H1
Private Const DLLVER_PLATFORM_NT = &H2
Private Const S_OK = &H0
Private Const NOERROR = 0

Public Enum SHACF_FLAGS
eSHACF_AUTOSUGGEST_FORCE_ON = SHACF_AUTOSUGGEST_FORCE_ON
eSHACF_AUTOSUGGEST_FORCE_OFF = SHACF_AUTOSUGGEST_FORCE_OFF
eSHACF_AUTOAPPEND_FORCE_ON = SHACF_AUTOAPPEND_FORCE_ON
eSHACF_AUTOAPPEND_FORCE_OFF = SHACF_AUTOAPPEND_FORCE_OFF
eSHACF_DEFAULT = SHACF_DEFAULT
eSHACF_FILESYSTE = SHACF_FILESYSTEM
eSHACF_URLHISTORY = SHACF_URLHISTORY
eSHACF_URLMRU = SHACF_URLMRU
eSHACF_URLALL = SHACF_URLALL
eSHACF_USETAB = SHACF_USETAB
End Enum
'local variable(s) to hold property value(s)
Private mvarErrDescription As String 'local copy



Public Property Get ErrDescription() As String
'used when retrieving value of a property, on the right side of an assignment.
'Syntax: Debug.Print X.ErrDescription
ErrDescription = mvarErrDescription
End Property


Public Function Assign(hwndEdit As Long, Optional nFlags As SHACF_FLAGS = eSHACF_DEFAULT) As Boolean
Dim dvi As DLLVERSIONINFO

dvi.cbSize = Len(dvi)
If DllGetVersion(dvi) <> NOERROR Then
mvarErrDescription = "无法检测Shlwapi.dll的版本号"
Assign = False
Exit Function
End If
'Debug.Print "dll version:", dvi.dwMajorVersion
If dvi.dwMajorVersion >= 5 Then
If SHAutoComplete(hEdit(hwndEdit), nFlags) <> S_OK Then
mvarErrDescription = "无法开启自动完成功能"
Assign = False
Exit Function
End If
Else
mvarErrDescription = "IE版本低于5"
Assign = False
Exit Function
End If

Assign = True
End Function


Private Function hEdit(nHwnd)
hEdit = FindWindowEx(nHwnd, 0, "EDIT", vbNullString)
End Function


用法:


Set mIeAuto = New cAutoComplete
mIeAuto.Assign Combo1.hWnd, eSHACF_FILESYSTE Or eSHACF_URLALL Or eSHACF_USETAB Or eSHACF_AUTOSUGGEST_FORCE_ON
Tiger_Zhao 2009-12-28
  • 打赏
  • 举报
回复
'Code by Lúcio Chaves (luciochaves@bol.com.br)
'This program needs a textbox ('Text1') on a form
Private Const SHACF_AUTOAPPEND_FORCE_OFF = &H80000000
Private Const SHACF_AUTOAPPEND_FORCE_ON = &H40000000
Private Const SHACF_AUTOSUGGEST_FORCE_OFF = &H20000000
Private Const SHACF_AUTOSUGGEST_FORCE_ON = &H10000000
Private Const SHACF_DEFAULT = &H0
Private Const SHACF_FILESYSTEM = &H1
Private Const SHACF_URLHISTORY = &H2
Private Const SHACF_URLMRU = &H4
Private Const SHACF_USETAB = &H8
Private Const SHACF_URLALL = (SHACF_URLHISTORY Or SHACF_URLMRU)
Private Declare Sub SHAutoComplete Lib "shlwapi.dll" (ByVal hwndEdit As Long, ByVal dwFlags As Long)
Private Sub Form_Load()
SHAutoComplete Text1.hWnd, SHACF_DEFAULT
End Sub
sxj0384 2009-12-28
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 xxyj6450 的回复:]
SHAutoComplete绑定控件是很简单的,但是它默认只可以匹配IE记录,最近文件记录等系统关键字,而不支持自定义的关键字,如果需要用自定义的关键字列表那就会很麻烦了.
其实大可以自己做一个自动完成的组合框出来,网上N多源码
[/Quote]
暂时只想学会使用SHAutoComplete
自动完成的组合框以后再学
知道的请指教,谢谢了!
SYSSZ 2009-12-28
  • 打赏
  • 举报
回复
我试了试,Combo1没反应,SHAutoComplete Text1.hWnd, SHACF_DEFAULT
和SHAutoComplete RichTextBox1.hWnd, SHACF_DEFAULT都可以,非文本编辑控件不可?Combo也有编辑框,但就是不行。
vansoft 2009-12-28
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 xxyj6450 的回复:]
SHAutoComplete绑定控件是很简单的,但是它默认只可以匹配IE记录,最近文件记录等系统关键字,而不支持自定义的关键字,如果需要用自定义的关键字列表那就会很麻烦了.
其实大可以自己做一个自动完成的组合框出来,网上N多源码
[/Quote]

自定义关键字是支持的,
只是对中文支持得不太好.
三断笛 2009-12-27
  • 打赏
  • 举报
回复
SHAutoComplete绑定控件是很简单的,但是它默认只可以匹配IE记录,最近文件记录等系统关键字,而不支持自定义的关键字,如果需要用自定义的关键字列表那就会很麻烦了.
其实大可以自己做一个自动完成的组合框出来,网上N多源码
贝隆 2009-12-27
  • 打赏
  • 举报
回复
飘过
yaozi8 2009-12-27
  • 打赏
  • 举报
回复
期待吧,我也想知道。
内容概要:本文系统研究了同步电机与构网型变流器在电力系统频率稳定中的动态特性,重点通过Simulink搭建IEEE9节点低惯量电力系统仿真模型,对比分析二者在功率扰动下的频率响应性能。研究深入探讨了构网型变流器采用下垂控制、虚拟同步机控制(VSM)、匹配控制及可调度虚拟振荡器控制(dVOC)等多种先进控制策略对系统惯量支撑和频率调节的作用机理,验证了其在提升弱电网频率稳定性方面的有效性,尤其在低惯量环境和应对突发功率波动时展现出优异的动态响应能力。研究成果兼具理论深度与工程实用价值,为高比例新能源接入背景下的电力系统稳定运行与控制策略优化提供了重要参考。; 适合人群:具备电力系统分析、自动控制理论基础,熟练掌握Matlab/Simulink仿真工具,从事新能源并网、电力电子化电网稳定性、构网型控制技术研究的研究生、科研人员及电力系统领域工程技术人员。; 使用场景及目标:① 掌握同步电机与构网型变流器的精确建模与仿真方法;② 理解并复现下垂、VSM、dVOC等核心控制策略的Simulink实现过程;③ 分析低惯量电网的频率失稳机理,定量评估不同控制策略对系统动态性能的改善效果;④ 支撑相关领域的学术研究、高水平论文复现、科研项目申报与工程方案设计。; 阅读建议:建议读者依据文中描述的IEEE9节点系统拓扑结构,循序渐进地搭建仿真模型,重点关注控制器关键参数(如虚拟惯量、阻尼系数)的设置及其对频率响应曲线(如超调量、恢复时间)的影响。务必动手实践,通过对比不同控制策略的仿真结果,深刻理解构网型变流器模拟同步机“自同步”和“惯量支撑”特性的物理本质,并可结合其他顶尖期刊文献进行交叉验证与拓展研究。

1,488

社区成员

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

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