Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1568785
  • 博文数量: 884
  • 博客积分: 52280
  • 博客等级: 大将
  • 技术积分: 13060
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-06 09:46
文章分类

全部博文(884)

文章存档

2008年(884)

我的朋友

分类: C/C++

2008-08-06 09:53:03

下载本文示例代码
如果可能我想用打包类来实现。唉!,就叫我封装先生吧。
你算是找对地方了。但是我要先声明我的解决办法不是你所希望的-甚至也不是我自己所希望的!

什么是autocomplete呢?你也许已经注意到当你在IE的地址编辑框中敲入什么东西的时候,就会出现一个下拉组合框显示所有匹配敲入字符的URLs,亮条落在第一个匹配项上,你只要按下回车键就可以了(图一)。在“文件/打开”对话框及Windows其它地方也有相同的效果。Autocompletion真是个了不起的东西。可惜 到了Windows 2000才有,来得太迟了。

(图一)

我第一次看到你的问题时,说句实话,我还从来没有听说过 IAutoComplete:

IAutocomplete 和 IAutoComplete2 



IAutoComplete 

HRESULT Init(

   HWND hwndEdit,                // 编辑控制或组合框

   IUnknown *punkACL,            // 实现 IEnumString 的对象指针

   LPCOLESTR pwszRegKeyPath,     // 存储格式串的注册库路径

   LPCOLESTR pwszQuickComplete); // CTRL Enter的格式化串

        

   // Enable 或 Disable 自动完成功能

HRESULT Enable(BOOL fEnable);



enum {

   ACO_NONE = 0,

   ACO_AUTOSUGGEST   = 0x1,

   ACO_AUTOAPPEND    = 0x2,

   ACO_SEARCH        = 0x4,

   ACO_FILTERPREFIXES= 0x8,

   ACO_USETAB        = 0x10,

   ACO_UPDOWNKEYDROPSLIST= 0x20,

   ACO_RTLREADING    = 0x40

}  AUTOCOMPLETEOPTIONS;



IAutoComplete2 

HRESULT SetOptions(DWORD dwFlag);

HRESULT GetOptions(DWORD *pdwFlag);
你是不是觉得我应该熟悉微软发布的每一个新的COM接口? 对我来说这似乎是个好主意。
下面是 IAutoComplete 接口的一些选项:

  下载本文示例代码
选项标志 描述
ACO_NONE 没有自动完成
ACO_AUTOSUGGEST 启用自动建议的下拉列表框
ACO_AUTOAPPEND 启用自动添加
ACO_SEARCH 在完成的串中添加搜索项目,选中此项目启动搜索引擎
ACO_FILTERPREFIXES 不匹配逗号前缀,如“www.”,“http://”等
ACO_USETAB 使用Tab键从下拉框清单中选择
ACF_UPDOWNKEYDROPSLIST 使用上下箭头键显示自动建议的下拉框清单
ACO_RTLREADING 常规窗口从左到右显示文本。Windows 可以被映射显示诸如 Hebrew 或 Arabic 这样从右到左阅读的语言。通常,某个控制的文本与其父窗口文本的阅读/显示方向相同。如果设置ACO_RTLREADING,那么文本阅读方向与其父窗口文本阅读方向相反。
阅读(312) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~