调用textout()时怎样把文本限制在一个rect内?

fairygigi 2003-11-25 09:55:06
就像drawtext那样,超出rect的部分就不画。
(我的dc是一个对话框中的picture控件)
因为我现在要画的文本是有角度的,
无法用drawtext的format,必须自己算坐标使其按某种对齐方式放置
...全文
118 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
fairygigi 2003-11-26
  • 打赏
  • 举报
回复
现在的关键问题是,我需要画一个有旋转角度的字符串!!
而有旋转角度的不能用DrawText的DT_VCENTER属性设置
(它会使字符的开始位置居中,而其他部分由于旋转超出了rect)
zhansg 2003-11-26
  • 打赏
  • 举报
回复
你可以用CDC::DrawText方法,其中就有rect参数和一些属性。
下面就是把str写在rect中,并且是单行垂直居中。

pDC->DrawText(str, rect, DT_VCENTER | DT_SINGLELINE);
fairygigi 2003-11-26
  • 打赏
  • 举报
回复
谢谢大家
用CDC::SelectClipRgn方法可以实现了
to topwork(日光) :DrawText怎么设定坐标自己画?我要实现的是有旋转角度的对齐,
比如左上对齐,用DrawText的format无法实现(旋转后超出矩形框的部分就画不出来了)

flinming 2003-11-26
  • 打赏
  • 举报
回复
dc.DrawText(ss,&tempRect,DT_CALCRECT|DT_SINGLELINE);
topwork 2003-11-26
  • 打赏
  • 举报
回复
推荐用DrawText吧,比TextOut灵活好用。
fbmsf 2003-11-26
  • 打赏
  • 举报
回复
我也写过,自己检查字符串的长度,检查字符串里面的换行。
然后画。
akiy 2003-11-25
  • 打赏
  • 举报
回复
无法自动换行
akiy 2003-11-25
  • 打赏
  • 举报
回复
我做过一次这样的
要保证文本的完整性
先计算文本输出后的宽度(哪个函数想不起来了)然后才输出,如果是汉字还要考虑一下子节问题,不能输出乱码
fingerfox 2003-11-25
  • 打赏
  • 举报
回复
beginpath
polygon
endpath
你在polygon里的东西会被画出来
bluebohe 2003-11-25
  • 打赏
  • 举报
回复
CDC::SelectClipRgn 可以设定一个区域,然后绘图只能在这个区域中进行

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