zoukankan      html  css  js  c++  java
  • 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/>

    关于作者:......

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

  • 相关阅读:
    主键索引就是聚集索引吗?
    聚集索引以及非聚集索引
    IO阻塞模型、IO非阻塞模型、多路复用IO模型
    Log4j的使用说明
    前置机是什么
    转:图文理解区块链
    DQL、DML、DDL、DCL全名是啥?
    OLAP和OLTP的区别
    JAVA之运算符优先级
    JAVA之异常处理(一)
  • 原文地址:https://www.cnblogs.com/nxopen2018/p/14386984.html
Copyright © 2011-2022 走看看