⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tcmenu.h

📁 深入剖析Visual C++编程技术及应用实例
💻 H
字号:
#ifndef TCMENU_H
#define TCMENU_H


class TCMenuData
{
public:
TCMenuData () { menuIconNormal = -1; menuIconSelected = -1; menuIconDisabled = -1;nID=0;};
char menuText[32];
UINT menuIconNormal;
UINT menuIconSelected;
UINT menuIconDisabled;
UINT nID;
};



typedef enum {Normal,TextOnly} HIGHLIGHTSTYLE;



class TCMenu : public CMenu	
{
// Construction
public:
TCMenu(); 
// Attributes
protected:
CTypedPtrArray<CPtrArray, TCMenuData*> m_MenuList;	
//菜单项管理
CTypedPtrArray<CPtrArray, TCMenu*>	m_SubMenus;	
//菜单管理
public: 
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CCustomMenu)
//}}AFX_VIRTUAL 
// Implementation
public:
virtual ~TCMenu();	// Virtual Destructor 
// Drawing: 
virtual void DrawItem( LPDRAWITEMSTRUCT);	
//自绘制函数
virtual void MeasureItem( LPMEASUREITEMSTRUCT );
//菜单项大小调整

void SetTextColor (COLORREF );
//设置文本颜色
void SetBackColor (COLORREF);
//设置菜单背景
void SetHighlightColor (COLORREF);	
//设置高亮色彩
void SetIconSize (int, int);	
//设置图标大小
void SetHighlightStyle (HIGHLIGHTSTYLE );
//设置高亮风格
void SetHighlightTextColor (COLORREF);	
//设置高亮状态的文本色彩

virtual BOOL AppendODMenu(LPCTSTR lpstrText, 
UINT nFlags = MF_OWNERDRAW,
UINT nID = 0,
UINT nIconNormal = -1, 
UINT nIconSelected = -1,
UINT nIconDisabled = -1);	
//添加菜单项
virtual BOOL ModifyODMenu(LPCTSTR lpstrText,
UINT	nID = 0,
UINT	nIconNormal = -1,
UINT	nIconSelected = -1,
UINT	nIconDisabled = -1);	
//更改菜单项
virtual BOOL LoadMenu(LPCTSTR lpszResourceName);
//载入菜单
virtual BOOL LoadMenu(int nResource);
virtual BOOL DestroyMenu();

// Generated message map functions
protected:
COLORREF m_crText;
COLORREF m_clrBack;
COLORREF m_clrText;
COLORREF m_clrHilight;
COLORREF m_clrHilightText;
LOGFONT m_lf;
CFont m_fontMenu;
UINT m_iMenuHeight;
BOOL m_bLBtnDown;
CBrush m_brBackground,m_brSelect;
CPen m_penBack;
int m_iconX,m_iconY;
HIGHLIGHTSTYLE m_hilightStyle; 
//{{AFX_MSG(CCustomMenu)
// NOTE - the ClassWizard will add and remove member functions here.
//}}AFX_MSG
}; 
///////////////////////////////////////////////////////////////////////////
// 
//{{AFX_INSERT_LOCATION}}
// Microsoft Developer Studio will insert additional declarations immediately before the previous line. 
#endif // CCUSTOMMENU_H 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -