gpt4 book ai didi

c++ - 调用DrawText时DT_NOFULLWIDTHCHARBREAK有什么作用?

转载 作者:搜寻专家 更新时间:2023-10-31 01:01:11 25 4
gpt4 key购买 nike

DrawText 的 MSDN 文档对于 DT_NOFULLWIDTHCHARBREAK 标志不是特别清楚。

它是否仍然允许 DT_WORDBREAK 使用非 CJK 语言?它如何打破 CJK 语言?如果我理解正确的话,这些语言不会像英语那样使用空格。 DT_NOFULLWIDTHCHARBREAK 是否有识别 CJK 单词的特殊规则,或者它会在片假名单词的中间断开?

最佳答案

文档说明了它的作用,尽管它使用的是旧术语。 “防止在 DBCS(双宽字符串)处换行,因此换行规则等同于 SBCS 字符串。” DBCS 是代码页时代遗留下来的旧术语。您可以将其视为“全角字符”的意思。全角字符的示例有 CJK 统一表意文字、平假名、片假名和韩文字符。

默认情况下,全角字符被视为有效的分词点。使用 DT_NOFULLWIDTHCHARBREAK 禁用此行为。

换句话说:

  • DT_WORDBREAK 未设置:不发生断字。
  • DT_WORDBREAK 已设置,但 DT_NOFULLWIDTHCHARBREAK 未设置:在空格和全角字符处进行分词。
  • DT_WORDBREAKDT_NOFULLWIDTHCHARBREAK 均设置:仅在空白处进行分词。

该代码不进行任何语言分析来识别片假名单词的开始和结束位置。

关于c++ - 调用DrawText时DT_NOFULLWIDTHCHARBREAK有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29640012/

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