用c++ builder编制仿Oicq菜单
作者:马明臣
目前一些前卫的软件都使用自画功能来美化程序的界面,比如QQ的菜单就是一例。他采用了仿windos开始界面,即左面显示一个位图,然后是每个菜单项前面加上一个漂亮的图标。当鼠标悬浮在每一个菜单项上时图标就凸出显示,而菜单项的文字部分则凹下去显示,非常漂亮。(效果如图1所示)
你是否也想在你的程序中制作出这样的菜单呢?那么就跟我一起来制作吧。
新建一工程文件,窗体单元以CoolMenu.cpp存盘,工程文件以CoolMenuPrj.bpr存盘
在对象浏览器中把窗体的Caption设为CoolMenu,Name属性设为CoolMenuForm,Menu属性设为CoolMenu。激活Standard组件页增加一个TMainMenu组件,设置name属性为CoolMenu,OwnerDdraw属性为true,images属性为MenuImage,再激活Win32组件页增加一个TImageList组件,设置name属性为MenuImage.双击该ImageList在其中添加如图1所示的9个图标文件(显示在子菜单前的图标)。双击CoolMenu菜单控件添加如图所示的子菜单。(分别为消息管理、BP机短讯、手机短讯、更改用户、注册向导、个人设定、系统参数、退出)并分别设置其imageIndex为0,1,2,3,4,5,6,7,8。
打开CoolMenu.h文件在其头部加入如下代码:
#include <Graphics.hpp>
在private:// User declarations下加入如下代码:
Graphics::TBitmap *Bmp1;
void __fastcall DrawBevel(TRect &rect, TCanvas *Canvas, bool bBevel);
打开C