发信人: lihai155(天琴)
整理人: kingron(2000-12-27 18:05:38), 站内信件
|
1.新建一个PopupMenu1.设置OwnerDraw:=True;
2.添加一个菜单项m1.设置m1.Caption:='';
m1.Enabled:=False;
3.添加一些你需要的菜单项m2,m3,m4,…….
其中设置m2.Break:=mbBreak;
4.在m1的DrawItem中:
procedure TForm1.m1DrawItem(Sender: TObject; ACanvas: TCanvas;
ARect: TRect; Selected: Boolean);
var
i:word;
dy,y:real;
lf:TLogFont;
tf:TFont;
begin
//画渐进色背景
dy:=(ARect.Bottom - ARect.Top)/256;
y:=0;
for i:=255 downto 0 do
begin
Acanvas.brush.color:=RGB(255-i,255-i,255);
Acanvas.fillrect(rect(0,round(y),ARect.Right - ARect.Left,round(y+dy)));
y:=y+dy;
end;
//写字
With ACanvas do
Begin
Brush.Style:=bsClear;
Font.Name:='宋体';
Font.Size:=12;
Font.Color:=clred;
tf:=TFont.Create;
tf.Assign(Font);
GetObject(tf.Handle,sizeof(lf),@lf);
lf.lfEscapement:=900;
tf.Handle:=CreateFontIndirect(lf);
Font.Assign(tf);
tf.Free;
TextOut(ARect.Left +2,ARect.Bottom -2,'弹出菜单');
End;
end;
5.在m1的MeasureItem中:
procedure TForm1.m1MeasureItem(Sender: TObject; ACanvas: TCanvas;
var Width, Height: Integer);
begin
/////////
Width:= 10;
Height:= (PopupMenu1.Items.Count - 1) * 19;
end;
//有什么改进意见欢迎回复,谢谢!
---- 问彩云何处飞,愿成风永追随。
有奇缘能相聚,死也无悔。
我柔情深似海,你痴心可问天。
誓相守长缱绻,岁岁年年。 |
|