Hi,
ich benutze OwnerDraw. Das Problem ist, dass das Popupmenü einen hässlichen Border besitzt (siehe Screenshot). Wie kann ich das verhindern? Diesen Code benutze ich bisher:
Delphi-Quellcode:
procedure TfrmMain.pmTrayDrawItem(Sender: TObject; ACanvas: TCanvas;
ARect: TRect; Selected: boolean);
var ACaption: TCaption;
begin
ACaption := TMenuItem(Sender).Caption;
with ACanvas
do
begin
if Selected
then
begin
Brush.Color := pmTrayOver;
Font.Color := pmTrayOverFont;
end else
begin
Brush.Color := pmTrayBg;
Font.Color := pmTrayFont;
end;
FillRect(ARect);
ARect.Left := ARect.Left + 5;
DrawText(
Handle, PChar(acaption), Length(acaption),
aRect, DT_SINGLELINE
or DT_VCENTER);
end;
end;
Viele von euch werden diesen Rand höchstwahrscheinlich nicht haben, denn es ist der Windowsskin, aber das Programm wird komplett geskinnt, deshalb sollte der Border durch ein kleines Rechteck drumrum ersetzt werden.