Click here to Skip to main content
15,885,366 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Now,I can make the string rolling in the dialog of vc, but the problem is that it can't show very perfectly,when it rolling from the bottom to the top,where it rolling, a long line would following, the code is in function OnTimer(),a fraction of code as follows:
C++
m_nWidth+=5;            //defined in class
CClientDC dc(this);
TEXTMETRIC tm;
dc.GetTextMetrics(&tm);
CRect rect;
rect.left=0;
rect.top=200;
rect.right=m_nWidth;
rect.bottom=rect.top+tm.tmHeight;

dc.SetTextColor(RGB(0,255,0));
dc.SetBkColor(RGB(240,240,240));
CString str;
str.LoadString(IDS_STRING);

rect.top=150;
rect.bottom=rect.top+tm.tmHeight;
dc.DrawText(str,rect,DT_RIGHT);

CSize sz=dc.GetTextExtent(str);
if(m_nWidth==sz.cx)
{
    m_nWidth-=5;
    a--;
    if(a==-tm.tmHeight)
        a=150;
    rect.top=a;
    rect.bottom=a+tm.tmHeight;
    dc.DrawText(str,rect,DT_BOTTOM|DT_SINGLELINE);
}
CDialog::OnTimer(nIDEvent);
maybe help you understand me clearly,as follows is my question link: http://topic.csdn.net/u/20111125/12/52e25e41-24ce-487e-90ca-b6cab574af59.html[^]
Posted
Comments
Mohibur Rashid 3-Dec-11 8:05am    
I didnt do much work with this thing, but I am asking
how about drawing the text OnPaint, but set the position in the ontimer as usual
MSTzhao 3-Dec-11 20:57pm    
I have tested it,but it seems useless.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900