也就是说用画笔画的任意条粗的线,每条线都给他取个名字,怎样才能把这个名字输出在线里面,也就是与这条线齐平
角度的话好像用CreateFont可以设置,但我不会计算角度,数学差了点……

解决方案 »

  1.   


    看看这个
    http://blog.csdn.net/seawt/article/details/4833700
      

  2.   

    我就找这个blog,找了半天没找到。
      

  3.   

    参考:”CGradientTxtView“
    void CGradientTxtView::OnDraw(CDC* pDC)
    {
    CGradientTxtDoc* pDoc = GetDocument();
    ASSERT_VALID(pDoc); //得到客户区的大小
    CRect rcClient;
    GetClientRect (rcClient);

    //创建输出字符串.
    CString str (_T ("oooo...I am rotating!"));

    //输出透明红色字体
    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");

    //每隔15度输出字符串
    for (int nAngle=0; nAngle<3600; nAngle+=150)
    {
    //设定新的旋转角度
    stFont.lfEscapement=nAngle;

    //创建字体并选进设备场景
    font.CreateFontIndirect(&stFont);
    CFont* pOldFont=pDC ->SelectObject(&font);

    //输出字体
    pDC->TextOut(rcClient.left + rcClient.Width()/2,rcClient.top + rcClient.Height()/2,str);

    //原来字体
    pDC->SelectObject(pOldFont);
    font.DeleteObject();
    }
    // TODO: add draw code for native data here
    }