首页 > 代码库 > 002带图标的程序菜单

002带图标的程序菜单

技术要点:

要实现带图标的菜单,需要从CMenu类派生一个子类,并在子类中改写DrawItem方法和MeasureItem方法。基本思路如下:

首先,定义一个记录菜单项信息的结构CMenuItemInfo,该结构包含了菜单项的文本、图像索引、ID等信息。

然后,从CMenu中派生一个子类CIconMenu。在该类中定义一个方法ChangeMenuItem,利用递归的方式修改所有的菜单项信息,使其具有自绘风格(MF_OWNERDRAW)。

接着,在CIconMenu类中定义绘制菜单项文本、绘制菜单项图标和绘制分隔条的方法。

最后,改写MeasureItem方法,设置菜单项的大小,改写DrawItem方法,根据菜单项的不同状态,绘制菜单项。