如何得到一串字符串的实际宽度,和高度

lexyohi 2006-02-10 09:20:23
我要在界面上不同区域输出字符串,并对它们实现点击删除,编辑,
拖动等功能,
所以就需要知道它们的具体尺寸设定区域并输出.
这个功能在VB中很好实现,高度和设定的基本一样,宽度可以用
Printer.TextWidth(STR)得到.
在VC中好象很难,高度和设定的值也不一样,负数.

如何实现?
...全文
286 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
菜牛 2006-02-14
  • 打赏
  • 举报
回复
GetTextExtentPoint32得到的单位是像素,字体的单位不是像素。你可以用矩形描绘字符串的边来看看。
striking 2006-02-13
  • 打赏
  • 举报
回复

CDC * pDC = GetDC();

CSize sz = pDC->GetTextExtent(str);

ReleaseDC(pDC);


striking 2006-02-13
  • 打赏
  • 举报
回复
CString str = "abcdefg ";


CSize sz = pDC->GetTextExtent(str);

sz 就包含 str的长度和高度
lzf8977 2006-02-13
  • 打赏
  • 举报
回复
用DrawText 里面加一个参数,可以取得这个文本画出来所需要的RECT ,
我的MSDN坏了,要不给你找,,这个是最方便的了.!!
lexyohi 2006-02-10
  • 打赏
  • 举报
回复
OK
用GetTextExtentPoint32的方法大概成功了
不过高度稍微有些疑问,总是比实际设定要大1/4
左右.
比如设高=10时,SIZE.CY=13
设高=20时,SIZE.CY=27
这是怎么回事?

解答完后给分
lexyohi 2006-02-10
  • 打赏
  • 举报
回复
GetTextExtentPoint32好象可以,但不会用
能不能稍微详细一些,有例子吗?
GetTextMetrics使用过,是字符,不是字符串
drawText ,能不能详细一些?
clife 2006-02-10
  • 打赏
  • 举报
回复
GetTextMetrics(...);
Windows程序设计一书中有详细说明
teli_eurydice 2006-02-10
  • 打赏
  • 举报
回复
drawText 后面有个参数,自己查查
Kudeet 2006-02-10
  • 打赏
  • 举报
回复
GetTextExtentPoint32

The GetTextExtentPoint32 function computes the width and height of the specified string of text.

16,551

社区成员

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

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

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