📄 guimenu.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 + -