[1290]
Re4: 折返しについて
もか
重要そうなことを上に書きます。
>調査してほしいこと
>数年前(Unicode版が出ていなかった時期)、もかさんが配置したような感じで
>作成したことが合いますが、その際、CMenuDrawer.cpp以外に2,3箇所修正した記憶があります。
>>unicode:1280
で書いた通りなのだけど、共通設定の折り返し追加ボタンのところを直さないとだめです。
(B案 skrw_toolbarno_b_v0_1.zip パッチ参照。ただしパッチはTOOLB<E>RWRAPになっている)
CPropComToolbar.cpp
- nIndex1 = ::Listbox_INSERTDATA( hwndResList, nIndex1, MAX_TOOLBARBUTTONS );
+ nIndex1 = ::Listbox_INSERTDATA( hwndResList, nIndex1, CMenuDrawer::TOOLBAR_BUTTON_F_TOOLBARWRA
P );
CMenuDrawer.h
+static const int TOOLBAR_BUTTON_F_TOOLBARWRAP = 384;
rev1779ではこの値に合うように折返を移動しているので問題ないです。
rev1779のままMAX_TOOLBARBUTTONSだけを変更した場合もここはおかしくなるとおもいます。
もう1, 2か所はまだ発見できていません。
確証はないけど trunk rev1198 のryojiさんの作業などで修正されたのではないでしょうか。
>ただ、このパッチを2点ほど、変更して欲しいことがあります。
>1点目、12段目「外部マクロ」と「折返」との間をなくしてほしい、
>その間を、変な機能で使用されるのを防ぐためです。
私も最初そう思いました。中途半端に空いているとそこにアイコンを追加しにくいです。
ただ、マクロ3/4段目を13段/14段に25ずつ追加してビットマップの見た目を2次元で見ればおかしくないです。
逆に詰めて、違う機能群を14段目にいれたあとマクロ50-を15段目にいれると大変残念な結果になります。
私は将来の追加方針(どこの空きを何用にするか)さえ明確になっていれば別にどちらでもかまいません。
#マクロが50じゃ全然足りないみたいなのを見たことがあるので
*動作以外の話
m_nToolBarButtonIdxArr[MAX_TOOLBARBUTTON
S]; 以外で利用している(由来は反対みたいだけど)のが誤解の原因の一つだとおもいました。
ボタンとアイコンとツールバーの配列は違うんだとソースコードで主張したいです。
変更例:
MAX_TOOLBARBUTTON_X => MAX_TOOLBAR_ICON_X
MAX_TOOLBARBUTTON_Y => MAX_TOOLBAR_ICON_Y
追加定義で MAX_TOOLBARITEM = 1000 とか 512 とかにしておく。
m_nToolBarButtonIdxArr[MAX_TOOLBARBUTTON
S] => m_nToolBarButtonIdxArr[MAX_TOOLBARITEM]
m_nToolBarButtonIdxArr関連の MAX_TOOLBARBUTTON(3か所) => MAX_TOOLBARITEM か _countof
その他の MAX_TOOLBARBUTTONS => 利用箇所は変更でなくなるのでMAX_TOOLBARBUTTONS自体をコメントアウトしてもいいかも
ANSI版には m_tbMyButton[MAX_TOOLBARBUTTONS+1] だけ残ると思います。