程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> 關於VC++ >> 如何在指定矩形中旋轉顯示文字

如何在指定矩形中旋轉顯示文字

編輯:關於VC++

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

//說明:

// 在矩形框中旋轉方式顯示文字,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);

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved