当前位置:  开发笔记 > 编程语言 > 正文

用于在Windows窗体中呈现文本的最快API?

如何解决《用于在Windows窗体中呈现文本的最快API?》经验,为你挑选了1个好方法。

我们需要优化C#Windows窗体应用程序的文本呈现,在不规则网格中显示大量小字符串.任何时候都可以看到超过5000个单元格,每秒更新4次.字体系列和大小在单元格中是一致的,尽管颜色可能因单元格而异,粗体/斜体/单元格也不同.

我已经在网上看到有关TextRenderer.DrawTextGraphics.DrawString最快/最好的信息相冲突的信息,这在Win32级别上降低为GDI与GDI +的比较.

我在Windows XP和Windows Vista上也看到了截然不同的结果,但我的主要目标是Windows XP.在WinFX和DirectX 10下取得巨大进步的文章在这里没有用:-)

这里最好的方法是什么?我不害怕引入一个小的C++/CLI层并优化设备上下文处理以挤出更多性能,但我想要一些关于采取哪个方向的明确建议.

编辑:感谢您的初步回复.我将尝试组合背景位图渲染并坚持使用GDI等效调用.



1> Mike Dimmick..:

微软开发人员在他的博客上发布了一篇GDI与GDI + Text Rendering Performance的文章,该文章回答了原始速度问题:在他的系统上,GDI DrawText比GDI + DrawString快6倍.

如果你需要成为一个真正的速度恶魔,TextOut比DrawText更快,但你必须自己处理剪辑和自动换行.ExtTextOut支持剪辑.

GDI渲染(TextRenderer)将与使用GDI的Windows的其他部分更加一致; GDI +试图与设备无关,因此一些间距和扩展是不一致的.有关不一致呈现的示例,请参阅SQL Server 2005表面区域配置工具.

推荐阅读
Life一切安好
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有