如何绘制 Unicode 文本?
如何在TCustomControl上绘制Unicode文本?没有画布还有其他选择吗?
How to draw Unicode text on TCustomControl? Are there other options to make it without the Canvas?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
是的,你说得对。不过,我还是建议您升级到 Delphi 2009 或更高版本,其中 VCL 具有完整的 Unicode 支持,一切都会变得更加容易。
无论如何,您可以
在旧版本的 Delphi 中执行此操作(我认为。代码在我的虚拟 Windows 95 计算机中的 Delphi 7 中编译,但我看不到任何文本。我认为这是因为 Windows 95 太旧了。)
更新
如果您想支持非常旧的操作系统,例如 Windows 95 和 Windows 98,则需要使用
TextOutW
而不是DrawTextW
,因为后者不是已实施(来源)。TextOut
的功能不如DrawText
强大,因此,例如,如果要将文本置于矩形内的中心,则需要手动计算位置。Yes, you are right on spot. Still, I would recommend you to upgrade to Delphi 2009 or later in which the VCL has full Unicode support and everything is much easier.
Anyhow, you can do
in old versions of Delphi (I think. The code compiles in Delphi 7 in my virtual Windows 95 machine, but I see no text. That is because Windows 95 is too old, I think.)
Update
If you want to support very old operating systems, like Windows 95 and Windows 98, you need to use
TextOutW
instead ofDrawTextW
, since the latter isn't implemented (source).TextOut
is less powerful thenDrawText
, so you need to compute the position manually if you want to center the text inside a rectangle, for instance.