这是以前写的代码,自绘xp风格的菜单,硬盘坏了后以为没了,最后写的一个软件要自定义风格,“翻箱倒柜”的终于在我可爱的古董机^_^上找到了一个应用的例子.还是把它放到blog上来,即可共享又可作为备用 :)
把主菜单的onmeasureitem指向measuremainitem.onadvanceddrawitem指向drawmainitem,子菜单的onmeasureitem指向measuresubitem.onadvanceddrawitem指向drawsubitem,调整颜色或使用默认颜色即可达到效果 【程序编程相关:多层数据库开发一:设计数据库应用程序 】 【推荐阅读:多层数据库开发三:创建多层应用程序 】 【扩展信息:Delphi控制Excel 】//调整主菜单项尺寸
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; ... 下一页