给大家提供一个可以显示图片(包括GIF动画)的ATL控件,以及在RichEdit中如何使用此控件插入图片。其实自己没做什么,主要是参考了Oleg Bykov的文档,只是把他的代码加进ATL工程中封装成了一个ATL控件,原文地址在:http://www.codeproject.com/KB/graphics/pictureex.aspx
最直接的办法是您下载已经编译好的文件,您下载MaiYuanOleImg.zip然后解压缩,运行解压缩后目录下Reg.bat就可以直接使用此控件了。点击下载
如果您需要对此控件作修改,可以下载此控件的源代码。点击下载
源代码的一点说明,MYOleImage.h和MYOleImage.cpp中的CMYOleImage类用来显示图像和GIF动画。对这个类,绝大部分的代码是从Oleg Bykov的CPictureExWnd这个类Copy而来。
修改的地方主要在OnDraw(ATL_DRAWINFO& di)这个成员函数中。GIF的动画是采用开线程的方式,我想,如果您需要显示几百上千的GIF动画,那会把您的电脑跑得很慢。
自己添加了一个函数Load(BSTR),调用此函数将设置控件要显示的图像。
其他还有小的修改,请参照源代码
然后介绍在RichEdit中使用此控件插入图片(包括GIF动画), 采用在RichEdit中插入COM对象的方式插入此控件,这里只需要知道此控件对象的CLSID为:CLSID_MYOleImage,