基于ToolBarCtrl的菜单栏控件






4.85/5 (17投票s)
2001年12月4日
1分钟阅读

217936

4336
一个基于ToolBarCtrl的菜单栏控件,使用CMenuXP。
引言
这个菜单栏控件是基于 CToolBarCtrl
类而不是 CToolBar
类,因此它从不假定它有源自 CFrameWnd
的父窗口。它缺少一些功能,例如停靠或自动工具提示,但它可以与任何父窗口源自 CWnd
的窗口一起使用。当然,您必须使用 MFC。
实现
在 CMenuBar
和 CToolBarCtrl
之间,我编写了一个名为 CToolBarXP
的类来处理自定义绘制。如果您不需要此功能,只需将基类修改为 CToolBarCtrl
,并从消息映射中删除以下行
ON_NOTIFY_REFLECT(NM_CUSTOMDRAW, CToolBarXP::OnCustomDraw)
CToolBarXP
包含一个 LoadToolBar
成员函数来加载工具栏资源。即使您不关心菜单栏或自定义绘制,它也可能对您有用。
CMenuXP 被用作菜单类来实现所有者绘制。CMenuXP
源自 CMenu
,因此它具有 CMenu
的所有功能。如果您不需要所有者绘制菜单,只需使用 CMenu
成员来构造菜单即可。
包含的示例很简单,远非强大,但我希望它是一个好的开始。
许可证
本文没有明确的许可证附加到它,但可能包含在文章文本或下载文件本身中的使用条款。如有疑问,请通过下面的讨论区联系作者。
作者可能使用的许可证列表可以在此处找到。