65.9K
CodeProject 正在变化。 阅读更多。
Home

基于ToolBarCtrl的菜单栏控件

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.85/5 (17投票s)

2001年12月4日

1分钟阅读

viewsIcon

217936

downloadIcon

4336

一个基于ToolBarCtrl的菜单栏控件,使用CMenuXP。

Sample Image - MenuBarXP.jpg

引言

这个菜单栏控件是基于 CToolBarCtrl 类而不是 CToolBar 类,因此它从不假定它有源自 CFrameWnd 的父窗口。它缺少一些功能,例如停靠或自动工具提示,但它可以与任何父窗口源自 CWnd 的窗口一起使用。当然,您必须使用 MFC。

实现

CMenuBarCToolBarCtrl 之间,我编写了一个名为 CToolBarXP 的类来处理自定义绘制。如果您不需要此功能,只需将基类修改为 CToolBarCtrl,并从消息映射中删除以下行

ON_NOTIFY_REFLECT(NM_CUSTOMDRAW, CToolBarXP::OnCustomDraw)

CToolBarXP 包含一个 LoadToolBar 成员函数来加载工具栏资源。即使您不关心菜单栏或自定义绘制,它也可能对您有用。

CMenuXP 被用作菜单类来实现所有者绘制。CMenuXP 源自 CMenu,因此它具有 CMenu 的所有功能。如果您不需要所有者绘制菜单,只需使用 CMenu 成员来构造菜单即可。

包含的示例很简单,远非强大,但我希望它是一个好的开始。

许可证

本文没有明确的许可证附加到它,但可能包含在文章文本或下载文件本身中的使用条款。如有疑问,请通过下面的讨论区联系作者。

作者可能使用的许可证列表可以在此处找到。

© . All rights reserved.