怎样在视输出旋转样式的文字!!!!!!!!!!!只需知道旋转角度, 文本即可再视里输出旋转一定角度的文字

解决方案 »

  1.   

    http://www2.cnnb.net/personal/binhua/chinese/programs/vc/document/tips/control.htm
      

  2.   

    这是一段产生旋转样式的文字的代码:主要函数为  font.CreatePointFontIndirect (&lf);
      
      CRect rect;
        GetClientRect (&rect);    CPaintDC dc (this);
        dc.SetViewportOrg (rect.Width () / 2, rect.Height () / 2);
        dc.SetBkMode (TRANSPARENT);    for (int i=0; i<3600; i+=150) {
            LOGFONT lf;
            ::ZeroMemory (&lf, sizeof (lf));
            lf.lfHeight = 160;
            lf.lfWeight = FW_BOLD;
            lf.lfEscapement = i;
            lf.lfOrientation = i;
            ::lstrcpy (lf.lfFaceName, _T ("Arial"));        CFont font;
            font.CreatePointFontIndirect (&lf);        CFont* pOldFont = dc.SelectObject (&font);
            dc.TextOut (0, 0, CString (_T ("          Hello, MFC")));
            dc.SelectObject (pOldFont);
        }
      

  3.   

    显示旋转文本:
    http://www.vckbase.com/vckbase/vckbase1/axvckb.htm
      

  4.   

    在Programing MFC中有,代码如下:void CMainWindow::OnPaint ()
    {
        CRect rect;
        GetClientRect (&rect);    CPaintDC dc (this);
        dc.SetViewportOrg (rect.Width () / 2, rect.Height () / 2);
        dc.SetBkMode (TRANSPARENT);    for (int i=0; i<3600; i+=150) {
            LOGFONT lf;
            ::ZeroMemory (&lf, sizeof (lf));
            lf.lfHeight = 160;
            lf.lfWeight = FW_BOLD;
            lf.lfEscapement = i;
            lf.lfOrientation = i;
            ::lstrcpy (lf.lfFaceName, _T ("Arial"));        CFont font;
            font.CreatePointFontIndirect (&lf);        CFont* pOldFont = dc.SelectObject (&font);
            dc.TextOut (0, 0, CString (_T ("          Hello, MFC")));
            dc.SelectObject (pOldFont);
        }
    }
      

  5.   

    CFont  m_Font;
            m_Font.CreateFont(25, 25, 300, 0, 300, // 看看msdn
                              FALSE, FALSE, 0, 
               ANSI_CHARSET,
                              OUT_DEFAULT_PRECIS, 
                              CLIP_DEFAULT_PRECIS,
                              DEFAULT_QUALITY, 
                              DEFAULT_PITCH|FF_SWISS,
            _T("Arial")
            );
             m_Text.SetFont(&m_Font);
             m_Text.SetWindowText("        yes I can !  ");
      

  6.   

    文本的显示方式,包括旋转,都是由字体来设置的。字体的属性主要由创建字体时使用的LOGFONT结构规定,该结构中的lfEscapement域指定了文本行与X轴(水平轴)的角度,其角度单位是十分之一度。为了是所有的字体向相同的方向旋转,还应同时将OGFONT结构的lfClipPrecision域设为
    CLIP_LH_ANGLES。 
    下面的代码将在对话框中显示在同一起点每隔15度显示一行文本: void CRotateTextDlg::OnPaint()  

         CPaintDC dc(this); // device context for painting 
         if (IsIconic()) 
        { 
            SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0); 
            // Center icon in client rectangle 
            int cxIcon = GetSystemMetrics(SM_CXICON); 
            int cyIcon = GetSystemMetrics(SM_CYICON); 
            CRect rect; 
            GetClientRect(&rect); 
            int x = (rect.Width() - cxIcon + 1) / 2; 
            int y = (rect.Height() - cyIcon + 1) / 2; 
            // Draw the icon 
             dc.DrawIcon(x, y, m_hIcon); 
           } 
           else 
           { 
             CRect rc; 
             GetClientRect(rc); 
             CString str(_T("............旋转文本!")); 
             dc.SetBkMode(TRANSPARENT); 
             dc.SetTextColor(RGB(0,0,255)); 
             CFont font; 
             LOGFONT lf; 
             memset(&lf,0,sizeof(LOGFONT)); 
             lf.lfHeight = -14; 
             lf.lfWeight = FW_NORMAL; 
             lf.lfClipPrecision = CLIP_LH_ANGLES; 
             strcpy(lf.lfFaceName, "宋体"); 
                 for (int i=0;i<3600;i+=150) 
                  { 
                    lf.lfEscapement = i; 
                    font.CreateFontIndirect(&lf); 
                    CFont *pOldFont = dc.SelectObject(&font); 
                    dc.TextOut(rc.right/2, rc.bottom/2,str); 
                    dc.SelectObject(pOldFont); 
                    font.DeleteObject(); 
                   } 
                    CDialog::OnPaint(); 
             } 
    }