首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Windows:使用TextOut从右向左输出字符

Windows:使用TextOut从右向左输出字符
EN

Stack Overflow用户
提问于 2015-10-16 03:27:00
回答 1查看 198关注 0票数 0

当涉及到以从右到左的文本方向显示字符时,我想寻求有关win32原生TextOutW函数的帮助。基本上,我希望TextOutW按原样显示包含字符的文本,而不对文本应用任何转换、整形等。

我所拥有的基本上是一个简单的代码1,如下所示:

代码语言:javascript
复制
WCHAR text[2] = { 0x5D3, 0x5E9 };
TextOutW(hdc, 100, 100, ( LPCWSTR ) text, 2);

我之所以使用它,是因为我想从左到右绘制两个字符,首先是0x5D3 (ד),然后是0x5E9 (ש)。我得到的是相反的结果--首先绘制0x5E9,然后绘制0x5D3:

דש

当然,我可以想到许多替代方法来覆盖它,最简单的就是在文本前面添加0x202D2字符。但这似乎有点老生常谈,而且通常是错误的,而且也不会对我有帮助的例如阿拉伯语文本,将有字母自动连接(并将需要更丑陋的解决办法)。

是否有关于此Windows行为的任何信息?我怎么才能在程序中关闭它呢?这与Uniscribe有关吗?(我从未使用过它,也不打算使用它)。

谢谢!

1

2 U+202D (LRO)从左到右覆盖:强制将以下字符视为从左到右的强字符。

EN

回答 1

Stack Overflow用户

发布于 2015-10-16 04:55:46

看看ETO_GLYPH_INDEX标志的函数。

请注意,此行为不是特定于Windows的(但Unicode布局的Windows实现与其他平台略有不同)。你不能为你的程序神奇地“关闭它”,例如通过选择一些特殊的语言环境。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33156889

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档