📄 coolmenu.h
字号:
#ifndef _COOL_MENU_
#define _COOL_MENU_
//菜单项类
class CMenuItem
{
public:
CMenuItem()
{
bSeperator=FALSE;
hItemIcon=NULL;
strItemText.Empty();
}
HICON hItemIcon;//图标句柄
CString strItemText;//菜单项内容
BOOL bSeperator;//是否是分割条
};
//自画式菜单类
class CCoolMenu:public CMenu
{
public:
//构造函数,初始化各种数据
CCoolMenu();
//析构函数,清除菜单
~CCoolMenu();
//在nPos前插入一个菜单项
void InsertMenuItem(UINT nID,CMenuItem *pMenuItem,int nPos=0);
//追加一个菜单项
void AppendMenuItem(UINT nID,CMenuItem *pMenuItem);
//设置垂直条位图的宽度
void SetBitmapWidth(int nWidth);
//设置菜单项文字区长度
void SetTextWidth(int nWidth) {m_szText.cx=nWidth;}
//设置选中菜单项时的渐变色条的起止颜色
void SetBarColor(COLORREF cStartColor,COLORREF cEndColor) {m_cStartColor=cStartColor;m_cEndColor=cEndColor;}
//设置采用函数绘制渐变色垂直条位图的起止颜色
void SetBitmapColor(COLORREF cStartColor,COLORREF cEndColor) {m_cBitmapStartColor=cStartColor;m_cBitmapEndColor=cEndColor;}
//设置图标
//bVisible=TRUE:显示图标,否则不显示
//bSmall=TRUE:显示16X16图标,否则显示32X32图标
void SetIcon(BOOL bVisible=TRUE,BOOL bSmall=TRUE);
//设置垂直条位图
//nID=0:指示程序采用函数绘制垂直条位图,否则加载位图资源nID
void SetBitmap(BOOL bVisible=TRUE,UINT nID=0);
protected:
//绘制垂直条位图
void DrawBitmap(CDC *pDC);
//绘制渐变色条(cStart-->cEnd)
//bHorizon=TRUE:颜色沿水平方向渐变,否则是垂直方向
void DrawGradientRect(CDC *pDC,CRect rect,COLORREF cStart,COLORREF cEnd,BOOL bHorizon=TRUE);
//绘制菜单
virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
//计算菜单项大小
virtual void MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct);
private:
int m_nCount,m_nItems;//菜单项个数
int m_nIconOffset,m_nTextOffset;//图标和菜单项文字的偏移量
CSize m_szBitmapSize,m_szIcon,m_szText;//垂直条位图矩形大小、图标矩形大小和文字区矩形大小
CSize IconSize;//图标大小,其值为16X16或32X32
BOOL m_bIcon,m_bBitmap;//指示是否显示图标和垂直条位图
BOOL m_bBitmapWidth;//指示是否由用户指定垂直条位图的宽度
CBitmap m_nBitmap;//垂直条位图
COLORREF m_cStartColor,m_cEndColor;//选中菜单项时的渐变色条的起止颜色
COLORREF m_cBitmapStartColor,m_cBitmapEndColor;//采用函数绘制垂直条位图时的起止颜色
COLORREF m_cMenuColor;//菜单背景色
COLORREF m_cNormalTextColor,m_cSelectedTextColor;//菜单项正常显示时的文字颜色和选中时的文字颜色
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -