SetItemSize和用户绘制的选项卡控件

我有这个Win32用户绘制的选项卡控件创建为:

    CONTROL "Tab1",IDC_TAB_CONT,"SysTabControl32",TCS_BOTTOM | 
            TCS_OWNERDRAWFIXED | NOT WS_VISIBLE,0,14,185,88

我想让这个控件的标签大小调整为从不需要看到“滑动箭头”:

现在,几乎所有关于此控件的内容都按预期工作,除非它不响应TabCtrl_SetItemSize 。 尝试尽可能,当我绘制它们(在传递给WM_DRAWITEMDRAWITEMSTRUCT )时,我得到的标签大小始终是适合其中最长的标题的大小,并且从来没有使用TabCtrl_SetItemSize设置的大小。

但是,在TabCtrl_SetItemSize文档中,它说:

[ TabCtrl_SetItemSize ]在固定宽度或自绘制选项卡控件中设置制表符的宽度和高度。

我设法调整大小的唯一方法是通过向控件发送TCM_SETITEM消息并在绘制时在其中写入所需的文本来设置所需长度的虚拟字符串。 这很不方便,也不是特别好的破解。

有没有人会知道

  • 为什么TabCtrl_SetItemSize不能按预期工作? 和/或
  • 如何正确设置标签大小?
  • 非常感谢,

    JOCE。


  • 设置TCS_OWNERDRAWFIXED样式还不够,您还需要添加TCS_FIXEDWIDTH样式。

  • 如果图标存在,则标签的最小尺寸至少为图标宽度+ 3。
    如果您有图标(imageList附加到tabControl),即使使用固定宽度(如果可用空间少于:选项卡数量*(图标宽度+ 3),也可能会获得这些“滑动箭头”

  • 链接地址: http://www.djcxy.com/p/41189.html

    上一篇: SetItemSize and user drawn tab controls

    下一篇: How secure is offline data stored on clients by Firebases Realtime Database?