Winapi 如何获取选项卡控件';空控件中的收割台高度

Winapi 如何获取选项卡控件';空控件中的收割台高度,winapi,Winapi,我的应用程序的主窗口包含一个钢筋控件,其中包含一个菜单栏栏、一个工具栏栏和一个选项卡控件栏。使用RB_INSERTBAND添加这些带时,我必须在REBARBANDINFO结构的cyMinChild成员字段中传递带的最小高度。否则,钢筋控件无法正确布局其标注栏 我可以简单地使用TB_GETBUTTONSIZE消息找出菜单栏和工具栏的高度,从而轻松计算菜单栏和工具栏栏的cyMinChild 然而,对于选项卡控件来说,事情更加困难。事实上,我找不到任何方法来确定选项卡控件的标题高度。问题是,最初,选项

我的应用程序的主窗口包含一个钢筋控件,其中包含一个菜单栏栏、一个工具栏栏和一个选项卡控件栏。使用
RB_INSERTBAND
添加这些带时,我必须在
REBARBANDINFO
结构的
cyMinChild
成员字段中传递带的最小高度。否则,钢筋控件无法正确布局其标注栏

我可以简单地使用
TB_GETBUTTONSIZE
消息找出菜单栏和工具栏的高度,从而轻松计算菜单栏和工具栏栏的
cyMinChild

然而,对于选项卡控件来说,事情更加困难。事实上,我找不到任何方法来确定选项卡控件的标题高度。问题是,最初,选项卡控件没有任何条目。如果选项卡控件有一些条目,我可以使用
TCM\u GETITEMRECT
查找标题大小,但是当我创建选项卡控件并将其添加到钢筋控件中时,它还没有任何条目

那么,我应该如何找到选项卡控件的
cyMinChild
高度呢?我是否必须插入虚拟条目,使用
TCM\u GETITEMRECT
获取高度,然后立即再次移除虚拟条目以实现此目的?还是有更好的解决办法

注意,我没有使用任何工具箱。一切都是在纯C中完成的,所以任何解决方案也应该是在普通的Win32 API中


谢谢

选项卡控件是否在顶部显示选项卡?如果是这样,
TCM\u ADJUSTRECT
可能会执行您想要的操作。我记不起我是否曾经将它与空选项卡控件一起使用过。如果没有选项卡,那么这不是与
TCM\u GETITEMRECT
有相同的问题吗?
TCM\u ADJUSTRECT
与多行选项卡控件一起是否正常工作?如果是后者,那么是前者…@CodyGray:尝试过,但不幸的是,它似乎不适合空选项卡控件,因为我从
TCM\u ADJUSTRECT
获得的宽度/高度只有4像素。我想这是有意义的。它返回实际的矩形,对于没有选项卡的选项卡控件来说,矩形非常小!如果没有示例代码,我无法处理这个问题,但上次使用钢筋控件时,我能够避免设置显式大小字段(假设您不指定
RBBIM\u CHILDSIZE
),并且它会自动调整自身大小。但是,如果你不能做到这一点,你要么必须插入一个虚拟选项卡,要么在创建第一个选项卡后调整钢筋的高度(否则,它只需要足够高以容纳其他子项)。实际上,我已经尝试了很多,以避免设置
cyMinChild
,但都没有用。只要我去掉
RBBIM_CHILDSIZE
,我所有的乐队都会有一个大概2像素左右的最小高度。如果你能告诉我如何让钢筋控制来处理布局本身,我将非常乐意放弃
cyMinChild
的东西。