zoukankan      html  css  js  c++  java
  • 拖拽文件获得路径

    这里主要用到一个函数
    UINT DragQueryFile(          HDROP hDrop,
        UINT iFile,
        LPTSTR lpszFile,
        UINT cch
    );
        hDrop: HDROP标识符,即响应函数中的hDropInfo参数
        iFile: 待查询的文件索引号,从0开始。可以同时拖拽多个文件,因此就需要一个索引号来进行区分。如果该参数为                        0xFFFFFFFF,则该函数返回拖拽的文件的个数
        lpszFile: 用于存放文件名的缓冲区首地址
        cch: 缓冲区长度
        返回值:文件名长度

     
    接受一个文件的实例:
    1.新建mfc对话框。
    2.对话框行为里面,accept files属性设置为true。
    3.添加一个Edit Control编辑控件,编辑控件分别命名为IDC_EDIT用于输出文件路径.
    4.打开mfc类向导,为对话框添加消息WM_DROPFILES处理函数(注意对话框对应类名).添加代码.
     【1】.VC6.0的ClassWizread不支持消息WM_DROPFILES处理函数的添加,因此需要手动添加
     1.在对话框的.h文件中,定义处理函数  
    afx_msg void OnDropFiles(HDROP hDropInfo); 
     
     2.在对话框的.cpp文件中,定义消息映射
    ON_WM_DROPFILES() 
     
    3.在对话框的.cpp文件中实现函数
    void CSYSLoaderDlg::OnDropFiles(HDROP hDropInfo)
    {
    TCHAR filePath[ MAX_PATH ]={0};              
    //单文件操作,第二参数置0,第三个参数返回文件路径                           
     
        DragQueryFile(hDropInfo, 0, filePath, MAX_PATH-1);     
    SetDlgItemText(IDC_EDIT,filePath);
       DragFinish(hDropInfo); //释放拖放占用内存,必须!
    }
     
     【2】.vs2010可直接添加WM_DROPFILES处理函数
     
    可接受好几个文件的拖拽:
    void CDragDlg::OnDropFiles(HDROP hDropInfo) 
    {
    // TODO: Add your message handler code here and/or call default
    UINT count;          
    char filePath[200];            
    count = DragQueryFile(hDropInfo, 0xFFFFFFFF, NULL, 0);          
    if(count)           
    {
    for(UINT i=0; i<count; i++)                    
    {
    int pathLen = DragQueryFile(hDropInfo, i, filePath, sizeof(filePath));                             
    AfxMessageBox(filePath); 
    }
    }
    DragFinish(hDropInfo); 
    CDialog::OnDropFiles(hDropInfo);
    }
  • 相关阅读:
    Kafka 生产者 自定义分区策略
    同步互斥
    poj 1562 Oil Deposits(dfs)
    poj 2386 Lake Counting(dfs)
    poj 1915 KnightMoves(bfs)
    poj 1664 放苹果(dfs)
    poj 1543 Perfect Cubes (暴搜)
    poj 1166 The Clocks (暴搜)
    poj 3126 Prime Path(bfs)
    处理机调度
  • 原文地址:https://www.cnblogs.com/lidabo/p/3573013.html
Copyright © 2011-2022 走看看