8

CToolbarがあり、その中にBTNS_BUTTON|BTNS_DROPDOWNスタイルのボタンがあります。分割ボタンにしたいので、ボタンの左側がボタン、右側がドロップダウンメニューになっています。

これを完了するには、ボタンを作成してから、次のように::SendMessageを呼び出します。

::SendMessage( hwndForButton, TB_SETEXTENDEDSTYLE, 0, TBSTYLE_EX_DRAWDDARROWS );

これはうまく機能し、分割ボタンを作成しますが、ツールバーを数ピクセル下に移動するという悪影響もあります。メッセージを送信しない場合でも、問題が発生します(分割ボタンはもうありません)。

ボタンのスタイルをBTNS_BUTTON|BTNS_WHOLEDROPDOWNに変更すると、分割ボタンはありませんが、問題は発生しません。

ここで何がうまくいかないかについての手がかりはありますか?BNTS_DROPDOWNに適用されるマージンがあり、ツールバーが下に移動していると思います。

4

2 に答える 2

1

この質問は確かに非常に古いものですが、このトピックに関するGoogleの結果の一番上に表示され、今後の参考のためにもう少し閲覧するために、1つの回避策があるようです(http://www.ureader.com/msgから引用) /1484852.aspx ):

「理由はわかりませんが、最初から BTNS_DROPDOWN スタイルを設定すると問題が発生します。何も設定されていないボタンを BTNS_DROPWN に追加し、次の行で TB_SETBUTTONINFO を使用してスタイルを変更します。すべて正常に動作します。"

于 2011-03-07T16:17:01.580 に答える