您的位置:首页 > 其它

简单的实现对话框中文件的拖拽功能

2009-11-05 15:44 429 查看
今天搞了一个文件的拖拽功能,其实实现起来相当的简单。具体步骤如下:

1.在对话框属性页的Extended Styles中选中Accept Files属性。

2.添加消息响应函数 OnDropFiles(HDROP hDropInfo);

注意这个ClassWizard中可能选不到指定的消息。可以手动的在消息队列中加入如下的消息响应
BEGIN_MESSAGE_MAP(CRecPlayerDlg, CDialog)

//{{AFX_MSG_MAP(CRecPlayerDlg)

...

ON_WM_DROPFILES()

//}}AFX_MSG_MAP
END_MESSAGE_MAP()

消息函数的具体实现可以参考如下

void C***Dlg::OnDropFiles(HDROP hDropInfo)
{
// TODO: Add your message handler code here and/or call default
DWORD nFileNameSize = DragQueryFile(hDropInfo, 0, NULL, 0);
char * szFileName = new char[nFileNameSize + 1];
DragQueryFile(hDropInfo, 0, szFileName, nFileNameSize + 1);
//当得到了拖拽进入窗口的文件名(包括路径)就可以做自己的事情了

....

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: