将菜单的的OwnerDraw为True
然后自定义重绘事件,就可以了,代码如下:
procedure TForm1.N1DrawItem(Sender: TObject; ACanvas: TCanvas;
ARect: TRect; Selected: Boolean);
begin
ACanvas.FillRect(ARect);
ACanvas.Font.Size:=15; //设置为足够大的字号
ACanvas.Font.Name:= '仿宋'; //设置为你喜欢的字体
//输出菜单项
ACanvas.TextOut(ARect.Left,ARect.Top,(Sender as TMenuItem).Caption);
end;
procedure TForm1.N1MeasureItem(Sender: TObject; ACanvas: TCanvas;
var Width, Height: Integer);
begin
Height:=40; //设置为足够高以容纳你的菜单项
Width:=200; //设置为足够宽以容纳你的菜单项
end;
把要重绘的菜单项的事件指以上事件即可,效果如下:
右键弹出菜单相同