q_menu.hpp

来自「QCurses全部代码 QCurses全部代码」· HPP 代码 · 共 102 行

HPP
102
字号
/*############################################################                                                           ##    类 名 称:Q_Menu.hpp                                   ##    类 定 义:菜单类                                       ##    建立时间:2004-12-7                                    ##    开 发 者:邱洋(Q龙)                                    ##    构造函数:WINDOW   *vMainWin  主窗口                   ##              int      vHeight     高度                     ##              int      vWidth     宽度                     ##              int      vYBegin    起始y( 以后y指上下 )     ##              int      vXBegin    起始x( 以后x指左右 )     ##              bool     vBox       是否画框                 ##              int      vCFront    文字颜色                 ##              int      vCBack     背景色                   ##              int      vMaxCount  最大选项(0没限制)        ##                                                           ##                                                           ##    最后修改:2004-12-6 将 isCheckBreak 声明为 virtual     ##                                                           ##                                                           ##                                                           #############################################################*/#ifndef     Q_MENU_HPP#define     Q_MENU_HPP#include    "Q_Object.hpp"#include    "Q_List.hpp"//#################################################################################################################//菜单项class  Q_MenuItem   {	public:		int    M_Flag;       //标记		char   M_Name[40];   //名称		bool   M_Sub;        //是否有下级菜单		int    M_UpFlag;     //上级菜单标记		int    M_LEN;        //宽度	public:		Q_MenuItem(int flag,char *name,bool sub,int upflag);}; //#################################################################################################################//子菜单项class Q_SubMenuItem  {	public:		Q_MenuItem  *SM_Item[20];  //最多也就20个子菜单		int         Count;         //子菜单的数量		int         SubWidth;      //子菜单最大宽度	public:		Q_SubMenuItem();		bool   AddSubMenuItem(Q_MenuItem  *Items); //添加菜单项	private:		void   ComputSubWidth();   //求最大宽度};//#################################################################################################################//菜单选项列表class  Q_MenuList: public Q_List{	public:		Q_MenuList(WINDOW  *vMainWin,int   vHeight,int  vWidth,int  vYBegin,int  vXBegin,bool   vBox,int  vCFront,int  vCBack,int  vMaxCount=0);		bool       isCheckBreak(int&  Key);};//#################################################################################################################class  Q_Menu: public Q_Object{	public:		int          xStart,yStart;     //起始坐标		Q_MenuItem   *MenuItems[200];   //首先设置200项目	public:		Q_Menu(WINDOW  *vMainWin,int  vWidth,int  vYBegin,int  vXBegin,bool  vBox,int  vCFront,int  vCBack);		int         Get();                //取得一个菜单的标志值,返回的是键盘的标志码		int         GetMenuFlag();        //使用函数 Get() 后,用来取得菜单的标志值		void        SetSpace(int JG);     //设置间隔		void        DispMenu();           //将菜单显示出来		void        AddMenu(int flag,char *name,bool sub,int upflag);     //加入一个菜单		bool        isCheckBreak(int& Key);                               //用户退出函数		Q_MenuItem  *GetSelectedMenu();                                   //得到用户的选择		char  *GetClass(){ return "Q_Menu"; }                             //返回类名称	private:		int           Count;              //总菜单数		int           SubFloor;           //子菜单数量		int           MainItemCount;      //主菜单数量		int           MenuJG;             //每个主数据项之间的间隔		WINDOW        *SubWin[4];         //4级子菜单	private:		void           MakeSubItem(Q_SubMenuItem  *SMenu); //创建子菜单		Q_MenuItem     *SelectEdMenuItem;                  //用户选择的菜单选项		Q_MenuItem     *MainMenuItem[20];                  //主菜单		Q_MenuList     *SubMenuList[4];                    //最多4层子菜单		Q_MenuItem     *GetMainMenuItem();                 //取得主菜单的项目		Q_SubMenuItem  *MakeSubItem(Q_MenuItem  *MMenu);   //建立子菜单所需项目};#endif

⌨️ 快捷键说明

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