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

📄 guimenu.h

📁 HGE 2D游戏引擎制作的一个演示
💻 H
字号:
/**********************************************
					菜单类
**********************************************/
#pragma once
#include "GUI.h"

#define ENGINE_WM_MENU	

#define MENUNAME_MAX	24

//菜单项风格
enum MENUITEMSTYLE
{
	MENUSTYLE_INVALID	= 0x0,		//无效项
	MENUSTYLE_COMMON	= 0x1,		//普通项
	MENUSTYLE_PARTITION	= 0x2		//分割条
};

enum MENUITEMRESID
{
	MENU_TOP		= 0,
	MENU_BODY		= 1,
	MENU_BOTTOM		= 2,
	MENU_PARTITION	= 3,
	MENU_SELECT		= 4
};

class GUIMenu :
	public GUI
{
	// 由于菜单资源一般使用公用资源,所以只需要初始化创建一次就可以了
public:
	static const int MENURES_COUNT = 5;
	static const char* m_szDefaultResMenu[MENURES_COUNT];
	static char m_szResMenu[MENURES_COUNT][MAX_RESNAME];
	static bool SetResMenu(DWORD restype,char* resname);

public:
	GUIMenu(void);
	~GUIMenu(void);

protected:
	DWORD					m_dwColorCommon;
	DWORD					m_dwColorInvalid;
	BYTE					m_byAlpha;
	class GUIMenuItem*		m_pMenuSelect;
	class GUIMenuItem*		m_pMenuTop;
	class GUIMenuItem*		m_pMenuBottom;
	vector <class GUIMenuItem*>	m_pMenuItemArray;
public:
	bool CreateGUIMenu(char* lpszName,GUI* pParent,BYTE alpha = 50);
	void SetDefaultResource();
	void SetMenuItemFontColor(DWORD colCommon,DWORD colInvalid);
	bool AddMenuItem(DWORD dwCmdID,char *lpszItemName,BYTE byState);
	bool DelMenuItem(DWORD id);
	bool SetMenuItemCommandID(DWORD id,DWORD dwCmdID);
	bool SetMenuItemName(DWORD id,char *lpszItemName);
	bool SetMenuItemState(DWORD id,BYTE byState);

public:
	virtual void Render();														///绘制
	virtual void TimeFrame();													///更新(遍历子对象)
	virtual int OnMouseMoveIn(float x,float y);									///当鼠标移动进来,用这个函数通知,这一层可以高亮或动画等处理
	virtual void OnMouseMoveOut();												///当鼠标移动出去,通知,可结束高亮或者结束动画等。
	virtual void OnChildMessage(GUI* pChildGUI,UINT iMsg, WPARAM wParam, LPARAM lParam);///子对象发送了命令请求
};

⌨️ 快捷键说明

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