VC文件拖拽

VC模拟文件拖拽 VC模拟文件拖拽 模拟文件拖拽基本原理是向目标窗口发送WM_DROPFILES消息,同时提供文件拖拽相关参数(DROPFILES结构体和文件名),因此需要在目标进程的虚拟地址空间中申请内存存放拖拽相关参数。 阅读详情

描述:类似qq使用中的文件拖拽到聊天,实现传输文件

1、C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\include\winuser.h 文件中要有

#define WM_DROPFILES                    0x0233

2、窗口属性中Accept Files要为true。

3、消息映射和响应

ON_WM_DROPFILES()

afx_msg void OnDropFiles(HDROP hDropInfo);

void ChatWithPerson::OnDropFiles(HDROP hDropInfo)
{

//文件的个数
UINT nNumOfFiles = DragQueryFile(hDropInfo, 0xFFFFFFFF, NULL, 0); 
if (0 == nNumOfFiles)
{
return;
}
TCHAR cFilePathName[_MAX_PATH] = {0};
int isFileNum(0);
for ( UINT nIndex=0 ; nIndex< nNumOfFiles; ++nIndex )
{
DragQueryFile(hDropInfo, nIndex, cFilePathName, _MAX_PATH); //得到文件名

if (FILE_ATTRIBUTE_DIRECTORY == GetFileAttributes(cFilePathName))
{// 如果是文件夹
if (nNumOfFiles - 1 == nIndex)
{
CPublicFuncManage obj;
obj.ShowMessageBox(_T("不能传送文件夹!\r\n"),BLMsgBox::ERROR_NULL,this);
return;
}
continue;
}
// 以独占方式打开, 如果被占用, 打开失败
HANDLE hFile = CreateFile(cFilePathName, GENERIC_READ, 
0, 
0,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
0);
if (INVALID_HANDLE_VALUE == hFile)
{
DisplayPromptMsg(_T("该文件正在使用中,不能传送!\r\n"));
continue;
}
CloseHandle(hFile);
// 以独占方式打开, 如果被占用, 打开失败, END
}
DragFinish(hDropInfo);
SetFocus();
}

vc++支持窗口及文字拖放的COleDropTarget扩展类 软件介绍: Vc++支持窗口及文字拖放的COleDropTarget扩展类0474606一个支持窗口拖放的VC++普遍类COleDropTargetEx,当引入此类后,便可接收拖放。它利用Windows消息来支持拖放,机制不同于COleDropTarget类与CView类直接的搭配关系,因此较以往的拖放方法简便、灵活,代码重用性非常好。 请在编辑框中输入文本,然后在编辑框按下左键,直到拖动鼠标出现,可以拖动到另一个编辑框或其它文本编辑软件,也可以从其它文本编辑软件拖动文本到编辑框中。 立即下载

相关推荐

VC 窗口文字拖动的例子.rar

VC 实现窗口文字拖动的例子,操作方法:请在编辑框中输入文本,然后在编辑框按下左键,直到拖动鼠标出现,可以拖动到另一个编辑框或其它文本编辑软件,也可以从其它文本编辑软件拖动文本到编辑框中。这款文字拖放操作类基于COleDropTarget,使用方便,新手通过本例子的方法也可轻松使用。

拖动效果的一个实现方案

本文介绍了通过CImageList实现拖动的方法

xianglitian的专栏 1万+

VCSticker:文字、图片便签效果(旋转、拖拽、放大)

