gpt4 book ai didi

windows - 如何在 ClearType 打开时获得真实的文本尺寸?

转载 作者:可可西里 更新时间:2023-11-01 14:20:27 26 4
gpt4 key购买 nike

我有一个很好地使用 GDI 的 Win32 GUI 应用程序。它需要在指定坐标处的位图上绘制文本,然后将其删除并替换为原始位图。

我进行如下操作:

  • 选择字体(GetStockObject(DEFAULT_GUI_FONT)),刷,其他东西到设备上下文中
  • 调用 GetTextExtentPoint32() 计算文本的大小
  • 现在有了文本起点,我可以计算预期的文本矩形并存储它
  • 为具有相同起始点和相同文本的相同设备环境调用 TextOut()

然后恢复存储矩形的位图。

当 ClearType 抗锯齿关闭时,它工作正常。但是在 ClearType 上,GetTextExtentPoint32() 返回的大小略小于调用 TextOut() 时文本实际占用的大小。因此,当我稍后恢复原始位图时,一些小的文本条纹保留在原处并且​​我有伪影。

有没有办法在不禁用 ClearType 的情况下解决这个问题?

最佳答案

你也可以试试 DrawText使用 DT_CALCRECT 计算字符串大小。也许效果更好。

然后,您还可以在矩形内写入带有 DrawText 的字符串,矩形的大小与使用 DT_CALCRECT 得到的大小相同,如果文本稍大,它会剪裁文本。

关于windows - 如何在 ClearType 打开时获得真实的文本尺寸?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1259914/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com