当前页面位置: » 丰搜网 » 文档中心 » 详细内容
delphi实用代码:自绘xp风格菜单
这是以前写的代码,自绘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 |