酷的菜单按钮

介绍 本文展示了带有下拉菜单的按钮的使用,类似于Office 2000套件中的按钮。代码被封装在一个MFC类中。类本身是从一个CButton类派生的,通过从这个类派生,可以提供大部分按钮行为。 代码的主要核心是绘制按钮及其行为的绘制例程。此外,还有大量使用老鼠诱捕代码。 访问类的公共接口如下所示… 隐藏,复制Code

BOOL Create( LPCTSTR lpszCaption, DWORD dwStyle, 
                  const RECT& rect, CWnd* pParentWnd, UINT nID );
BOOL SetButtonImage(UINT nResourceId, COLORREF crMask);
BOOL AddMenuItem(UINT nMenuId,const CString strMenu, UINT nFlags);

这些函数创建类,设置按钮的位图,并为下拉菜单菜单添加菜单项。 位图必须作为位图资源添加到类中,最好使用标准工具栏按钮大小(16x15像素)。 遮罩的颜色参考通常是RGB(255,0,255)(品红)。 菜单项通过AddMenuItem功能添加到菜单按钮。您需要创建一个资源符号,并使用Windows API菜单下的相关菜单标志(超出了本文的范围)。然后将命令处理程序添加到父windows消息映射中(请参阅代码示例)。 在这里显示的示例中,按钮是在OnInitDialog处理程序中构造的。该按钮被创建为一个窗口,但是可以很容易地更改为一个子类化的对话框项。 这个班级还有改进的空间;RemoveMenuItem, ModifyMenuItem可以被添加和SetButtonImage可以被修改来替换当前的图像,不幸的是项目的截止日期阻止我添加这个功能。 历史 2000年7月29日-更新源和演示2003年7月4日-更新源和演示 许可证 本文没有附带明确的许可,但可能包含文章文本或下载文件本身的使用条款。如果有疑问,请通过下面的讨论区联系作者。可以在这里找到作者可能使用的许可证列表。 本文转载于:http://www.diyabc.com/frontweb/news447.html

原文地址:https://www.cnblogs.com/Dincat/p/13450113.html