<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

      怎么在指定矩形中旋轉顯示文字

      [摘要]徐景周/////////////////////////////////////////////////////////說明:// 在矩形框中旋轉方式顯示文字,jingzhou xu//參數: ...
      徐景周

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



      日韩精品一区二区三区高清