用Delphi制作个性化的菜单(6)
2008-04-09 04:31:56来源:互联网 阅读 ()
背景的填充色,$002222FF为起始色ACanvas.FillRect(Rect(xb,ARect.Top,xb 1,ARect.Bottom));
inc(xb);
end;
ImageList1.Draw(ACanvas,ARect.Left 1,ARect.Top 1,0,true); //在左边绘制图标
ACanvas.Font.Color:=clWhite; //被选中时的字体前景色是白色
SetBkMode(ACanvas.Handle,TRANSPARENT); //必须重设背景模式为透明
ACanvas.TextOut(ARect.Left 20,ARect.Top 4,Item.Caption);//front color,which is white font
end;
end;
在各菜单项的OnDrawItem事件处(如五所示)均调用此过程,运行程序可以看到一个有背景图、所选菜单项左边有一个图标且背景色是由红到黄渐变的菜单。
㈡ 以下是实现上述个性化菜单的自定义过程DrawItem的另一个示例的代码。为一个有图标的弹出式菜单,不作过多的说明了。
procedure TForm1.DrawItem(Item:TMenuItem; ACanvas: TCanvas; ARect: TRect; Selected: Boolean);
var
i,xb:integer;
begin
//设置字体和其前景色
ACanvas.Font := Screen.IconFont;
ACanvas.Brush.Color := clBtnFace;
ACanvas.FillRect(ARect);
ACanvas.TextOut(ARect.Left 20,ARect.Top 4,Item.Caption);
if Selected then begin
//绘制当前选择的菜单项
xb:=0;
for i:=0 to ARect.Right do begin
ACanvas.Brush.Color :=clTeal i*$100;//gradient back color
ACanvas.FillRect(Rect(xb,ARect.Top,xb 1,ARect.Bottom));
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash
