【发布时间】:2016-03-20 14:25:42
【问题描述】:
我正在使用 Borland C++ Builder 2009,并显示左右指向箭头,如下所示:
Button2->Hint = L"Ctrl+\u2190" ;
Button3->Hint = L"Ctrl+\u2192" ;
这在 Windows 7 上运行良好,应用程序使用字体“Segoe UI”。
在 XP 上我得到一个正方形而不是箭头,我在 XP 上使用字体“Tahoma”。 换句话说,提到的 Unicode 字符在 XP 上的 Tahoma 中不存在。
是否有一种简单快捷的方法可以简单地检查当前使用的字体是否支持请求的 Unicode 字符? 如果是这样,例如,我可以将箭头替换为“>”或“
感谢您的帮助。
【问题讨论】:
-
这与特定的编程语言无关,而是与库有关。由于这些是特定于语言的,您应该提供您实际使用的语言,C 或 C++。请注意,绝对没有符合标准的方式。
-
@Olaf 因为可以在 C++ 中使用 C 解决方案,所以我认为在这种情况下使用这两个标签并不合适。不在标准中是无关紧要的,因为问题显然是关于 Windows 特定的解决方案,并且指定了编译器。
-
@MarkRansom:C 不是 C++。存在不兼容的语义和 C++ 所没有的特性。至少如果您使用标准 C q 这意味着 C11 - 或至少 C99(C11 主要添加了功能,但没有改变语义)。如果您的编译器不遵循标准,则它已损坏或至少被称为过时。请注意,您也可以很好地在 Windows 上使用其他编译器。
-
@Olaf Windows API 是纯 C,尽管有 C++ 包装器。 大多数 C 兼容的答案也可以在 C++ 中使用,包括当前带有复选标记的答案。如果问题更多是关于语言特性或标准库,我倾向于同意你的看法。
-
@MarkRansom:但事实并非如此。所以 C++ 标签是错误的。不过,这取决于代码的编译方式。如果编译为 C,他不能使用 C++ 特性。哎呀,这两种语言的公共子集(比许多人认为的要小)应该有一个标签。
标签: c++ c winapi c++builder