【问题标题】:How directory searching in Windows run works?Windows 运行中的目录搜索如何工作?
【发布时间】:2016-08-02 13:53:04
【问题描述】:

这是我的要求。

我给一个文本框,用户必须输入文件夹路径。 为了帮助用户,当他们将第一个文件夹结构说“C:\”写入文本框时,我想显示该路径中可用的所有文件夹(与我们使用“windows run”时获取所有目录结构的方式相同) )。任何 c++ 中的代码 sn-p 都会有很大帮助。

提前致谢。

AKJ。

【问题讨论】:

  • 我用谷歌搜索了它,这是documentation。我开始在谷歌上搜索“建议”等,但最终在谷歌上搜索“自动完成”。查找信息是一项必不可少的技能,因此我建议您在此方面进行培训:它比对具体问题的任何具体答案都更有帮助。

标签: c++ winapi mfc directory editbox


【解决方案1】:

自动完成功能内置在 shell 中,可供客户端使用(请参阅Using Autocomplete)。自动完成可以与任何标准的编辑控件一起使用。要启用自动完成功能,只需调用 SHAutoComplete:

bool EnableAutoComplete(HWND hWndEdit) {
    if (SUCCEEDED(::SHAutoComplete(hWndEdit, SHACF_FILESYS_DIRS)))
        return true;
    return false;
}

SHAutoComplete 允许使用大量标志来自定义自动完成行为。如果没有任何选项符合您的要求,您可以实现自定义自动完成源,并完全控制建议(请参阅How to Enable Autocomplete Manually)。

【讨论】:

  • 您好,我已添加您建议的代码。但我没有得到任何输出。代码如下,CWnd *pCBEdit = myCOmbo.GetDlgItem(1001); HWND h_handle = pCBEdit->GetSafeHwnd(); if (SUCCEEDED(SHAutoComplete(h_handle,SHACF_FILESYS_DIRS))) AfxMessageBox(L"DOne");出现消息框。当用户键入“C:\”时,我想显示所有可用的文件夹。我是否必须将所有可能的文件夹添加到某个结构中并在方法调用时显示它?我正在使用组合框。
  • @AKJ 你的选角有误。你应该使用编辑框,而不是组合框。或者使用 ComboBoxEx,阅读链接获取信息。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-05-26
  • 1970-01-01
  • 2014-07-17
  • 2018-09-05
  • 1970-01-01
  • 2011-11-05
  • 2014-08-22
相关资源
最近更新 更多