今天搞了一个文件的拖拽功能,其实实现起来相当的简单。具体步骤如下:

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);
//当得到了拖拽进入窗口的文件名(包括路径)就可以做自己的事情了

....

}

 

 

 

posted on 2009-11-05 15:44  米罗21  阅读(305)  评论(0编辑  收藏  举报