richedit研究 – 拷贝&粘贴初步实现效果

花了四天时间,再次对QQ的剪切板格式做了深入研究,对im_richedit做了一次重构使得richframe作为抽象的支持动画功能占位块,派生出richpicture。从基本功能上来讲,可以实现qq消息框的功能。

我支持的剪贴板格式如下:

enum FETCINDEX {
  kFETCINDEXUnicode,      //  Unicode 文本
  kFETCINDEXAnsi,         //  ANSI 文本
  kFETCINDEXDIB,          //  DIB
  kFETCINDEXHDROP,        //  HDROP
  kFETCINDEXHTML,         //  HTML
  kFETCINDEXIMRichEdit,   //  自定义格式
};


未来打算扩展的OLE类型如下:

enum IMRichElementType {
  kIMRichElementText,            //  字符串
  kIMRichElementCustomPicture,   //  自定义图片
  kIMRichElementSystemPicture,   //  系统图片
  kIMRichElementFancyCharacter   //  炫彩字符
};


时间紧张,很多细节处理不完善,上周还初步实现了chromium的windowless版的embed方案,新的一周要努力完善。

效果图如下(支持HTML拷贝咯!!!):

richedit研究 – 拷贝&粘贴初步实现效果_第1张图片

执行文件下载

技术讲解会在现在特性细节完成后继续。扯点别的,继chrome os的shell放弃web实现后,fb也倾向native app而暂缓html5,似乎给html5泼了一小点冷水。新技术的稳定需要一个过程,而商业公司往往看重的是当前的运营、盈利。当然html5本身仅仅是加入了一些语义、植入了一些sdk,而作为Windows开发者擅长的也是对sdk封装而非语言层面的封装,相比之下,web方面我比较热衷用html5新特性(canvas)来实现UI,而对于原生的html元素拼凑界面有点摸不着门道。

你可能感兴趣的:(it)