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

📄 menustack.h

📁 以栈结构实现的多级菜单
💻 H
字号:
#ifndef _MENUSTACK_H
#define _MENUSTACK_H
#include "AeeStdlib.h"
#include "AeeMenu.h"
#include "AeeShell.h"
#include "IStack.h"


typedef boolean PFNMENUHANDLE();
typedef enum 
{
	MENUITEM_NULL,
	MENUITEM_LOGIN,
	MENUITEM_BOOKMARK,
	MENUITEM_PUSH,
	MENUITEM_HISTORY,
	MENUITEM_SETTING,
	MENUITEM_ABOUT,
	MENUITEM_MAINPAGE,
	MENUITEM_LASTPAGE,
	MENUITEM_OPENURL,
	MENUITEM_SWITCH,
	MENUITEM_EDIT,
	MENUITEM_NEW,
	MENUITEM_DELETE,
	MENUITEM_DEFAULTPAGESET,
	MENUITEM_DEFAULTPAGENAME,
	MENUITEM_DEFAULTPAGEURL,
	MENUITEM_GATEWAYSET,
	MENUITEM_CONNECTMETHOD,
	MENUITEM_ADVANCESET,
	
	//MENUITEM_CONNECT,
	//MENUITEM_GATEWAY,
	MENUITEM_CONNECTTCP,
	MENUITEM_CONNECTUDP,
	MENUITEM_GATEWAYIP,
	MENUITEM_GATEWAYPORT,
	MENUITEM_GATEWAYUSER,
	MENUITEM_PASSWORD,
	MENUITEM_CONNECTTCPWTLS,
	MENUITEM_CONNECTUDPWTLS,
	MENUITEM_HTTP,
	MENUITEM_HTTPWTLS,
	
	
} TMenuItemId;

typedef struct TMenuItem
{
  TMenuItemId	tItemId;				//菜单的ItemID
  uint16		tImageId;				//菜单有图标时为图标ID
  uint16		uiResourceId;			//菜单名字ID
  const struct TMenuItem* ptChildMenu;	//如果选择此菜单会出现子菜单,则保存子菜单指针
  PFNMENUHANDLE *ChildFunc;
}TMenuItem;

typedef AECHAR* PFNMENUREDRAWHDL(uint16 ResId);
typedef uint16  PFNGETSELITEM(TMenuItem* pMenu);

typedef struct _IMenuStack
{
	IStack*   m_pStack;	//菜单栈				
	IMenuCtl* m_pCtl;	//菜单控件
	PFNMENUREDRAWHDL *m_pRedrawCb;
	PFNGETSELITEM *m_pGetSelCb;

}IMenuStack;
//创建一个IMenuStack的结构
IMenuStack* IMENUSTACK_CreateInstance(TMenuItem* pItem,PFNMENUREDRAWHDL *pRedrawCb,PFNGETSELITEM *pGetSelCb);
//释放IMenuStack结构保存的资源
void		IMENUSTACK_Release(IMenuStack** pStack);
//将当前栈顶保存的菜单指针画在屏幕上
boolean     IMENUSTACK_Redraw(IMenuStack* pStack); 
//处理用户输入的事件
boolean     IMENUSTACK_HandleEvent(IMenuStack* pStack,AEEEvent eCode,uint16 wParam,uint32 dwParam); 
#endif

⌨️ 快捷键说明

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