<script src="win.js" type="text/javascript"></script>
在网上查找一些方法,也在codeproject上下载了几个源码,发现都没有达到我的目的。于是自己研究出一个方法:
实现效果:文本从右向左滚动,初始字符串在Static控件左边逐渐消失,当全部消失后,从Static的右边向左一点点的显示出来。如果Static控件的文本变化,则滚动从头开始。
实现方法分为两步:
1. 从Static控件左边一点点消失
设置Timer,Timer执行一次,字符串从头的位置去掉一个字符。然后UpdateData()。
2. 从Static控件右边一点点显示出来
这个没有别的好办法,只有在Static控件中绘图。为了去除闪烁,使用内存DC绘图。
整个代码如下:
void CAutoRunDlg::scrollServerInfo( )
{
CString strCurText;
if ( m_bScrollFlag )
{
strCurText = m_strScrollText.Right( m_strServerInfo.GetLength() - 1 );
if ( strCurText.GetLength() == 0 ) // 字符串从左边缘全部消失
{
m_strServerInfo = "";
UpdateData( FALSE );
m_bScrollFlag = FALSE;
GetDlgItem( IDC_E