カテゴリー別

お絵描き、デザイン

写真、動画関連ソフト

アメーバピグ専用ソフト

ホームページ関連

画像処理

スキャナー用

SEO 関連

お楽しみ

その他

過去ログ

2018年09月04日(火)

ツールバーのサイズを動的に変更する方法 (Windows API, win32)

SVG での出力も可能な、イラストレーター ソフト「ストローク」
の改良中です。ミルノ と同様に、表示スケールに対応するつもりです。

今日は、ツールバーのサイズを
動的に変更する機能ができました。

メニューのフォントサイズに合わせて、
ツールバーの大きさも変化します。

ちょっち、苦労したので、コツを書いときます。

ツールバーの画像を変更する

画像を変更するには、
TB_SETBITMAPSIZE してから、
TB_SETIMAGELIST します。

TB_SETBITMAPSIZE には、
画像を 1 つもセットしてないときにだけ、
サイズをセットできると書いてあるので、
TB_SETBITMAPSIZE が先です。

説明を厳密にとらえると、セット済みの画像を「無くしてから」
TB_SETBITMAPSIZE した方がよさそうですが、
そうしなくても大丈夫みたいです。

リソースの管理はこちらにまかされているので、
古いイメージリストは、ImageList_Destroy しましょう。

ツールバーボタンのサイズを変更する

次に、TB_SETBUTTONSIZE して新しいボタンサイズを設定します。
ボタンを追加した後に呼びだせ、とあるので、ま、大丈夫でしょう。

これで、ツールバーのボタンの高さが
変更されますが、何故か幅が変わりません。

TB_AUTOSIZE すれば OK そうですが、ダメです。

ちょっと調べてみると、ボタンを追加した直後の「ボタンの幅」を、
TB_GETBUTTONINFO で取得すると全て 0 ですが、
ツールバーを表示した後は、有効な値になるみたいです。

そこで、 TB_SETBUTTONINFO でボタンの幅を全て 0 に設定してから、 TB_AUTOSIZE してみると、正しい幅になりました。

ツールバーのサイズを変更する

最後に、ボタンの高さを大きくした場合、
ウィンドウの高さが足りないとボタンが表示されなくなるので、
ツールバーウィンドウの大きさも調整する必要があります。

・・・

ツールバーを大きくする機能は、まだありませんが、
SVG エディター、ストロークはこちらからダウンロードできます

・・・

ちなみに、ボタンを作り直してもうまくいきます。

ストローク
ストローク ダウンロード
ストローク サンプル画像
ストローク 更新履歴
ご意見・ご要望連絡窓口


コメント
コメントする