VC贴纸 VCSticker用于添加文本或图像叠加层,您可以使用单个手指调整其大小并旋转它。 预习 安装 椰子足 将以下行添加到您的Podfile中: pod 'VCSticker' 然后,运行以下命令: $ pod install 手动地 只需将“ VCSticker”文件夹拖到您的Xcode项目中即可。 要求 iOS 12.0以上 斯威夫特5.0 用法 VCLabelSticker将根据内容文本自动更改其边界,因此您只需要在代码中指定其中心即可。 let label = VCLabelSticker ( center : self . view . center ) sticker. text = " 666 " self . view . addSubview (label) VCImageSticker let image = VCImageSticker ( fra

【功能】C# 控件实现内容拖动(DragDrop)功能(SamWang)

一、将控件内容拖到其他控件   在开发过程中,经常会有客户要求,拖动一个控件的数据到另外一个控件中。例如将其中一个ListBox中的数据拖到另一个ListBox中。或者将DataGridView中的数据拖动到TreeView的某个节点。     在应用程序中,是通过处理一系列事件,如DragEnter,DragLeave和DragDrop事件来实现在Windows应用程序中的拖放操作...

admi88888888的博客 862

win32 vc++使用文件拖拽

win32 vc++使用文件拖拽 对应blog链接: http://blog.youkuaiyun.com/zengraoli/article/details/39056525

机器视觉检测到底怎么做,经验分享

笔者做机器视觉检测已经有五六年了,也算是对机器视觉的检测技术有了一定的掌握。总的来说,基于机器视觉的检测技术主要包含三个部分:视觉采集模块、后台分析模块和动作决策模块。这几个分类,跟教科书上的有较大差异,很多同学觉得我在杜撰。笔者也不作反驳,因为这是笔者这些年工作经验的总结,自然区别于教科书。下面我们分开来讲这几个模块,同时会把笔者之前的论文做个推荐总结。 所有文章均可在博主的主页中找到,若无法找到,可以用搜索工具。博主的主页: https://blog.youkuaiyun.com/Aoulun 第..

Aoulun的博客 8676

C#之鼠标拖动复制文本功能

鼠标拖放复制文本功能

m0_46478448的博客 760

SpringBoot Redis入门(一)——redis、Lettuce、Redisson使用

Lettuce是SpringBoot自带的Redis客户端,性能比Redis要好, 是线程安全的,支持同步编程,异步编程,响应式编程,自动重新连接,主从模式,集群模块,哨兵模式Redisson 是一个在 Redis 的功能基础上实现的 Java 驻内存数据网格客户端。实现了分布式和可扩展的 Java 数据结构,提供很多分布式相关操作服务,例如分布式锁,分布式集合,可通过 Redis 支持延迟队列。

朗朗的博客 3833

VC实现文件拖拽

      在基于对话框的程序中,默认是没有这个消息的。       1、按下Ctrl+W,弹出类向导对话框,选择Class Info标签;      2、在Message fileter下拉列表中选择Window,然后再点击Message Maps标签;      3、这时就出现WM_DROPFILES消息了,添加该消息的响应函数。 void CDragDlg::OnDr

Koma的主页 1943

一个AI Agent顶十个软件,toB赛道正在大洗牌

一个AI Agent顶十个软件,toB赛道正在大洗牌

ith321的博客 1331

从信号到振镜:STM32F103 + XY2-100协议 + AM26LS31芯片的激光打标/雕刻系统信号链搭建指南

本文详细介绍了基于STM32F103微控制器和XY2-100协议的激光打标/雕刻系统信号链搭建方法。从数字振镜控制协议解析、AM26LS31差分驱动电路设计到信号完整性优化,提供了一套完整的解决方案,帮助工程师实现高精度激光控制系统的开发与调试。

weixin_42536058的博客 235

VC对话框如何接受拖拽文件

在vc基于对话框的程序中,默认是没有这个消息的。 1. 按下Ctrl+W,弹出类向导对话框,选择ClassInfo标签;  2. 在Message fileter下拉列表中选择Window,然后再点击MessageMaps标签;  3. 这时就出现WM_DROPFILES消息了,添加该消息的响应函数。void CDragDlg::OnDropFiles(HDROP hDropInfo)   

1170

KiCad 7.0 + 嘉立创打样:从原理图到实物,打造你的双LLCC68 LoRa串口透传板

本文详细介绍了使用KiCad 7.0设计双LLCC68 LoRa串口透传板的完整流程,从原理图设计到嘉立创打样。重点解析了AVR+LLCC68组合的优势、双模块布局的电磁兼容设计、SPI接口配置及射频走线技巧,并提供了实测数据和常见问题解决方案,帮助开发者高效实现物联网设备的低功耗远距离通信。

weixin_28693447的博客 259

VC实现文件拖拽功能

VC实现文件拖拽功能         我们使用的好多软件,只要把文件拖拽到消息框中就可以打开文件了。那么这种功能是如何实现的呢?在VC中其实很简单,只需要响应一个WM_DROPFILES消息就可以了。下面我用VC6.0给出个例子。         具体步骤为:在基于对话框的程序中,默认是没有这个消息的,按下Ctrl+W,弹出类向导对话框,选择Class Info标签,在Messag

zyw_anquan的专栏 1904

医疗器械软件测试输出内容(1)

*单元测试(Unit Testing):**单元测试是软件测试的最底层,用于验证软件中最小的可测试单元——函数、方法或模块。系统测试是在集成测试之后进行的,它对整个系统进行测试,验证系统在不同部分集成在一起后是否满足需求和规格。: 集成测试是在单元测试之后进行的,它关注不同单元之间的交互和集成。对于不同安全级别的软件(IEC 62304 A类、B类、C类),在体系上要求输出的文件内容有所区别。**说明:**将集成测试和软件系统测试合并为一项单一的计划和一组活动是可接收的。

ct745363083的博客 1867

Docker部署OnlyOffice踩坑实录:解决editor.bin下载失败的3种姿势

本文详细解析了Docker部署OnlyOffice时editor.bin下载失败的常见原因,并提供了三种核心解决方案。重点剖析了容器网络配置、Nginx反向代理(特别是proxy_pass设置)以及安全策略调整,帮助开发者彻底解决静态资源加载问题,确保文档协作平台稳定运行。

weixin_29281941的博客 871

VC6.0 文件拖拽

转自http://blog.sina.com.cn/s/blog_48554c770100q38a.html VC6.0中实现文件拖拽- - 我们经常使用到文件拖拽的方法,来对某一个或者某一些文件进行操作。 在VC中,我们可以不利用打开文件对话框来选择文件,从而对文件进行操作,我们也可以使用拖拽来实现这样的功能。具体如下: 1.首先,把一个对话框或者窗体的扩展属性【接受文件】勾选上。 2...

weixin_33815613的博客 219

从ADS到SystemVue:当简单链路预算不够用时,我的射频系统级仿真方案升级实录

本文详细介绍了从ADS到SystemVue的射频系统级仿真升级路径,重点分析了基础链路预算在多端口元件和复杂场景下的局限性,并提供了SystemVue在非线性系统验证和跨域协同分析中的优势。通过实际案例展示了如何平滑迁移工具链,提升仿真精度和效率,适用于5G、毫米波雷达等现代射频系统设计。

weixin_34233974的博客 343

VC实现文件管理器拖拽(Drag-and-Drop)

VC实现文件管理器拖拽(Drag-and-Drop) 在日常的程序中,为了操作的方便,经常需要使用鼠标拖拽的方式把文件管理器中的文件拖拽到我们自己写的程序中,以下就简单介绍以下实现该操作的方法。 其实文件管理器的拖拽方式实现起来很简单,主要通过几个函数来实现,消息WM_DROPFILES的响应函数OnDropFiles,还有三个API函数:DragQueryFile,DragQuery

2007

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

vc实现文件拖拽

VC实现文件拖拽 2009-01-18 17:36     使用过QQ的人都知道,只要把文件拖拽到消息框中就可以传送文件了。那么这种功能是如何实现的呢?其实很简单,只需要响应一个WM_DROPFILES消息就可以了。     在基于对话框的程序中,默认是没有这个消息的,

gfg2007的专栏 388

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

【转】VC实现文件拖拽

原文地址:http://bbs.51cto.com/thread-623957-1.html VC实现文件拖拽 2009-08-30 21:21 在基于对话框的程序中,默认是没有这个消息的。       1、按下Ctrl+W,弹出类向导对话框,选择Class Info标签;       2、在Message fileter下拉列表中选择Window,然后再点击Message Maps标签

sduzh的专栏 639

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

关于vc6程序拖拽文件WM_DROPFILE在win7,win8,vista上不能响应的解决方法

vc6程序拖拽文件WM_DROPFILE在win7,win8,vista上不能响应的解决方法,我用到了为了防止忘记 #define WM_COPYGLOBALDATA 0x0049  typedef WINUSERAPI BOOL WINAPI CHANGEWINDOWMESSAGEFILTER(UINT message, DWORD dwFlag);  void ChangeMessage

lgxing的专栏 2903

VC拖拽文件到控件

先介绍下,对对话框需要设置属性:AcceptFile为true; [cpp] view plaincopyprint? #include #include #include #include #include "resource.h" LRESULT CALLBACK DialogProc(HWND ,UINT,WPARAM,LPARAM) ;void OnI

myLogs的专栏:不积硅步,无以至千里;不积小流,无以成江海! 601

VC添加拖拽文件功能

1、选中需要添加相应的dlg,alt+enter,设置如下 2、ctrl+w,选择class info,设置如下 3、添加OnDropFiles消息 4、添加OnDropFiles 代码 5、ctrl+w添加OnQueryDragIcon消息 6、这时就可以实现在dlg上拖拽文件啦,第4部的strFileName变量就是拖拽文件的全路径了^,^ ...

nielilijy的专栏 896
下一篇: VC++中的复制粘贴实现
mincheat
博客等级 码龄17年 46粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值