メニューにBMPと文字列を表示する
(Delphi 3 以前用 Tips) Borlandのサイトにも同じタイトルの技術情報がありますが、あれを実行してみるとメニュー項目がBMPになって文字がなくなってしまいます。実際やりたいのはOffice97などのようにメニューの文字列の左側にちょこんとBMPを表示するというものです。いろいろと研究した結果ついに実現し、あんまりにもうれしいので掲載します。
以下の例はメニュー項目 N1 に Image1 の画像をくっつけます。
| ■ メニューに BMP を表示する例 |
begin SetMenuItemBitmaps(N1.Parent.Handle, N1.MenuIndex, MF_BYPOSITION, Image1.Picture.Bitmap.Handle, Image1.Picture.Bitmap.Handle); DrawMenuBar(N1.Parent.Handle); |
SetMenuItemBitmapsと言うAPIはチェック項目のあるメニュー項目のチェックマークを変更するAPIです。引数の最後の方でイメージをふたつ渡しているのはチェック有りとチェック無しのイメージがそれぞれ必要だからです。いろいろ苦労した割には短いプログラムなのがショック。
※小さいBMPじゃないとはみ出るので注意。