今天使用以前做的工具时,要想把某些文件路径加入编辑框中很麻烦。决定优化一下,能支持把文件拖拽到编辑控件中,这样非常便捷了。省去了输入路径或用浏览框选文件麻烦!
在网上找了一些资料并已解决,决定加以整理分享一下自己的经验。同时感谢网上大拿无私的分享!!
1、首先生成支持拖拽的编辑框类CDropEdit。因为如果对话框中有多个编辑框的话,用对话框响应拖拽消息的话,就无法识别当前文件拖拽到的是什么控件,所以要用专门的类来响应消息就避免了这个问题。
DropEdit.h文件内容如下:
#pragma once
#include "afxwin.h"
// 支持文件拖拽的便捷框类
class CDropEdit : public CEdit
{
public:
CDropEdit(void);
~CDropEdit(void);
afx_msg void OnDropFiles(HDROP hDropInfo);
DECLARE_MESSAGE_MAP()
};
DropEdit.cpp文件内容如下:
#include "stdafx.h"
#include "DropEdit.h"
BEGIN_MESSAGE_MAP(CDropEdit, CEdit)
//{
{AFX_MSG_MAP(CDropEdit)
//}}AFX_MSG_MAP
ON_WM_DROPFILES() // 拖拽的响应消息
END_MESSAGE_MAP()
CDropEdit::CDropEdit(void)
{
}
CDropEdit::~CDropEdit(void)
{
}
void CDropEdi