いつもお世話になっております。
フォームにTMainMenuコントロールに以下のようなメインメニューを
設定しており、このメインメニューの背景色を標準のグレー色から
任意の色に変更したいと思っています。
---------------------------------------------
ファイル | 編集 | 表示 |
--------------------------------------------
すこし強引な方法ですが、Delphiをインストールディレクトリにあります、
「Menus.pas」ファイルをプロジェクトに追加し、
Brush.Colorを設定している箇所を書き換えることにより、
「ファイル」、「 編集」のメニューなどの箇所の色を
設定することができたのですが、メニュー項目の余白部分が
標準のグレーのままになってしまっています。
→ここから右がグレー色のままです
---------------------------------------------
ファイル | 編集 | 表示 |
--------------------------------------------
(調べたところ、オーナードローにすることで可能とありましたが、
メニューの表示されていない範囲で書く方法まではわかりませんでした。。。)
もし、何かいい方法をご存知のようでしたら
ご教授いただいてもよろしいでしょうか?
背景を変えるには?
と言うお題と同じだと思いますがコピペで手抜きですが
MainMenu1のOwnerDrawをTrueにする。
>メニューの表示されていない範囲で書く方法までは
>わかりませんでした。。。)
通常描画する範囲がARectに入りますが描画するのはその範囲を
越えてもかまいません。
procedure TForm1.N1DrawItem(Sender: TObject; ACanvas: TCanvas;
ARect: TRect; Selected: Boolean);
begin
with ACanvas do
begin
//通常の描画
if Selected then
Brush.Color := clYellow
else
Brush.Color := clwhite;
FillRect(ARect) ;
Font.Color := clTeal;
Font.Style := [fsItalic];
TextRect(ARect,ARect.Left,2+ ARect.Top,
N1.Caption) ;
//右部分の描画
Brush.Color := clRed;
ARect.Left:=ARect.Right;
ARect.Right:=ARect.Right+1000;
FillRect(ARect) ;
end;
end;
TSさん。ご回答いただきありがとうございます。
ご指示いただいた方法でうまくいきました。
誠にありがとうございました。
ツイート | ![]() |