zoukankan      html  css  js  c++  java
  • 打开文件对话框和文件拖曳功能

    打开文件对话框和文件拖曳功能

    打开文件对话框

    生成一个编辑框控件绑定变量m_szPath,一个按钮控件添加事件OnBnClickedButtonBrowse()。

    void CMFC06FileBrowseDlg::OnBnClickedButtonBrowse()
    {
    	// TODO: 在此添加控件通知处理程序代码
    	// 过滤器
    	static TCHAR BASED_CODE szFilter[] = _T("JPG (*.jpg)|*.jpg|")
    		_T("BMP文件 (*.bmp)|*.bmp|")
    		_T("PNG文件 (*.png)|*.png|")
    		/*_T("All Files (*.*)|*.*||")*/;
    
    	
    	CFileDialog Filedlg(TRUE, _T(""), NULL,
    		OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
    		szFilter, NULL);
    	
    	// 弹出对话框
    	if (Filedlg.DoModal() != IDOK)
    	{
    		return;
    	}
    	// 把获取的路径更新到对话框里
    	m_szPath = Filedlg.GetPathName();
    
    	UpdateData(FALSE);
    }
    

    文件拖曳功能

    主界面对话框的【属性】-【Accept Files】的值设置为True。

    在【属性】里的【消息】面板上有一个叫做【WM_DROPFILES】的属性单击就可以绑定一个函数。

    
    
    void CMFC06FileBrowseDlg::OnDropFiles(HDROP hDropInfo)
    {
    	// TODO: 在此添加消息处理程序代码和/或调用默认值
    	UINT count;
    	TCHAR filePath[MAX_PATH] = { 0 };
    
        // 判断拖动过来了多少个文件
    	count = DragQueryFile(hDropInfo, 0xFFFFFFFF, NULL, 0);
    	// 如果是一个文件
    	if (count == 1)
    	{
    	    // 直接赋值
    		DragQueryFile(hDropInfo, 0, filePath, sizeof(filePath));
    		m_szPath = filePath;
    		UpdateData(FALSE);
    		DragFinish(hDropInfo);
    
    		CDialog::OnDropFiles(hDropInfo);
    		return;
    
    	}
    	else
    	{
    		// 如果不止一个文件就可以挨个显示或者直接赋值到编辑框
    		// 这种情况要么就是存在vector里,要么就是显示在ListCtrl里把多个文件列举出来。
    		//m_vectorFile.clear();
    		for (UINT i = 0; i < count; i++)
    		{
    			int pathLen = DragQueryFile(hDropInfo, i, filePath, sizeof(filePath));
    			m_szPath = filePath;
    			//m_vectorFile.push_back(filePath);
    			//break;
    		}
    
    		UpdateData(FALSE);
    		DragFinish(hDropInfo);
    	}
    
    	CDialogEx::OnDropFiles(hDropInfo);
    }
    
  • 相关阅读:
    multidownloadXkcd 多线程抓图
    51job_selenium测试2
    51job_selenium测试
    python爬虫 前程无忧网页抓取
    化工pdf下载
    Velocity写法注意
    Velocity中文乱码问题解决方法
    velcoity使用说明:foreach指令
    strults2标签s:set的用法
    struts提交action乱码
  • 原文地址:https://www.cnblogs.com/17bdw/p/10353995.html
Copyright © 2011-2022 走看看