如何在编辑框中使用IAutoComplete接口

西瓜瓜l

西瓜瓜l

2016-01-29 12:00

如何在编辑框中使用IAutoComplete接口,如何在编辑框中使用IAutoComplete接口
如何在编辑框中使用IAutoComplete接口
如果可能我想用打包类来实现 赵湘宁 本文例子代码 唉!,就叫我封装先生吧。
你算是找对地方了。但是我要先声明我的解决办法不是你所希望的-甚至也不是我自己所希望的!     什么是autocomplete呢?你也许已经注意到当你在IE的地址编辑框中敲入什么东西的时候,就会出现一个下拉组合框显示所有匹配敲入字符的URLs,亮条落在第一个匹配项上,你只要按下回车键就可以了(图一)。在“文件/打开”对话框及Windows其它地方也有相同的效果。
Autocompletion真是一个伟大的发明。

(图一)     我第一次看到你的问题时,说句实话,我还从来没有听说过IAutoComplete-你是不是觉得我应该熟悉微软发布的每一个新的COM接口?-对我来说这似乎是个好主意。代码一中列出了IAutoComplete的一些可选项。IAutoComplete与IEnumString一起工作,IEnumString是一个通用的枚举串列表。你只要将一个串枚举器指针和一个 Windows 编辑框或组合框句柄赋给IAutoComplete对象,其它的事情你就不用管了。如果你想设置发烧选项,就使用IAutoComplete2接口。每一个COM接口都是使用二号版本加以完善的,即便它只有两个方法。     IAutoComplete有一个缺陷,它只存在于Windows 2000,具体地说,实现IAutoComplete(CLSID_IAutoComplete)的COM对象位于shell32.dll的5.0版本中,它只随Windows 2000一起发布,Windows 95,Windows 98和Windows NT 4.0中则没有。如果你要使用它,要做的第一件事情是实现IEnumString接口。     当我劳神费力处理完QueryInterface,AddRef,Release以及CLSIDs,CoInitialize,并在构造器中决定了m_dwRef是取0还是1后,然后我使用自己认为还不错的方法,并打算经历所有痛苦和磨难来封装IAutoComplete,如果最终这个类将只能在Windows 2000中运行,那对我所做的努力打击实在是太大了。     这真是个难题,我该怎么办呢?我们的目的是在一个列表串中搜索与用户输入匹配的串。自己来写这种代码有多难啊!现代编程的问题之一是没有人愿意多写代码。不要让我犯错误-COM很棒。但是除非你已经有一个现成的IEnumString,否则对于autocompletion来说似乎是太繁琐了。     CAutoComplete是我写的一个类,这个类大体上实现了autocompletion,不用COM,也不用shell32.dll,它只是一个简单的类而已,你可以将它的cpp文件添加到你的应用,DLL或者扩展库中。它可以工作于任何的Windows版本,甚至是Windows 3.1。     CAutoComplete没有实现IAutoComplete中的所有的特性。例如,IAutoComplete有一个特性是当用户按下 Ctrl+Enter 时的快速完成格式串。这个格式串是一个Windows用来转换用户输入的 sprintf 串。如果这个格式串是“http://www.%s.com” 并且用户敲入“woowoo”,IAutoComplete 将完成整个内容http://www.woowoo.com。另外一个IAutoComplete特性是让你指定一个串作为注册键来存储格式串。这些特性都很好,但他们太IE化,似乎不属于通用的
autocompletion接口,所

展开更多 50%)
分享

猜你喜欢

如何在编辑框中使用IAutoComplete接口

C语言教程 C语言函数
如何在编辑框中使用IAutoComplete接口

模拟Nokia手机输入的编辑框

编程语言 网络编程
模拟Nokia手机输入的编辑框

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

编辑框和位图按钮的特殊结合

编程语言 网络编程
编辑框和位图按钮的特殊结合

如何在严寒中使用相机

拍照 摄影
如何在严寒中使用相机

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

如何在ASP中使用类

ASP
如何在ASP中使用类

如何在BCB中使用DirectX

编程语言 网络编程
如何在BCB中使用DirectX

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

使用免费界面换肤软件 USkin

使用免费界面换肤软件 USkin

CSS实用教程(三)

CSS实用教程(三)
下拉加载更多内容 ↓