欢迎来到天天文库
浏览记录
ID:20364329
大小:300.27 KB
页数:6页
时间:2018-10-12
《c实现im聊天信息输入显示控件-显示gif动画图片》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、现在的IM软件中,都可以显示动画的GIF表情,很简单就让好友知道自己需要表达的意思,但是.NET自带的RichTextBox没有提供这个功能,实现起来也很麻烦,今天这篇文章将介绍通过三种不同的方法实现在RichTextBox中添加GIF动画图片。网上很容易找到通过QQ自带的Image01e.dllActiveX控件实现插入动画表情,但是却没有C#写的,另外研究了下飞信的实现,它是通过DynamicGifCtl.dllActiveX控件实现的,网上说DynamicGifCtl原来是幵源的,也许是飞信把它买了吧,从2
2、.0版本后就不幵源了,但是还可以找到他的1.4.1.0版本的DynamicGif.dll。下面先介绍通过这两种方法在RichTextBox中插入GIF。插入GIF到RichTextBox中主要是通过IRichEditOle接口来实现的,至于怎么获得IRichEditOle接口,和需要定义的大量接口和COM相关的东西,都是从CodeProject上的一篇文章(InsertingimagesintoaRichTextBoxcontrol(theOLEway))上得来的,大家可以下载下来看看。首先要对两个ActiveX
3、控件进行注册,注册文件和DLL放在ChatRichTextBoxDemoChatRichTextBoxDemobinDebugDLL文件夹下,运行Regist.bat就可以注册了。注册后,在项目的引用文件夹+点右键+添加引用+选择COMTab按钮,就可以一找到它了。如下图:添加引用HETCOM项目浏览最近组件名称▼ExchngUIActiveXControlmoduleEventSystem1.0TypeLibraryEnglishUStfordBreaker1.0TypeDynamicGifCtl1.0
4、类型库DWUpdat.eService1.0TypeLibrarydsdmoprp1.0TypeLibraryDMM1.0TypeLibraryDMGArtEffects1.0TypeLibraryDiskManagementSnap-InObjectL..DirectX8forVisualBasicTypeDirectX7forVisualBasicType..DirectShowStrearn1.0TypeLibraryDirectAnimationLibrary类型库版本1.01.01.01.01.21.0
5、1.01.01.01.01.01.01.01.0mmut?
6、fSsystev取消确定分别添加了引用后,就可以在项目中使用它们了。下面来看看分别利用ImgaeOle和DynnamicGif插入GIF到RichTextBox的方法:publicboolInsertImageUselmageOle(stringpath)E{Itry白{IIGifAnimatorgif=newGifAnimatorClass();gif.LoadFromFile(path);gif.TriggerFrameChangeO;Iif(gifisIOleObject)白{Iintindex=_ind
7、ex++;IREOBJECTreObj=RichEditOle.InsertOleObject(I(IOleObject)gif,index);IRichEditOle.UpdateObjects(reObj.cp);OleObjectList.Add(index,reObj);Ireturntrue;h}Ireturnfalse;h}Icatch(Exception)白{Ireturnfalse;I-}L}publicboolInsertImageUseDynamic(stringpath)E{Itry白{II
8、DynamicGifgif=newDynamicGifClass();gif.LoadFromFile(path);Igif.Play0;Iif(gifisIOleObject)白{Iintindex=_index++;I(IOleObject)gif,Iindex);IRichEditOle.UpdateObjects(reObj.cp);OleObjectList.A
此文档下载收益归作者所有