在mfc中有没有办法实现下图中的逐字输出

[复制链接]
查看11 | 回复4 | 2011-9-6 12:22:00 | 显示全部楼层 |阅读模式
即使这个图片不是用mfc做出来的,但是有没有办法去实现?用了延迟函数sleep再加上updatedata等函数的组合都不行…
回复

使用道具 举报

千问 | 2011-9-6 12:22:00 | 显示全部楼层
这个可以实现啊,用Timer定时器首先定义一个类变量intm_nCount,在OnInitDialog中初始化为0,然后定义类变量CStringm_str;来表示下边对话框中的文字,把要输出的所有文字赋给这个变量然后在定时器中写下边代码,其中m_edit为编辑框的控件变量voidC*******::OnTimer(UINTnIDEvent){m_nCount;m_edit.SetWindowText(m_str.Left(m_nCount));if(m_nCount==m_str.GetLength()){KillTimer(1);m_nCount=0;}CDialog::OnTimer(nIDEvent);}在解答按钮里面写如下如下代码:其中TIME为文字出现的速度,可以根据实际需求调整,也可以做成变量在程序中可以修改SetTimer(1,TIME,NULL);
回复

使用道具 举报

千问 | 2011-9-6 12:22:00 | 显示全部楼层
给个效率比较低的简单方法:只要是在一个for循环中每次把text中的文字赋值一次就可以了每次多赋值一个字符,赋值之后update就行了不用加sleep,会导致界面死掉的
回复

使用道具 举报

千问 | 2011-9-6 12:22:00 | 显示全部楼层
使用定时器埃每次消息来处理下就可以了。
回复

使用道具 举报

千问 | 2011-9-6 12:22:00 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行