Цитата:
Сообщение от Kpyc
Пытался через Screen.Menu.Font...
|
Это работает когда OwnerDraw у меню установлен в true, но изменить высоту пункта меню так не выйдет - если установить большой размер то пункты будут отрисовываться неправильно.
Вот пример как в DrawItem сменить цвет у шрифта и выделения, но легко изменить и другие его свойства
Код:
procedure TForm1.N1DrawItem(Sender: TObject; ACanvas: TCanvas;
ARect: TRect; Selected: Boolean);
begin
MainMenu1.OwnerDraw:= true; { Обязательно }
with ACanvas do
begin
Font.Color:=clRed;
if Selected then
begin
Font.Color:=clRed;
Brush.Color:=clGreen;
end
else
begin
Font.Color:=clGreen;
Brush.Color:=clRed;
end;
Rectangle(ARect);
TextOut(ARect.Left,ARect.Top,(Sender as TMenuItem).Caption);
end;
end;
Цитата:
...высота меню не подстраивается под новый шрифт.
|
Это делается "ручками" при прорисовке на вывод менюшки перехватом WM_NCPAINT, а чтоб много не кодить можно
СoolMenus использовать, он умеет это делать.
З.Ы. Вот ещё
http://www.delphisources.ru/forum/showthread.php?t=7412