【发布时间】:2010-11-18 14:19:29
【问题描述】:
我有一个使用 GDI 的 Win32 GUI 应用程序。它需要在指定坐标的位图上绘制文本,然后将其擦除并替换为原始位图。
我按如下方式进行:
- 选择字体(GetStockObject(DEFAULT_GUI_FONT))、画笔、其他东西到设备上下文中
- 调用 GetTextExtentPoint32() 计算文本大小
- 现在有了文本起点,我可以计算预期的文本矩形并将其存储
- 为具有相同起点和相同文本的相同设备上下文调用 TextOut()
稍后恢复存储矩形的位图。
当 ClearType 抗锯齿关闭时,它可以正常工作。但是使用 ClearType 时 GetTextExtentPoint32() 返回的大小略小于调用 TextOut() 时文本实际占用的大小。因此,当我稍后恢复原始位图时,文本的一些小条纹仍然存在,并且我有伪影。
在不禁用 ClearType 的情况下是否有任何解决方法?
【问题讨论】: