文件拖动
VC6.0中实现文件拖拽- -
我们经常使用到文件拖拽的方法,来对某一个或者某一些文件进行操作。
在VC中,我们可以不利用打开文件对话框来选择文件,从而对文件进行操作,我们也可以使用拖拽来实现这样的功能。具体如下:
1.首先,把一个对话框或者窗体的扩展属性【接受文件】勾选上。(即WS_EX_ACCEPTFILES)
2.我们对WM_DROPFILES消息进行处理。
在这里我们使用到了一个API函数:DragQueryFile,它的原型如下:
[CODE_LITE]
UINT DragQueryFile(
HDROP hDrop,
UINT iFile,
LPTSTR lpszFile,
UINT cch
);
[/CODE_LITE]
当第二个参数iFile为 0xFFFFFFFF 时返回的是拖曳到窗体上的文件的个数。
第三个参数是文件名,第四个参数是文件名的长度。
具体使用方法:
[CODE_LITE]
unsigned int count;
char filepath[100];
count=::DragQueryFile(hDropInfo,0xFFFFFFFF,NULL,NULL); //首先获取文件的个数。
if(count)
{ for(unsigned int i=0;iMessageBox(filepath);
}
}
[/CODE_LITE]
就是这么简单!
当我们把一个窗体的标题栏去掉以后,如果需要左键移动窗体的位置,只需要在处理WM_LBUTTONDOWN
消息的代码中加入:
[CODE_LITE]
PostMessage(WM_NCLBUTTONDOWN,HTCAPTION,MAKELPARAM(point.x,point.y));
void CCHTMLOptimizerDlg::OnDropFiles(HDROP hDropInfo)
{
UINT nCount = ::DragQueryFile(hDropInfo,0xFFFFFFFF,NULL,0);
UINT i;
CString strFileName;
for(i=0;i