C ++ - Tab控件 - &字符

时间:2014-10-30 21:28:17

标签: visual-c++ tabcontrol

我在我的项目中创建了几个标签,当我使用'&' 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);

1 个答案:

答案 0 :(得分:3)

嗯,Unicode是一群特殊的角色,有一些有趣的谷歌搜索“zalgo”。

但&的行为在DrawTextEx() winapi函数中,字符和特定的字符被固定为特殊字符。请注意DT_HIDEPREFIX选项,该选项明确专用于控制包含&的字符串的行为。字形。不是偶然的,如果你必须自己做的话,准确地强调一个角色是非常困难的。

除了zalgo之外,没什么可担心的。控制字符可能有点片状,如“\ t”和“\ n”,你从来没有真正意外地使用它们。最重要的是,如果出现意外,那么你会很快看到它:)