vc可视化编程,实现字母的跳动

来源:百度知道 编辑:UC知道 时间:2024/07/04 19:18:04
要求:窗口显示26个字母,从左向右依次将字母提高10个象素单位,并且变为红色,然后回到正常位置;当到达最右面后改变方向,从右向左变红并提高10个象素。然后恢复正常。

会的朋友给个CASE WM_PAINT里面的一小段代码
还有在CASE WM_CREATE 里面才能做到刷新的效果

或者给个思路也行

用TextOut函数就能实现,时间太晚了,给你个思路吧
设全局变量n = 0(范围 0 -- 26*2-1), p=1 (p为方向 1 或 -1)

1,WM_TIMER 来 调用绘图过程(参见SetTimer 和 KillTimer),

CClientDC dc(this);

OnDraw(&dc); //主动绘制
dc.InvalidateRect(rect); //刷新区域

//增加计数器
n += p;
if(n < 0 || n >= 2*26)
{
p=-p; n += p;
}

2,OnDraw(CDC * pDC)中:

TCHAR chs26=new TCHAR[26]={.....}
int nIndex = n/2; //需要跳动的字符位置
int nTB = n % 2 //得到 0 或 1 确定绘制在上方还是下方

用FillPath 函数清除绘图区域,用 TextOut函数将内容绘制到目标位置

3,WM_PAINT中:
CPaintDC dc(this);
OnDraw(&dc);

10? 真多啊。