让文字在窗口里炫起来!

来源:百度文库 编辑:神马文学网 时间:2024/04/28 05:19:29
        前天看到的一篇文章,说是可以显示旋转的字体,直观上感觉像是动态的,就尝试了一上,结果根本就显示不出来,也就是说那篇文章中的代码是不完整的……有点郁闷,但是又有点跃跃欲试,想把它给整好……努力之后,可以运行了,不过并不是动态的,只是在窗口中显示出了带有不同角度的文字,像一个时钟寻那种:效果图如下:具体的过程如下,相信看过这些代码,你也可以做出来:void CWordsView::OnDraw(CDC* pDC)
{
 CWordsDoc* pDoc = GetDocument();
 ASSERT_VALID(pDoc);
 // TODO: add draw code for native data here
 CRect rcClient;
 GetClientRect(rcClient);  CString str(_T("             HEY!LOOK AT ME!!!")); pDC->SetBkMode(TRANSPARENT);
 pDC->SetTextColor(RGB(255,0,0)); CFont font;
 LOGFONT stFont; memset(&stFont,0,sizeof(LOGFONT));
 stFont.lfHeight = MulDiv(14,-pDC->GetDeviceCaps(LOGPIXELSY),72);
 stFont.lfWeight = FW_NORMAL;
 stFont.lfClipPrecision = CLIP_LH_ANGLES;
 strcpy(stFont.lfFaceName,"Arial"); int nAngle; for(nAngle=0;nAngle<3600;nAngle+=150)
 {
        stFont.lfEscapement=nAngle;
        font.CreateFontIndirect(&stFont);
        CFont* pOldFont = pDC->SelectObject(&font);
        pDC->TextOut(rcClient.right/2,rcClient.bottom/2,str);
        pDC->SelectObject(pOldFont);
        font.DeleteObject();
 }} 当然这些代码是后面改动的,不是原创,没有版权问题……