VS2012 MFC 对话框支持文件拖拽功能


1- 新建一个基于对话框的MFC工程;
2- 多余控件删掉;
3- 拖一个列表框到主对话框中;
4- 点击主对话框右键,在弹出菜单,选择属性, Accept File 修改为 True
5- 右健主对话框,在弹出菜单中,选择类向导。点击消息,在消息下的编辑框中输入 DropFiles,再下面的列表框中就会显示 WM_DROPFILES 消息,双点它就会移到右边,
然后右边有一个” 编辑代码“点击它。
6- 自动转到 WM_DROPFILES 消息处理函数,然后添加代码,如下所示:
void CDemoDlg::OnDropFiles(HDROP hDropInfo)
{
	// TODO: 在此添加消息处理程序代码和/或调用默认值

	// 获取列表框指针
	CListBox *pListbox = (CListBox *)GetDlgItem(IDC_LIST1);
	pListbox->ResetContent();// 清空列表框内容

	// 取得被拖动文件的数目
	int nCount=DragQueryFile(hDropInfo,-1,NULL,0);  

	// 遍历打印到列表框中
	for(int i=0; i< nCount; i++)  
	{  
		// 获得拖曳的第i个文件的文件名
		WCHAR szFilePath[MAX_PATH];  
		DragQueryFile(hDropInfo,i,szFilePath,MAX_PATH);  

		// 打印到列表框中
		CString strText(szFilePath);
		strText += L"\n"; 
		pListbox->AddString(strText);
	}

	CDialogEx::OnDropFiles(hDropInfo);
}


 总结: 

1- 设置主对话框属性,让它支持拖拽功能
2- 添加 WM_DROPFILES 消息处理函数进行处理
3- DragQueryFile 获取拖拽文件个数
4- DragQueryFile 获取文件路径,第二个参数是文件索引编号
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值