我在我的项目中创建了几个标签,当我使用'&' char它不是应该显示的。 例如:
" Tab& 1" - >数字加下划线
所以我认为我可以使用:
" Tab&& 1" - >这导致" Tab& 1"
我可以添加额外的'&'手动,但我不知道是否有更多的字符不能直接工作。 我没有找到关于我的问题的任何参考,我项目中的标签名称也不是静态的。
以下是我在WM_CREATE上所做的事情:
RECT rcClient;
GetClientRect(hwnd, &rcClient);
TabControl = CreateWindow(WC_TABCONTROL, "", WS_CHILD | WS_CLIPSIBLINGS | WS_VISIBLE,0, 0, rcClient.right, rcClient.bottom, hwnd, (HMENU)0, GetModuleHandle(NULL), NULL);
TCITEM tie;
tie.mask = TCIF_TEXT;
tie.pszText = "Tab &&1";
TabCtrl_InsertItem(TabControl, 0, &tie);
答案 0 :(得分:3)
嗯,Unicode是一群特殊的角色,有一些有趣的谷歌搜索“zalgo”。
但&的行为在DrawTextEx() winapi函数中,字符和特定的字符被固定为特殊字符。请注意DT_HIDEPREFIX选项,该选项明确专用于控制包含&的字符串的行为。字形。不是偶然的,如果你必须自己做的话,准确地强调一个角色是非常困难的。
除了zalgo之外,没什么可担心的。控制字符可能有点片状,如“\ t”和“\ n”,你从来没有真正意外地使用它们。最重要的是,如果出现意外,那么你会很快看到它:)