MFC实现对话框编辑控件上拖拽文件

 更新时间:2020年06月12日 08:44:50   作者:Been_Stone  
这篇文章主要为大家详细介绍了MFC实现对话框编辑控件上拖拽文件,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了MFC实现对话框编辑控件上拖拽文件的具体代码,供大家参考,具体内容如下

步骤

1、重载CEdit类
2、添加编辑框控件

首先,重载CEdit类,定义一个派生类CDragEdit类,并重载它的WM_CREATE方法,在其中添加DragAcceptFile(TRUE); 方法。

// CDragEdit.h

#pragma once

class CDragEdit : public CEdit
{
 DECLARE_DYNAMIC(CDragEdit)

public:
 CDragEdit();
 virtual ~CDragEdit();

protected:
 DECLARE_MESSAGE_MAP()
public:
 afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
 afx_msg void OnDropFiles(HDROP hDropInfo);
};

然后,利用类向导为CDragEdit类添加WM_DROPFILE消息相应函数;

//CDragEdit.cpp

int CDragEdit::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
 if (CEdit::OnCreate(lpCreateStruct) == -1)
 return -1;

 // TODO: 在此添加您专用的创建代码
 DragAcceptFiles(TRUE);

 return 0;
}


void CDragEdit::OnDropFiles(HDROP hDropInfo)
{
 UINT count;
 TCHAR filePath[MAX_PATH] = { 0 };
 count = DragQueryFile(hDropInfo, -1, NULL, 0);
 if (1 == count)
 {
 DragQueryFile(hDropInfo, 0, filePath, sizeof(filePath));
 this->SetWindowTextW(filePath);
 UpdateData(FALSE);
 DragFinish(hDropInfo); //拖放成功后,释放内存
 }
 else 
 {
 CString szFilePath;
 for (UINT i = 0; i < count; i++)
 {
 int pahtLen = DragQueryFile(hDropInfo, i, filePath, sizeof(filePath));
 szFilePath = szFilePath + filePath + _T("\r\n");
 }
 this->SetWindowTextW(szFilePath);
 UpdateData(FALSE);
 DragFinish(hDropInfo);
 }
//MFCDlg.h

#program once
#include "CDragEdit.h"

class CMFDlg : public CDialogEx
{
……………………
public:
 CDragEdit m_DragEdit;
}

最后,设置文本框控件属性[Accept Files]、[multiline]值为True.

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • C语言函数调用底层实现原理分析

    C语言函数调用底层实现原理分析

    这篇文章主要介绍了C语言函数调用底层实现原理,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • Qt实现生成指定范围内随机数与随机字符串

    Qt实现生成指定范围内随机数与随机字符串

    这篇文章主要为大家详细介绍了如何利用Qt实现生成指定范围内随机数与随机字符串,文中的示例代码简洁易懂,感兴趣的小伙伴可以自己动手尝试一下
    2023-07-07
  • Qt数据库相关应用开发总结

    Qt数据库相关应用开发总结

    这篇文章主要为大家介绍了在Qt数据库应用开发中的一些经验总结,以及一些组件的使用介绍。文中的示例代码讲解详细,需要的可以参考一下
    2022-02-02
  • C++中什么是虚函数

    C++中什么是虚函数

    虚函数是C++中的一种机制,允许在基类中声明一个函数,并在派生类中对其进行重新定义,从而实现多态性,虚函数通过基类指针或引用调用派生类的函数,实现运行时绑定,虚函数的关键是使用`virtual`关键字修饰函数声明,并且虚函数可以有默认实现,也可以是纯虚函数
    2025-01-01
  • 判断一个数是不是素数的方法

    判断一个数是不是素数的方法

    判断一个数是不是素数的方法,需要的朋友可以参考一下
    2013-03-03
  • C语言 TerminateProcess函数案例详解

    C语言 TerminateProcess函数案例详解

    这篇文章主要介绍了C语言 TerminateProcess函数案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • 基于C语言实现http下载器

    基于C语言实现http下载器

    做OTA升级功能时,我们能直接拿到的往往只是升级包的链接,需要我们自己去下载,这时候就需要用到http下载器。本文将利用C语言实现简单的http下载器,感兴趣的可以了解一下
    2022-12-12
  • c++实现排序算法之希尔排序方式

    c++实现排序算法之希尔排序方式

    这篇文章主要介绍了c++实现排序算法之希尔排序方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • C++游戏教程基本技巧之随机化详解

    C++游戏教程基本技巧之随机化详解

    在小游戏的制作中时常常会要用到随机数,这篇文章就来和大家谈谈C++中这个所谓的“随机”。文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2022-11-11
  • 深入解析C语言中的内存分配相关问题

    深入解析C语言中的内存分配相关问题

    这篇文章主要深入地介绍了C语言中的内存分配,C语言编程中的内存泄漏问题一直以来都是C编程中的一大棘手问题,本文从malloc和指针等方面对C内存进行了深层次讲解,强烈推荐!需要的朋友可以参考下
    2015-08-08

最新评论