接受文件拖拽窗口的实现
来源:互联网 发布:手机页面屏蔽广告js 编辑:程序博客网 时间:2024/06/05 18:34
长期以来,我似乎都没有对知识进行总结,寄希望于博客吧。
早上闲着没事,想起来一篇关于拖拽的文章,第一次见到还是借助于Google大侠,搜了n久才发现该文章,如今已经满地都是中文版本了。
本人坚持自力更生的原则,自己做一遍吧,不想只抄袭人家的内容,然后保存一下就再也不看了。想把知识运用起来。
废话少说,入正题。先做个简单的,实现窗口接受拖放到上面的文件,输出其全路径。
用到了如下三个函数:
VOID DragAcceptFiles( HWND hWnd, BOOL fAccept);
UINT DragQueryFile(HDROP hDrop, UINT iFile, LPTSTR lpszFile,UINT cch);
VOID DragFinish(HDROP hDrop);
函数更详细的解释参看MSDN。需要处理WM_DROPFILES消息。
剩下的就简单了。
第一步,当需要开始接受文件拖拽时,调用DragAcceptFiles。(一般是在窗口的初始化函数中。)
第二步,在WM_DROPFILES消息中调用DragQueryFile函数获取文件列表,并在结束处理后调用DragFinish释放系统分配的内存就可以了。
LRESULT OnInitDialog(...)
{
...
DragAcceptFiles(...);
...
return TRUE;
}
LRESULT on_drop_files_msg(...)
{
HDROP hdrop = (HDROP)wParam;
UINT ufc = DragQueryFile(hdrop,0xffffffff,0,0);
char buf[MAX_PATH];
for(UINT i=0; i<fc; ++i)
{
DragQueryFile(hdrop,i,buf,MAX_PATH);
...
}
DragFinish(hdrop);
return 0;
}
代码大概如此,已经能接收到拖拽到窗口上的文件了,DragQueryFile得出的是文件的全路径,之所以要循环调用,
是因为拖放操作可能同时拖了n个文件。
另有一函数DragQueryPoint类似于DragQueryFile,不过它的出的是松开鼠标时鼠标的坐标。并不难用。
好了,先到这。
早上闲着没事,想起来一篇关于拖拽的文章,第一次见到还是借助于Google大侠,搜了n久才发现该文章,如今已经满地都是中文版本了。
本人坚持自力更生的原则,自己做一遍吧,不想只抄袭人家的内容,然后保存一下就再也不看了。想把知识运用起来。
废话少说,入正题。先做个简单的,实现窗口接受拖放到上面的文件,输出其全路径。
用到了如下三个函数:
VOID DragAcceptFiles( HWND hWnd, BOOL fAccept);
UINT DragQueryFile(HDROP hDrop, UINT iFile, LPTSTR lpszFile,UINT cch);
VOID DragFinish(HDROP hDrop);
函数更详细的解释参看MSDN。需要处理WM_DROPFILES消息。
剩下的就简单了。
第一步,当需要开始接受文件拖拽时,调用DragAcceptFiles。(一般是在窗口的初始化函数中。)
第二步,在WM_DROPFILES消息中调用DragQueryFile函数获取文件列表,并在结束处理后调用DragFinish释放系统分配的内存就可以了。
LRESULT OnInitDialog(...)
{
...
DragAcceptFiles(...);
...
return TRUE;
}
LRESULT on_drop_files_msg(...)
{
HDROP hdrop = (HDROP)wParam;
UINT ufc = DragQueryFile(hdrop,0xffffffff,0,0);
char buf[MAX_PATH];
for(UINT i=0; i<fc; ++i)
{
DragQueryFile(hdrop,i,buf,MAX_PATH);
...
}
DragFinish(hdrop);
return 0;
}
代码大概如此,已经能接收到拖拽到窗口上的文件了,DragQueryFile得出的是文件的全路径,之所以要循环调用,
是因为拖放操作可能同时拖了n个文件。
另有一函数DragQueryPoint类似于DragQueryFile,不过它的出的是松开鼠标时鼠标的坐标。并不难用。
好了,先到这。
- 接受文件拖拽窗口的实现
- 对于MFC中窗口接受文件的拖拽功能
- Flex Air 窗口 接受文件拖入
- 如何实现两窗口之间的数据传递接受
- 文件拖拽功能窗口实现
- ISA2006实现QQ离线文件正常发送接受的方法
- VC对话框如何接受拖拽文件
- 接受拖拽的richtextbox
- EventBus实现广播的接受
- C#利用HttpListener实现接受上传文件
- MFC中窗口实现拖拽文件功能
- 接受树节点拖拽的listview
- 实现窗口的文件拖放功能
- 在多文档中接受拖拽文件
- VC 实现无标题窗口的拖拽
- MFC窗口接受拖放
- windows/mfc 隐藏窗口接受消息的问题
- 发送缓冲区、接受缓冲区、滑动窗口协议之间的关系
- 关于VC时间、日期函数
- SQL 标量函数----->字符串函数 之二 去空格函数 LTRIM() 、RTRIM()
- ArcEngine,delphi创建shp文件
- 哈哈,今天我又学会一小招——判断硬盘上是否存在某个文件夹,如果不存在则自动创建。
- 网页库级垂直搜索引擎技术
- 接受文件拖拽窗口的实现
- 与名人、明星比拼
- 显示代理链错误消息 " 12206 "
- Spring 框架简介
- servlet中文API
- Servlet过滤器
- 设计和仿真无线局域网设备天线
- Gpu Gems3 终于有得下了!
- 平时积累的东西