我有这个Win32用户绘制的选项卡控件创build为:
CONTROL "Tab1",IDC_TAB_CONT,"SysTabControl32",TCS_BOTTOM | TCS_OWNERDRAWFIXED | NOT WS_VISIBLE,0,14,185,88
我想要这个控件的标签大小调整为从来没有看到“ 滑动箭头 ”:
现在,几乎所有关于此控件的工作都按预期工作,除了它不响应TabCtrl_SetItemSize
。 尝试尽可能的,当我绘制它们(在传递给WM_DRAWITEM
的DRAWITEMSTRUCT
)时,我得到的标签的大小始终是适合其中最长的标题的大小,而不是我用TabCtrl_SetItemSize
设置的大小。
但是,在TabCtrl_SetItemSize
文档中 ,它说:
[
TabCtrl_SetItemSize
]在固定宽度或自绘制选项卡控件中设置制表符的宽度和高度。
我设法resize的唯一方法是通过向控件发送一个TCM_SETITEM
消息,并在绘制时在其中写入所需的文本,在其中设置所需长度的虚拟string。 这是相当不方便,不是一个特别好的黑客。
有谁知道吗?
TabCtrl_SetItemSize
不能按预期工作? 和/或 非常感谢,
JOCE。
设置TCS_OWNERDRAWFIXED
样式是不够的,你还要添加TCS_FIXEDWIDTH
样式。
如果图标存在,则标签的最小尺寸至少为图标宽度+ 3。
如果您有图标(imageList附加到tabControl),即使使用固定宽度(如果可用空间少于标签数量*(图标宽度+3),也可能会获得这些“滑动箭头”