📄 在任意的开发语言的richedit控件中,插入gif动画 - 知秋一叶~专栏 - csdnblog.htm
字号:
labels[i].innerHTML = text; return; } }}//]]></SCRIPT>
<SCRIPT
src="在任意的开发语言的RichEdit控件中,插入GIF动画 - 知秋一叶~专栏 - CSDNBlog.files/WebResource.axd"
type=text/javascript></SCRIPT>
<SCRIPT type=text/javascript>
<!--
function WebForm_OnSubmit() {
if (typeof(ValidatorOnSubmit) == "function" && ValidatorOnSubmit() == false) return false;
return true;
}
// -->
</SCRIPT>
<DIV id=top>
<DIV>
<TABLE>
<TBODY>
<TR>
<TD class=HeaderTitles>
<H1><A class=headermaintitle id=Header1_HeaderTitle
href="http://blog.csdn.net/kql01/">知秋一叶~专栏</A></H1>
<P id=tagline>结伴行,千山也定能踏过</P></TD></TR></TBODY></TABLE></DIV>
<DIV class=HeaderBar>
<TABLE class=HeaderBar id=HeaderBar>
<TBODY>
<TR>
<TD class=HeaderBarTab noWrap> <A href="http://www.csdn.net/"
target=_blank>CSDN</A> | <A href="http://community.csdn.net/"
target=_blank>社区</A> | <A href="http://dev.csdn.net/"
target=_blank>技术中心</A> | <A id=Header1_MyLinks1_HomeLink
title=到聚合站点 href="http://blog.csdn.net/"
target=_blank>BLOG首页</A> | <A id=Header1_MyLinks1_PersonalHome
title="访问 知秋一叶~专栏" href="http://blog.csdn.net/kql01/"
target=_blank>我的首页</A> | <A id=Header1_MyLinks1_PersonalResume
href="http://job.csdn.net/resumes/kql01.aspx">个人档案</A> | <A
id=Header1_MyLinks1_ContactLink accessKey=9
href="http://blog.csdn.net/kql01/contact.aspx">联系作者</A> | <A
id=Header1_MyLinks1_Syndication
href="http://blog.csdn.net/kql01/Rss.aspx">聚合</A> <A class=XMLLink
id=Header1_MyLinks1_XMLLink
href="http://blog.csdn.net/kql01/Rss.aspx"><IMG
src="在任意的开发语言的RichEdit控件中,插入GIF动画 - 知秋一叶~专栏 - CSDNBlog.files/xml.gif"
border=0></A> | <A id=Header1_MyLinks1_HyperLink1
href="http://search.csdn.net/search_blog.asp"
target=_blank>搜索</A> | <A id=Header1_MyLinks1_Admin
href="http://writeblog.csdn.net/">登录</A> <IMG id=Header1_BlueTab
src="在任意的开发语言的RichEdit控件中,插入GIF动画 - 知秋一叶~专栏 - CSDNBlog.files/BlueTabRight.jpg"
align=absMiddle border=0> </TD>
<TD class=HeaderBarTabBack noWrap width="100%">
<DIV class=BlogStatsBar>
<TABLE class=BlogStatsBar>
<TBODY>
<TR>
<TD width="100%"></TD>
<TD class=BlogStatsBar noWrap> 17篇原创: 0篇翻译: 0篇转载: 11394次点击:
24个评论: 0个Trackbacks
</TD></TR></TBODY></TABLE></DIV></TD></TR></TBODY></TABLE></DIV></DIV>
<DIV id=leftmenu>
<H3>公告</H3>
<DIV align=center><A href="http://www.amazingcounters.com/" target=_top><IMG
alt="Web Counters"
src="在任意的开发语言的RichEdit控件中,插入GIF动画 - 知秋一叶~专栏 - CSDNBlog.files/counter.png"
border=0></A><BR><SMALL><A
href="http://www.bestonlinecoupons.com/coupons/amazon.asp" target=_top><FONT
color=#999999>Amazon.com</FONT></A> <A
href="http://www.bestonlinecoupons.com/coupon/books.asp" target=_top><FONT
color=#999999>Discount Books</FONT></A></SMALL></DIV>
<HR>
<IMG
src="在任意的开发语言的RichEdit控件中,插入GIF动画 - 知秋一叶~专栏 - CSDNBlog.files/o_idg_butt.gif">
</IMG><IMG
src="在任意的开发语言的RichEdit控件中,插入GIF动画 - 知秋一叶~专栏 - CSDNBlog.files/o_idg_butt.gif">
</IMG>
<HR>
<A title=用狗狗订阅
href="http://www.gougou.com/sub/http://blog.csdn.net/kql01/rss.aspx"
target=_blank><IMG
src="在任意的开发语言的RichEdit控件中,插入GIF动画 - 知秋一叶~专栏 - CSDNBlog.files/icon_blank.gif"
border=0></A>
<H3 class=listtitle>文章</H3>
<UL class=list>
<LI class=listitem><A
href="http://blog.csdn.net/kql01/category/75277.aspx">C/C++</A><A
href="http://blog.csdn.net/kql01/category/75277.aspx/rss">(RSS)</A>
<LI class=listitem><A
href="http://blog.csdn.net/kql01/category/75276.aspx">MFC/ATL/WTL</A><A
href="http://blog.csdn.net/kql01/category/75276.aspx/rss">(RSS)</A>
<LI class=listitem><A
href="http://blog.csdn.net/kql01/category/75283.aspx">Python/wxPython</A><A
href="http://blog.csdn.net/kql01/category/75283.aspx/rss">(RSS)</A>
<LI class=listitem><A
href="http://blog.csdn.net/kql01/category/77438.aspx">工具软件</A><A
href="http://blog.csdn.net/kql01/category/77438.aspx/rss">(RSS)</A>
<LI class=listitem><A
href="http://blog.csdn.net/kql01/category/75282.aspx">内核驱动</A><A
href="http://blog.csdn.net/kql01/category/75282.aspx/rss">(RSS)</A>
<LI class=listitem><A
href="http://blog.csdn.net/kql01/category/75356.aspx">嵌入式系统</A><A
href="http://blog.csdn.net/kql01/category/75356.aspx/rss">(RSS)</A>
<LI class=listitem><A
href="http://blog.csdn.net/kql01/category/75278.aspx">数据结构/算法</A><A
href="http://blog.csdn.net/kql01/category/75278.aspx/rss">(RSS)</A>
<LI class=listitem><A
href="http://blog.csdn.net/kql01/category/75280.aspx">数据压缩</A><A
href="http://blog.csdn.net/kql01/category/75280.aspx/rss">(RSS)</A>
<LI class=listitem><A
href="http://blog.csdn.net/kql01/category/75281.aspx">网络安全</A><A
href="http://blog.csdn.net/kql01/category/75281.aspx/rss">(RSS)</A>
<LI class=listitem><A
href="http://blog.csdn.net/kql01/category/81149.aspx">与我同行</A><A
href="http://blog.csdn.net/kql01/category/81149.aspx/rss">(RSS)</A></LI></UL>
<H3 class=listtitle>收藏</H3>
<UL class=list>
<LI class=listitem><A
href="http://blog.csdn.net/kql01/category/103047.aspx">情感美文</A>
<LI class=listitem><A
href="http://blog.csdn.net/kql01/category/92931.aspx">休闲异趣</A></LI></UL>
<H3 class=listtitle>相册</H3><!--category title-->
<UL class=list>
<LI class=listitem><A
href="http://blog.csdn.net/kql01/Gallery/80999.aspx">2004-12文章图片</A>
<LI class=listitem><A
href="http://blog.csdn.net/kql01/Gallery/91510.aspx">2005-1 文章图片</A>
<LI class=listitem><A
href="http://blog.csdn.net/kql01/Gallery/162480.aspx">2005-12</A>
<LI class=listitem><A
href="http://blog.csdn.net/kql01/Gallery/100218.aspx">2005-2文章图片</A>
<LI class=listitem><A
href="http://blog.csdn.net/kql01/Gallery/105491.aspx">2005-3文章图片</A>
<LI class=listitem><A
href="http://blog.csdn.net/kql01/Gallery/199921.aspx">2006-05 文章图</A></LI></UL>
<H3 class=listtitle>存档</H3>
<UL class=list>
<LI><A href="http://blog.csdn.net/kql01/archive/2006/09.aspx">2006年09月(1)</A>
<LI><A href="http://blog.csdn.net/kql01/archive/2006/05.aspx">2006年05月(1)</A>
<LI><A href="http://blog.csdn.net/kql01/archive/2005/12.aspx">2005年12月(2)</A>
<LI><A href="http://blog.csdn.net/kql01/archive/2005/10.aspx">2005年10月(2)</A>
<LI><A href="http://blog.csdn.net/kql01/archive/2005/07.aspx">2005年07月(1)</A>
<LI><A href="http://blog.csdn.net/kql01/archive/2005/03.aspx">2005年03月(2)</A>
<LI><A href="http://blog.csdn.net/kql01/archive/2005/02.aspx">2005年02月(1)</A>
<LI><A href="http://blog.csdn.net/kql01/archive/2005/01.aspx">2005年01月(3)</A>
<LI><A
href="http://blog.csdn.net/kql01/archive/2004/12.aspx">2004年12月(4)</A></LI></UL><SPAN
id=Anthem_RecentComments_ltlComments__><SPAN id=RecentComments_ltlComments>
<H3 class=listtitle>最近评论</H3>
<UL class=list>
<LI class=listitem>zyf2000qwe:<A title=点击查看《回复:使用Gdiplus制作透明颜色的GIF图片》
href="http://blog.csdn.net/kql01/archive/2004/12/23/227103.aspx#528299">知秋兄,你好?我想做一個通訊軟件(一年時間)<BR>我想把FLASH插入到RICHEDIT<BR>可以合作,或者提供一下技術支持吧</A>
<LI class=listitem>zyf2000qwe:<A title=点击查看《回复:永远有多远?--小计对RichEdit的研究》
href="http://blog.csdn.net/kql01/archive/2004/12/24/227788.aspx#528298">知秋兄,你好?我想做一個通訊軟件(一年時間)<BR>我想把FLASH插入到RICHEDIT<BR>可以合作,或者提供一下技術支持吧</A>
<LI class=listitem>zyf2000qwe:<A title=点击查看《回复:使用Gdiplus制作透明颜色的GIF图片》
href="http://blog.csdn.net/kql01/archive/2004/12/23/227103.aspx#528296">知秋兄,你好?我想做一個通訊軟件(一年時間)<BR>我想把FLASH插入到RICHEDIT<BR>可以合作,或者提供一下技術支持吧</A>
<LI class=listitem>zyf2000qwe:<A title=点击查看《回复:永远有多远?--小计对RichEdit的研究》
href="http://blog.csdn.net/kql01/archive/2004/12/24/227788.aspx#528295">知秋兄,你好?我想做一個通訊軟件(一年時間)<BR>我想把FLASH插入到RICHEDIT<BR>可以合作,或者提供一下技術支持吧</A>
<LI class=listitem>zyf2000qwe:<A title=点击查看《回复:永远有多远?--小计对RichEdit的研究》
href="http://blog.csdn.net/kql01/archive/2004/12/24/227788.aspx#528294">知秋兄,你好?我想做一個通訊軟件(一年時間)<BR>我想把FLASH插入到RICHEDIT<BR>可以合作,或者提供一下技術支持吧</A></LI></UL></SPAN></SPAN><BR><BR></DIV>
<DIV id=main>
<DIV class=Tag>
<SCRIPT language=javascript
src="在任意的开发语言的RichEdit控件中,插入GIF动画 - 知秋一叶~专栏 - CSDNBlog.files/urltag.aspx"></SCRIPT>
<DIV style="CLEAR: both"></DIV></DIV>
<SCRIPT>function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}</SCRIPT>
<DIV class=post>
<DIV class=postTitle><A
href="http://blog.csdn.net/kql01/archive/2005/01/19/260148.aspx"><IMG height=13
src="在任意的开发语言的RichEdit控件中,插入GIF动画 - 知秋一叶~专栏 - CSDNBlog.files/authorship.gif"
width=15 border=0> 在任意的开发语言的RichEdit控件中,插入GIF动画</A> </DIV>
<DIV class=postText>
<P>
前一段时间写了DynamicGif控件,优化代码的时候,顺便把Enabled属性给删除掉了,没想到在VB中却出了问题,只好再把属性加上。另外在VB中调用的时候,发现背景不能够自动更新,导致后一帧图像和前一帧重叠。本想进一步研究一下VB的ActiveX的工作原理,可惜我是个VB盲,没办法了。<BR> 在RichEdit2.0版本中,对ActiveX控件接口的调用,改动比较大,因此增加Enabled属性后,在插入到2.0版的Richedit控件中,需要在InsertObject调用成功后,调用下面方法:<BR>
lpDynamicGif->put_Enabled( VARIANT_TRUE
);<BR>来允许在Richedit控件中显示。<BR><BR>
另外,在ATL对话框和MFC的对话框中,创建DynamicGif控件时,原理是完全不同的。在MFC中,创建的是无窗口控件,占用对话框的显示区域,这样有些GIF文件会导致对话框不停的刷屏,给人一种闪烁的感觉。在ATL的对话框中,创建了一个对应的窗口,GIF图片显示在新建的窗口中,这样就没有闪烁的感觉,显示也比较正常。因此,可以根据不同的需要,选择不同的创建方式。<BR> 下面是如何在ATL/WTL对话框中使用控件的源代码:<BR>
CAxWindow dynAxWindow;<BR> dynAxWindow.m_hWnd
= NULL;<BR> dynAxWindow.Attach(
GetDlgItem(IDC_DYNAMICGIF1) );</P>
<P> HRESULT hr = dynAxWindow.QueryControl(
&m_spDynGif );<BR> if( hr == S_OK
)<BR> {<BR>
m_spDynGif->LoadFromFile( CComBSTR(L"E:\\8.gif")
); <BR> }<BR>
dynAxWindow.Detach();<BR><STRONG>
注:上述代码应该在VC7之后的编译环境编译,VC6中有资源泄漏的问题(ATL3.0的BUG)。</STRONG><BR> 获取IDynamicGif接口后,就可以调用相关的方法了。<BR>
另外,为了方便VB6用户使用,引出了两个函数,InsertGifToRicheditW/A,来支持直接将文件插入到RichEdit控件中,两个函数的原型如下:<BR><BR> STDAPI
InsertGifToRicheditW( HWND hWnd, LPCWSTR lpszGifFile
);<BR> STDAPI InsertGifToRicheditA( HWND hWnd, LPCSTR
lpszGifFile );<BR><BR>
成功返回一个唯一的cookie标识控件,失败返回0。<BR>
这里为了限制CPU的使用率,限制GIF的大小最大为150*150,一个进程中最多创建50个对象(实际上超过50以后,CPU几乎就占用100%了)。<BR>
通过使用这两个函数,可以在任何可以使用动态连接库的语言中使用,比如Delphi、PB、C#等几乎任何开发WIN32的工具中,甚至WIN32中汇编。<BR>
在VC中使用的代码如下: </P>
<P class=MsoNormal
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"
align=left><SPAN lang=EN-US
style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">
typedef</SPAN><SPAN lang=EN-US
style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">
HRESULT ( STDAPICALLTYPE *pfnInsertGifToRichedit_t)( HWND hWnd, BSTR lpszGifFile
);
<P></P></SPAN>
<P></P>
<P></P>
<P></P>
<P></P>
<P></P>
<P class=MsoNormal
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"
align=left><SPAN lang=EN-US
style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt"><SPAN
style="mso-tab-count: 2">
</SPAN>HMODULE hDll = LoadLibrary( "dynamicgif.dll" );
<P></P></SPAN>
<P></P>
<P></P>
<P></P>
<P></P>
<P></P>
<P class=MsoNormal
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"
align=left><SPAN lang=EN-US
style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt"><SPAN
style="mso-tab-count: 2">
</SPAN>pfnInsertGifToRichedit_t pfnInsertGif = NULL;
<P></P></SPAN>
<P></P>
<P></P>
<P></P>
<P></P>
<P></P>
<P class=MsoNormal
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"
align=left><SPAN lang=EN-US
style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt"><SPAN
style="mso-tab-count: 2">
</SPAN>pfnInsertGif = (pfnInsertGifToRichedit_t)GetProcAddress(
hDll,"InsertGifToRicheditW");
<P></P></SPAN>
<P></P>
<P></P>
<P></P>
<P></P>
<P></P>
<P class=MsoNormal
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"
align=left><SPAN lang=EN-US
style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt"><SPAN
style="mso-tab-count: 2">
</SPAN><SPAN style="COLOR: blue">if</SPAN>( pfnInsertGif != NULL )
<P></P></SPAN>
<P></P>
<P></P>
<P></P>
<P></P>
<P></P>
<P class=MsoNormal
style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"
align=left><SPAN lang=EN-US
style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt"><SPAN
style="mso-tab-count: 3">
</SPAN>pfnInsertGif( m_richEdit1.m_hWnd, CComBSTR( dlg.GetPathName() ) );
<P></P></SPAN>
<P></P>
<P></P>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -