通过对一个CStringArray插入了很多条字符串,现在要在对话框上从下往上滚动显示出来
大体上的思路还是清楚:设置定时器,不断刷新界面
但是做出来的效果不尽人意
我想要实现的是:首先第一个字符串从最底下出来,接着第二条在第一条后面出来…………直到最后一条从最顶端“出去”;接着继续这个“循环”
以下是我的代码(在OnTimer()里面执行):void CAboutDlg::DrawText(CDC *pDC)
{
if(Pos<=0)
Pos=rcClient.Height();
for(int i=0;i《strArray.GetSize();i++)
{
CSize size=pDC->GetTextExtent(strArray.GetAt(i));
int xPos=(rcClient.Width()-size.cx)/2-24;
int yPos=Pos-(i*size.cy)+40;
CFont* pOldFont;
pOldFont=pDC->SelectObject(&ft);
pDC->SetBkMode(TRANSPARENT);
pDC->SetTextColor(RGB(0,200,0));
pDC->TextOut(xPos,yPos,strArray.GetAt(i));
pDC->SelectObject(pOldFont);
}
Pos-=20;}