//////////////////////////////////////////////CMenuEx类的文件 #if !defined(AFX_MENUEX_H__FE677F6B_2315_11D7_8869_BB2B2A4F4D45__INCLUDED_) #define AFX_MENUEX_H__FE677F6B_2315_11D7_8869_BB2B2A4F4D45__INCLUDED_ #include "afxtempl.h" #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 typedef struct tagMENUITEM //该结构用存放菜单自绘时所需要的信息; { CString strText; //菜单项的文本; UINT uID; //菜单的ID标识号; UINT uIndex; //菜单项所要画的图标在工具条图标序列中的索引号; int uPositionImageLeft; //当前菜单项在纵向菜单中的位置; }MENUITEM; typedef MENUITEM * LPMENUITEM; ////////////////////////////////////////////////////////////// class CMenuEx : public CMenu { public: void InitPopupMenu(CMenu *pPopupMenu,UINT uToolBar,CToolBar *pToolBar); void ChangeStyle(CMenu *pMenu,CToolBar *pToolBar,BOOL bIsMainMenu=FALSE); void SetHighLightColor(COLORREF crColor); void SetBackColor(COLORREF); void SetTextColor(COLORREF); void SetImageLeft(UINT idBmpLeft); void MeasureItem(LPMEASUREITEMSTRUCT lpMIS); void InitMenu(CMenu *pMenu,UINT uToolBar,CToolBar *pToolBar); void DrawItem(LPDRAWITEMSTRUCT lpDIS); CMenuEx(); virtual ~CMenuEx();
protected: int m_nSeparator; CSize m_szImageLeft; //纵向位图尺寸; CBitmap m_bmpImageLeft; //纵向位图对象; int m_nWidthLeftImage; //纵向位图的宽度; BOOL m_bHasImageLeft; //是否有纵向位图 BOOL m_bInitial; //菜单是否已初始化,即设定了自绘风格 int GetImageFromToolBar(UINT uToolBar,CToolBar *pToolBar,COLORREF crMask=RGB(192,192,192)); //从工具条中获取图标信息; CList |