Delphi实用代码:自绘XP风格菜单
2008-02-23 07:18:54来源:互联网 阅读 ()
1 2 3 4 下一页
这是以前写的代码,自绘XP风格的菜单,硬盘坏了后以为没了,最后写的一个软件要自定义风格,“翻箱倒柜”的终于在我可爱的古董机^_^上找到了一个应用的例子。
把主菜单作以下调整:
OnMeasureItem指向MeasureMainItem、
OnAdvancedDrawItem指向DrawMainItem,
子菜单的OnMeasureItem指向MeasureSubItem、
OnAdvancedDrawItem指向DrawSubItem,
调整颜色或使用默认颜色即可达到效果
//调整主菜单项尺寸
procedure MeasureMainItem(Sender: TObject; ACanvas: TCanvas; var Width, Height: Integer);
begin
Width := Width 6;
Height := Height 2;
end;
//调整子菜单项尺寸
procedure MeasureSubItem(Sender: TObject; ACanvas: TCanvas; var Width, Height: Integer);
begin
Width := Width 20;
Height := Height 2;
end;
//绘制主菜单内容
procedure DrawMainItem(Sender: TObject; ACanvas: TCanvas; ARect: TRect; State: TOwnerDrawState);
const
MainMenuBackColor : TColor = $DEEDEF;
MainMenuBorderColor : TColor = $DEEDEF;
MainMenuSelectedBackColor : TColor = $DFA988;
MainMenuSelectedBorderColor: TColor = $C08000;
MainMenuHotLightBackColor : TColor = $DEEDEF;
MainMenuHotLightBorderColor: TColor = $800080;
MainMenuGrayedBackColor : TColor = $DEEDEF;
var
BrushColor, PenColor: TColor;
TextRect: TRECT;
begin
if odGrayed in State then
begin
BrushColor := MainMenuGrayedBackColor;
PenColor := MainMenuGrayedBackColor;
end
else
if odHotLight in State then
begin //鼠标划过
BrushColor := MainMenuHotLightBackColor;
PenColor := MainMenuHotLightBorderColor;
end
上一篇: 和md5.asp结果一样的Delphi加密代码
下一篇: 用Delphi实现快闪窗体信息提示
1 2 3 4 下一页
标签:
版权申明:本站文章部分自网络,如有侵权,请联系: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