您现在的位置: 中国男护士网 >> 考试频道 >> 计算机等级 >> 二级辅导 >> C十十 >> 辅导 >> 正文    
  如何在指定矩形中旋转显示文字 【注册男护士专用博客】          

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

www.nanhushi.com     佚名   不详 

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

 

文章录入:杜斌    责任编辑:杜斌 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     

    联 系 信 息
    QQ:88236621
    电话:15853773350
    E-Mail:malenurse@163.com
    免费发布招聘信息
    做中国最专业男护士门户网站
    最 新 热 门
    最 新 推 荐
    相 关 文 章
    没有相关文章
    专 题 栏 目