• 全部
  • VC综合技术
  • 互联网技术
  • MFC AppLauncher
  • .NET 技术
  • 界面
  • 进程
  • 算法
  • 硬件/系统
  • 数据库
  • VC++技术资源

请问如何获取字体的高度

sslnyb 2004-12-08 06:06:02
我用
size=pDC->GetTextExtent(str);
发现size.cy居然是0
一贴发两次实属无奈,急啊,请高手帮帮忙
...全文
445 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
sslnyb 2004-12-08
tm的类型是?
回复
gzl 2004-12-08
楼上说得对
回复
koko1998 2004-12-08
pDC->GetTextMetrics(&tm);
iHeight = tm.tmHeight + tm.tmExternalLeading;
iHeight :字体的高度
回复
handwolf 2004-12-08
CDC::GetTextExtent
CSize GetTextExtent( LPCTSTR lpszString, int nCount ) const;

CSize GetTextExtent( const CString& str ) const;

Return Value

The dimensions of the string (in logical units) in a CSize object.

Parameters

lpszString

Points to a string of characters. You can also pass a CString object for this parameter.

nCount

Specifies the number of characters in the string.

str

A CString object that contains the specified characters.

回复
rainivy 2004-12-08
GetTextExtentExPoint

VB声明
Declare Function GetTextExtentExPoint Lib "gdi32" Alias "GetTextExtentExPointA" (ByVal hdc As Long, ByVal lpszStr As String, ByVal cchString As Long, ByVal nMaxExtent As Long, lpnFit As Long, alpDx As Long, lpSize As SIZE) As Long
说明
判断要填入指定区域的字符数量。也用一个数组装载每个字符的范围信息
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
hdc Long,设备场景的句柄
lpszStr String,准备量度其范围的字串
cchString Long,lpszStr字串的长度
nMaxExtent Long,采用逻辑单位表示的水平范围
lpnFit Long,在其中保存欲填充到指定区域的字符数量。可以为NULL(用一个别名化的声明来设置ByVal As Long)——此时会忽略nMaxExtent设置
As Long,cchString数组的第一个条目。每个条目都要保存从字串起点到这个字符的距离(采用逻辑单位)。如果不需要这方面的信息,也可设为NULL(用别名声明设置 ByVal As Long)
lpSize SIZE,这个结构用于装载字串范围的高度和宽度信息
注解
可用这个函数计算自动换行输出时的字符位置

回复
相关推荐
发帖
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2004-12-08 06:06
社区公告

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