33,311
社区成员
发帖
与我相关
我的任务
分享
SetTimer(1,500,NULL);//定时器时间间隔设成0.5s
m_strBuf="曾经有一段真挚的感情摆在我的面前...\r\n......";
void CTextDlg::OnTimer(UINT nIDEvent)
{
if (m_nCount<m_strBuf.GetLength())
{
// 取出左部的文本
CString str=m_strBuf.Left(m_nCount+1);
char ch=m_strBuf.GetAt(m_nCount);
// 如果不是ASCII字符则应把字符计数加2,否则加1
if (ch<0||ch>256)
{
m_nCount++;
}
m_nCount++;
// 显示文字
GetDlgItem(IDC_EDIT_TEXT)->SetWindowText(str);
// 更新光标的位置
CEdit* pEdit=(CEdit*)GetDlgItem(IDC_EDIT_TEXT);
pEdit->SetSel(m_nCount,m_nCount);
}
else
{
// 让光标在位置闪烁
// for (int i=5;i>0;i--)
// {
// CEdit* pEdit=(CEdit*)GetDlgItem(IDC_EDIT_TEXT);
// pEdit->SetSel(m_nCount,m_nCount);
//
// Sleep(500);
// }
// 文本全选
CEdit* pEdit=(CEdit*)GetDlgItem(IDC_EDIT_TEXT);
pEdit->SetSel(0,-1);
// 清除定时器
KillTimer(1);
// 暂留文本对话框
Sleep(3000);
// 关闭文本对话框
SendMessage(WM_CLOSE);
}
CDialog::OnTimer(nIDEvent);
}
#include <stdio.h>
#include <math.h>
#include <time.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char str[100] = "好好学习";
for(int i = 0;i < strlen(str);)
{
char s[3];
for(int j = 0; j < 2; ++j )
{
s[j] = str[i++];
}
s[j] = '\0';
printf("%s\n",s);
}
return 0;
}