博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
剪贴板延迟处理技术
阅读量:4954 次
发布时间:2019-06-12

本文共 1073 字,大约阅读时间需要 3 分钟。

ON_WM_RENDERFORMAT()

MFC 消息映射 

 afx_msg void OnRenderFormat(UINT);

 

BEGIN_MESSAGE_MAP(CMFCApplication2Dlg, CDialogEx)

ON_WM_RENDERFORMAT()

 

END_MESSAGE_MAP()

 

用于剪贴板延迟处理。

此发此消息  SetClipboardData(CF_TEXT, NULL);

 

发现在.net 想实现 延迟粘贴,只要从IOjbectData 实现一个自定义类型,并且重写getdata接口。

在Clipborad.setdata时,将内容传为Null  在粘贴时就会主动调用 此objectdata的数据getdata函数提供数据。

public class DataObjectErist : DataObject{        public override object GetData(string format, bool autoConvert)        {            if (String.Compare(format, NativeMethods.CF_TEXT, StringComparison.OrdinalIgnoreCase) == 0 )            {
objdata 为你要实际处理的类型的对象数据       base.SetData(NativeMethods.CFSTR_FILEDESCRIPTORW, objdata); return base.GetData(format, autoConvert); }} DataObjectErist.SetData(NativeMethods.CFSTR_FILEDESCRIPTORW, null);  Clipboard.SetDataObject(dataObject);

 最后由 CF_HDROP 转为 CFSTR_FILEDESCRIPTORW

在需要的时候 写入 FileContents 就可以完成整个任务。

 

为了监控监贴板内容变化,发现 得写  protected override void WndProc(ref Message m) 得不到消息,需要重写   protected override void DefWndProc(ref Message m)

转载于:https://www.cnblogs.com/erist/p/10083488.html

你可能感兴趣的文章
Unity For Android Cardboard App ( 1 ):基础入门
查看>>
用R语言进行文本挖掘和主题建模
查看>>
ajax全能分页
查看>>
asp.net上传图片自动生成缩略图功能代码
查看>>
图解MBR分区无损转换GPT分区+UEFI引导安装WIN8.1 分类: ...
查看>>
css常见问题解决方法
查看>>
数组和字符串的方法
查看>>
Follow somebody
查看>>
Linux下Eclipse配置安装 PyDev(Pydev插件一直不能成功,安装这个插件失败的问题)...
查看>>
java.lang.IllegalArgumentException: Requested window android.os.BinderProxy@450b2f48 异常处理
查看>>
Invalid code signing entitlements. Your application bundle's signature contains
查看>>
爬取校园新闻首页的新闻
查看>>
Dynamic Shortest Path CodeForces - 843D (动态最短路)
查看>>
Houdiniseed
查看>>
apache 下vhost.conf文件
查看>>
Python3-笔记-E-015-库-subprocess子进程
查看>>
virmon防火墙64位正式版(暂定)公布
查看>>
什么是DDOS(复制)
查看>>
sharepoint search配置爬网站
查看>>
【已解决】Mysql中使用group by出错
查看>>