【问题标题】:Problems when displaying Chinese symbols shorter Win32 STATIC controlWin32 STATIC控件显示中文符号较短时的问题
【发布时间】:2015-10-27 11:03:16
【问题描述】:

我正在尝试将几个中文符号放在一个静态控件中,该控件不够大,无法全部保留。结果是:

如您所见,一些符号被移动到第二行。拉丁字母不会出现此问题。

编辑:添加SS_SIMPLE样式到中文静态,解决了问题,但我想知道为什么中文和拉丁文本渲染之间会有这样的差异?

谢谢, 卡林

【问题讨论】:

  • 中文字体需要更多空间。让您的控制更大。
  • @JonathanPotter:静态控件对于拉丁文本也不够大。您可以在右边缘看到一个部分可见的字符。问题(据我了解)是,为什么拉丁文本不换行到下一行,而中文文本却换行。
  • 中文和英文的换行规则不同。英语使用空格分隔单词,由于没有空格,整个字符串AAAAAAAAAAA..AAAA 被视为一个不可分割的巨词。中文不使用空格分隔单词。任何字符后都允许换行。因此,一旦到达静态控件的右手边,中文文本就有换行的机会。

标签: winapi win32gui


【解决方案1】:

添加SS_LEFTNOWORDWRAP 样式以删除第二行。另一种解决方案是改变静态控制的CY(高度)。它必须是 8 个逻辑点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 2012-03-27
    • 2012-04-09
    • 2010-12-21
    • 1970-01-01
    • 1970-01-01
    • 2011-04-12
    相关资源
    最近更新 更多