CDropEdit






4.57/5 (13投票s)
将文件拖放到 CEdit 控件,而不是使用文件打开对话框。
引言
这是标准 CEdit
控件的一个小改动,允许用户将文件拖放到控件上,而不是键入文件路径。当文件(或文件夹)被拖放到此控件上时,该文件的路径将成为窗口文本。这是一种替代传统的浏览对话框的方式。
为什么?
这只是我用来使我的应用程序易于使用的另一个方法。我从不依赖于此作为获取路径的唯一方式,只是另一个选项。此外,这里的代码可以适应几乎任何其他控件,因此您可以拖放到组合框、列表框等,所以我对任何可以接受文件名控件都这样做。
如何
使用这个类非常简单
- 首先,在您的
CWinApp::InitInstance
函数中调用::CoInitialize(NULL);
。 并在您的CWinApp::ExitInstance
中调用::CoUninitialize();
- 将一个普通的编辑控件添加到您的对话框中。 确保选中其“接受文件”属性。
- 在对话框类的头文件中,声明一个类型为
CDropEdit
的成员变量(确保#include "CDropEdit.h"
!) - 在您的对话框的
OnInitDialog
中,调用 - 如果您希望编辑控件处理目录,请调用
- 如果您希望编辑控件处理文件,请调用
- 就是这样
CDropEdit m_dropEdit;
m_dropEdit.SubclassDlgItem(IDC_YOUR_EDIT_ID, this);
m_dropEdit.SetUseDir(TRUE);
m_dropEdit.SetUseDir(FALSE);
更多
这段代码只是获取拖放文件名的基本技术。 如果您正在填充列表框,例如,很容易修改这段代码来处理多个拖放的文件。 并且,很容易更改这段代码来对拖放的文件执行其他操作,例如显示它们、执行它们、删除它们、将它们切成小块,或者将它们作为附件发送给 1,000 个陌生人等等...
玩得开心。