65.9K
CodeProject 正在变化。 阅读更多。
Home

CDropEdit

2002 年 2 月 27 日

CPOL

1分钟阅读

viewsIcon

169941

downloadIcon

1942

将文件拖放到 CEdit 控件,而不是使用文件打开对话框。

引言

这是标准 CEdit 控件的一个小改动,允许用户将文件拖放到控件上,而不是键入文件路径。当文件(或文件夹)被拖放到此控件上时,该文件的路径将成为窗口文本。这是一种替代传统的浏览对话框的方式。

为什么?

这只是我用来使我的应用程序易于使用的另一个方法。我从不依赖于此作为获取路径的唯一方式,只是另一个选项。此外,这里的代码可以适应几乎任何其他控件,因此您可以拖放到组合框、列表框等,所以我对任何可以接受文件名控件都这样做。

如何

使用这个类非常简单

  1. 首先,在您的 CWinApp::InitInstance 函数中调用 ::CoInitialize(NULL);。 并在您的 CWinApp::ExitInstance 中调用 ::CoUninitialize();
  2. 将一个普通的编辑控件添加到您的对话框中。 确保选中其“接受文件”属性。
  3. 在对话框类的头文件中,声明一个类型为 CDropEdit 的成员变量(确保 #include "CDropEdit.h"!)
  4. CDropEdit m_dropEdit;
  5. 在您的对话框的 OnInitDialog 中,调用
  6. m_dropEdit.SubclassDlgItem(IDC_YOUR_EDIT_ID, this);
  7. 如果您希望编辑控件处理目录,请调用
  8. m_dropEdit.SetUseDir(TRUE);
  9. 如果您希望编辑控件处理文件,请调用
  10. m_dropEdit.SetUseDir(FALSE);
  11. 就是这样

更多

这段代码只是获取拖放文件名的基本技术。 如果您正在填充列表框,例如,很容易修改这段代码来处理多个拖放的文件。 并且,很容易更改这段代码来对拖放的文件执行其他操作,例如显示它们、执行它们、删除它们、将它们切成小块,或者将它们作为附件发送给 1,000 个陌生人等等...

玩得开心。

© . All rights reserved.