2014-10-30 29 views
0

我在我的项目中创建了多个选项卡,并且当我使用'&'字符时,它不会显示它应该显示的内容。 例如:C++ - 制表符控制 - &字符

“选项卡& 1” - >号加下划线

所以我想,我可以用:

“选项卡& & 1” - >和导致“标签& 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

包括你的main()代码,所以我们可以看到你尝试使用它的上下文。我们会更好地了解你在做什么。 – 2014-10-30 21:30:50

+2

C++没有标准的“tabcontrol”。所以你将不得不解释你正在使用的库。 – 2014-10-30 21:40:38

+0

除非您的库有办法关闭自动加速键,否则只需设置选项卡名称即可动态替换。 – Cameron 2014-10-30 21:43:42

回答

3

好,Unicode是特殊字符山上,有一些有趣的谷歌搜索 “zalgo”。

但是,&角色的行为,以及那个特定的角色,在DrawTextEx() winapi函数中被定位为特殊角色。请注意DT_HIDEPREFIX选项,明确专用于控制包含&字形的字符串的行为。如果你不得不自己动手,那么准确地强调单个角色是非常困难的。

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

+0

谢谢!我制作了一个小功能,增加了额外的&。 – Dan 2014-10-30 22:25:56