WEB开发网
开发学院软件开发VC 如何在指定矩形中旋转显示文字 阅读

如何在指定矩形中旋转显示文字

 2010-07-01 20:42:08 来源:WEB开发网   
核心提示:/说明://在矩形框中旋转方式显示文字,jingzhou xu//参数://pDC:DC指针//str:显示文字//rect:显示范围//angle:旋转角度//nOptions:ExtTextOut()中相应设置<ETO_CLIPPED 和 ETO_OPAQUE>///void DrawRotatedTe

///////////////////////////////////////////////////////

//说明:

// 在矩形框中旋转方式显示文字,jingzhou xu

//参数:  

// pDC:   DC指针

// str:   显示文字

// rect:   显示范围

// angle:   旋转角度

// nOptions: ExtTextOut()中相应设置<ETO_CLIPPED 和 ETO_OPAQUE>

///////////////////////////////////////////////////////

void DrawRotatedText(CDC* pDC, const CString str, CRect rect,
          double angle, UINT nOptions)
{
 //按比例转换角度值
 double pi = 3.141592654;
 double radian = pi * 2 / 360 * angle;
 //获取显示文字中心点
 CSize TextSize = pDC->GetTextExtent(str);
 CPoint center;
 center.x = TextSize.cx / 2;
 center.y = TextSize.cy / 2;
 //计算显示文字新的中心点
 CPoint rcenter;
 rcenter.x = long(cos(radian) * center.x - sin(radian) * center.y);
 rcenter.y = long(sin(radian) * center.x + cos(radian) * center.y);
 //绘制文字
 pDC->SetTextAlign(TA_BASELINE);
 pDC->SetBkMode(TRANSPARENT);
 pDC->ExtTextOut(rect.left + rect.Width() / 2 - rcenter.x,
         rect.top + rect.Height() / 2 + rcenter.y,
         nOptions, rect, str, NULL);
}

用法:

DrawRotatedText (pDC,”VC知识库”,CRect(100,100,300,300),15, ETO_CLIPPED);

Tags:如何 指定 矩形

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接