menuex.h

来自「深入浅出Visual C++入门进阶与应用实例 随书光盘 作者 何志丹」· C头文件 代码 · 共 52 行

H
52
字号
// MenuEx.h: interface for the CMenuEx class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_MENUEX_H__66BF266B_FE1F_4551_B733_A8D0B2B09D30__INCLUDED_)
#define AFX_MENUEX_H__66BF266B_FE1F_4551_B733_A8D0B2B09D30__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "Afxtempl.h" //加了后,可以使用CArray动态数组

typedef struct tagMENUITEM
{
	CString		strText;				//菜单文本
	UINT		uID;					//菜单ID
	tagMENUITEM()
	{
		strText = ""; 
		uID = 0; 
	};
}MENUITEM,*LPMENUITEM;

class CMenuEx : public CMenu  
{
public:
	CMenuEx();
	virtual ~CMenuEx();

	//读入菜单,调用这个函数以后,菜单就有了自画风格
	BOOL LoadMenu(UINT uMenu);
	void InitMenu(CMenu* pMenu );

	//修改,添加,删除菜单项,自动指定为自画风格
	BOOL ModifyMenuEx(UINT nPosition, UINT nFlags, UINT nIDNewItem = 0, LPCTSTR lpszNewItem = NULL );	
	BOOL AppendMenuEx(UINT nFlags, UINT nIDNewItem = 0, LPCTSTR lpszNewItem = NULL );
	BOOL RemoveMenuEx(UINT nPosition, UINT nFlags);

	virtual void MeasureItem( LPMEASUREITEMSTRUCT lpMeasureItemStruct );	
	virtual void DrawItem( LPDRAWITEMSTRUCT lpDrawItemStruct );

protected:
	void	ChangeMenuStyle(CMenu* pMenu,HMENU hNewMenu);
	CArray<CMenuEx *,CMenuEx *> m_SubMenuArr;
	CArray<MENUITEM *,MENUITEM *>m_MenuItemArr;

};


#endif // !defined(AFX_MENUEX_H__66BF266B_FE1F_4551_B733_A8D0B2B09D30__INCLUDED_)

⌨️ 快捷键说明

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