各位大侠,我想在cedit中输出 逆时针旋转270度的字符。用logfont.lfEscapement=2700;
设定了旋转270度,
可是字以右上角位圆心,旋转了270度。cedit里面什么也看不到了。
当旋转80度的时候,能看到字的一个 角
有什么方法可以解决么??

解决方案 »

  1.   

    CEdit也许够呛,尝试用CRichEdit吧。
      

  2.   

    如何显示旋转文本
    只要用户使用TrueType或者GDI笔或字体就可以显示旋转文本(有些硬件设备也支持旋
    转光栅字体)。LOGFONT 结构中的ifEscapement 成员指定了文本行和x 轴的角度,角度
    的单位是十分之一度而不是度,例如,ifEscapement 为450 表示字体旋转45度。为确
    保所有的字体沿坐标系统的同一方向旋转,一定要设置ifEscapement 成员的
    CLIP_LH_ANGLES位,否则,有些字体可能反向旋转。下例使用了14点Arial字体每间
    隔15度画一个串。
    void CSampleView:: OnDraw (CDC* pDC)
    {
    //Determine the size of the window.
    CRect rcClient;
    GetClientRect (rcClient);
    //Create sample string.
    CString str (_T ("Wheeee...I am rotating!"));
    //Draw transparent, red text.
    pDC->SetBkMode (TRANSPARENT);
    pDC->SetTextColor (RGB (255,0,0));
    CFont font; //font object
    LOGFONT stFont; //font definition
    //Set font attributes that will not change.
    memset (&stFont, 0, sizeof (LOGFONT));
    stFont.ifheight=MulDiv (14, -pDC->GetDeviceCaps (LOGPIXELSY), 72);
    stFont.ifWeight=FW_NORMAL;
    stFont.ifClipPrecision=LCIP_LH_ANGLES;
    strcpy (stFont.lfFaceName, "Arial");
    //Draw text at 15degree intervals.
    for (int nAngle=0; nAngle<3600; nAngle+=150)
    {
    //Specify new angle.
    stFont.lfEscapement=nAngle;
    //Create and select font into dc.
    font.CreateFontIndirect (&stfont);
    CFont* pOldFont=pDC->SelectObject (&font);
    //Draw the text.
    pDC->SelectObject (pOldFont);
    font.DelectObjext ();
    }
    }
      

  3.   

    谢谢 eterblue(云流) , laiyiling(陌生人 专注于MS技术) ,在设备上输出旋转字体的时候都正常。在cedit中就不行了
    当旋转45度的时候能看到字的一半,cedit的显示区域不对,那个字的是从 右上角开始旋转的。这样就有一部份转到cedit外面了。。