为什么BTNS_DROPDOWN样式导致整个工具栏向下移动几个像素?

Jar*_*red 7 c++ mfc toolbar

我有一个CToolbar,在其中我有一个样式为BTNS_BUTTON | BTNS_DROPDOWN的按钮.我想把它作为一个分割按钮,所以按钮的左侧是一个按钮,右侧有一个下拉菜单.

为了完成这个,我创建了按钮,然后我调用:: SendMessage,如下所示:

::SendMessage( hwndForButton, TB_SETEXTENDEDSTYLE, 0, TBSTYLE_EX_DRAWDDARROWS );
Run Code Online (Sandbox Code Playgroud)

这很好用,并创建了分割按钮,但也有一个向下移动工具栏几个像素的不良影响.如果我不发送消息,那么我仍然有问题(我不再有分割按钮).

如果我将按钮的样式更改为BTNS_BUTTON | BTNS_WHOLEDROPDOWN,那么我没有问题,虽然我也没有分割按钮.

关于这里可能出现什么问题的任何线索?我认为有一个边距应用于BNTS_DROPDOWN,它导致工具栏向下移动.

flo*_*d73 1

好吧,这个问题确实老了,但由于它出现在有关该主题的谷歌结果的最顶部,并且为了将来的参考进一步浏览,似乎有一种解决方法(引用自http://www.ureader.com/msg ) /1484852.aspx):

“不知道为什么,但是当我从一开始就设置 BTNS_DROPDOWN 样式时,问题就出现了。我如果将没有任何设置的按钮添加到 BTNS_DROPWN,并在下一行中使用 TB_SETBUTTONINFO 来更改样式,一切工作正常。”