MFC实现让ListCtrl接受拖放文件 转

前端之家收集整理的这篇文章主要介绍了MFC实现让ListCtrl接受拖放文件 转前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
MFC实现让ListCtrl接受拖放
2010年08月07日 20:07

【引言】拖放操作在电脑中很常用,例如我们经常复制文件就可以按住ctrl键不放,然后再拖到另外一个窗口中,或者,可以把一个WORD文档直接拖动到WORD窗口即可打开,以前我使用过VB,里面直接有OleDragDrop事件,进行相应处理即可。那么如何在VC++中通过编程实现该功能呢,这就是本文要介绍的。

【实现】具体做法如下:用ClassWizard类向导新建一个类,取名为CMyListCtrl,基类为CListCtrl,然后在类向导中切换到Message Maps选项卡,选择刚才建立的CMyListCtrl类,为WM_DROPFILES添加消息处理函数(实现拖放的关键也就在这里)

然后在对话框中画一个ListCtrl,按alt+enter进入属性页,点击扩展样式选项卡,勾选“接受文件”,使用类向导添加成员变量,Varable Type变量类型选择刚才新建的CMyListCtrl类,这样,这个ListCtrl就具有了接受拖放文件功能了。

要处理拖放事件,那么在此函数中处理: void CMyListCtrl::OnDropFiles(HDROP hDropInfo)

【附录】

支持文件拖放时,主要会涉及到以下三个API函数DragQueryFile、DragQueryPoint、DragFinish

1.UINT DragQueryFile(HDROP hDrop,UINT iFile,LPTSTR lpszFile,UINT cch)

猜你在找的VB相关文章