GifOleControl 可插入图片,包括BMP、jpg、png等,图片大小不限,重点是可以在richedit中插入gif动画,暂不支持插入SWF格式。同时可以在插入的图片、gif中直接显示tooltip,方便应用。
GifOleControl 定义的接口如下
interface IGifCtrl : IDispatch{
[propput, bindable, requestedit, id(DISPID_BORDERCOLOR)]
HRESULT BorderColor([in]OLE_COLOR clr);
[propget, bindable, requestedit, id(DISPID_BORDERCOLOR)]
HRESULT BorderColor([out, retval]OLE_COLOR* pclr);
[propget, bindable, requestedit, id(DISPID_HWND)]
HRESULT HWND([out, retval]LONG_PTR* pHWND);
[id(1), helpstring("方法LoadFromFile")] HRESULT LoadFromFile([in] BSTR bstrFileName);
[id(2), helpstring("方法LoadFromFileSized")] HRESULT LoadFromFileSized([in] BSTR bstrFileName, [in] INT nHeight);
[id(3)] HRESULT GetRECT( [out] RECT *rc );
[id(4)] HRESULT ShowHint( );
[id(5)] HRESULT SetHostWindow( [in] long hwndHostWindow, [in] INT nNotyfyMode );
[id(6)] HRESULT LoadFlash( [in] BSTR bstrFileName, [in] BSTR bstrFlashVars, [in] INT nWidth, [in] INT nHeight );
[id(7)] HRESULT SetTooltip( [in] BSTR bstrHint);
[id(8)] HRESULT GetTooltip( [out, retval] BSTR * bstrHint);
[id(9)] HRESULT GetFilePath( [out, retval] BSTR * bstPath);
};
通过导入ActiveX后生成的类:
通过该COM组件,demo如下:
下面介绍控件的使用方法,包括两种形式:1、在对话框中使用;2、在RichEdit中使用。
1、在对话框中使用:
首先注册控件GifOleControl .dll,将GifOleControl .dll拷贝到系统目录下,然后使用命令regsvr32 GifOleControl .dll注册控件。
在对话框资源编辑器中,右击并选择“插入ActiveX控件”,选择“Gifctrl class”,插入本控件。然后在插入的ActiveX控件上右击,并选择“添加变量”,生成对应的包装类和对应的实例,这样就可以调用对象的方法了。
2、 在RichEdit中使用
在RichEdit中使用的方法和上篇文章中的方法基本相同,只需替换调对应的类和函数调用即可。但是在这里,可以直接使用接口和接口GUID的定义。具体的代码如下