tcmenu.h

来自「深入剖析Visual C++编程技术及应用实例」· C头文件 代码 · 共 101 行

H
101
字号
#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 + =
减小字号Ctrl + -
显示快捷键?