• VC++拖拽文件到对话框


    • 版本

    VS2012

    • 实例说明

    在文档视图结构中通过使用DragAcceptFiles函数可以使程序接收拖拽文件,在对话框中也可以添加WM_DROPFILES消息的映射函数来使程序接收拖拽文件。程序运行效果如图所示。

    • 关键技术

    本实例的实现主要使用DragQueryFile函数。该函数用于获取拖拽文件的文件名称。

    基本格式如下:

    DragQueryFile(
    HDROP hDrop, 
    UINT iFile,
    LPSTR lpszFile,
    UINT cch
    );

    参数说明:

    hDrop:文件名缓冲区的句柄。
    iFile:文件索引编号,如果iFile值为0xffffffff,返回的是拖拽到窗体上的文件的个数。如果iFile值在0和拖拽文件总数之间,则DragQueryFile复制与文件名存储缓冲区大小适合的文件名称到缓冲区中。
    lpszFile:函数返回时,用于存储拖拽文件名称的缓冲区指针。

    cch:存储拖拽文件名称缓冲区的大小,即lpszFile指针所指缓冲区的字符数。

    参考资料https://blog.csdn.net/weixin_34130389/article/details/85700631

    • 设计过程

    (1)新建一个基于对话框的应用程序。

    (2)在对话框中添加列表控件,关联一个控件变量,显示拖入的文件名。

    (3)右击设置对话框属性,在ExternedStyle中选中Acceptfiles。

    (4)通过ClassWizard设置Dlg类的属性,选择ClassInfo选项,将Messagefilter设置为Window,在Dlg类中添加WM_DROPFILES的消息处理。代码如下:

    void CDemoDlg::OnDropFiles(HDROP hDropInfo)
    {
        // TODO: 在此添加消息处理程序代码和/或调用默认值
    
        int ires;
        char str[32];
        ires = DragQueryFile(hDropInfo, 0xffffffff, NULL, 0);
        for (int i = 0; i < ires; i++)
        {
            DragQueryFile(hDropInfo, i, str, 32);
            m_filelist.AddString(str);
        }
        DragFinish(hDropInfo);
    
        CDialogEx::OnDropFiles(hDropInfo);
    }
    • 演示

    Caesar卢尚宇

    2021年2月7日

    作者: 阿飞

    出处: https://www.cnblogs.com/nxopen2018/>

    关于作者:......

    如有问题, 可在底部(留言)咨询.

  • 相关阅读:
    Android 4.2开发环境搭建
    ManagementFactory cannot be resolved
    html css鼠标样式,鼠标形状
    开普勒三定律
    Apache CXF简介
    C++学习基础八——重载输入和输出操作符
    C++学习基础七——深复制与浅复制
    C++学习基础六——复制构造函数和赋值操作符
    C++学习基础五之函数参数——形参
    C++学习基础四——顺序容器和关联容器
  • 原文地址:https://www.cnblogs.com/nxopen2018/p/14386984.html
Copyright © 2020-2023  润新知