📄 uimenu.h
字号:
/*********************************************************************/
// 文 件 名: uiMenu.h
// 程序说明: 菜单
// 程序设计: 张学平
// 2001.10.23 设计完成 说明文档:R004-S234-0001
// 程序审查: 宋军霞
// 2002.01.28 审查完成 说明文档:R004-S234-0001
// 项目编号: R004-S234
// 版 本: V1.0
// 版 权: Reality Plus Technology (ShenZhen) Co.,Ltd.
/*********************************************************************/
#ifndef _GUI_MENU_H
#define _GUI_MENU_H
#include <pr2k.h>
#include <sys/syscall.h>
#include <typedefine.h>
#include <uiGui_Cfg.h>
#include <uiWm_Queue.h>
#include <uiFont.h>
#include <uiControl.h>
#define MENU_SYSTEM 0x0000
#define MENU_TITLE 0x0001
#define MENU_NORMAL 0x0002
#define MENU_TYPEMASK 0x0003
#define MENU_FLAG_RIGHT 0x0000
#define MENU_FLAG_LEFT 0x0004
#define MENU_FLAG_NONE 0x0008
#define MENU_FLAGMASK 0x00c0
#define MENU_SHRINK 0x0000
#define MENU_POPUP 0x0001
#define MAX_MENUITEM_COUNT 8 // 最大菜单项数
#define GUI_MENU_CAPTION_SIZE 31 // 菜单标题的最大字符数
#define GUI_MENU_ITEM_SIZE 15 // 菜单标题的最大字符数
#define MENUITEM_TOP_GAP 2 // 菜单项与顶端之间的距离
#define MENUITEM_HEIGHT_GAP 4 // 菜单项之间的距离
typedef struct tagMenuItemInfo // 调用创建窗口函数时传递参数用
{
BYTE *caption; // 菜单项显示字串
short command; // 菜单项命令字,作为消息MENU_CLICK的x参数, 由用户指定,但不能为0。
} TMenuItemInfo;
typedef struct tagMenuItem // 菜单中的菜单项链表
{
char caption[GUI_MENU_ITEM_SIZE+1]; // 菜单项内容
short check; // 菜单项是否具有Check属性
short command; // 消息MENU_CLICK中x的参数,不能为0
struct tagMenuItem *next; // 指向同一菜单中的下一个菜单项
} TMenuItem;
typedef struct tagGuiMenu
{
TGuiControl base;
short popupFlag; // 状态标志,展开:非0,收回:0
short activeItem; // 被激活的菜单项序号,初始值为-1
short color; // 前景色,缺省为黑色
short backColor; // 背景色,缺省为白色
short countItem; // 菜单项数
short popup_left, popup_top, popup_right, popup_bottom; // 展开时的座标
char caption[GUI_MENU_CAPTION_SIZE+1]; // 标题
TMenuItem *pMenuList; // 菜单项结构链表
} TGuiMenu;
// 创建菜单
DLL_EXP(HNDL) guiMenu_Create(short left,short top,short right,short bottom,const char* caption, WORD style);
// 添加一个菜单项
DLL_EXP(STATUS) guiMenu_AppendItem(HNDL hMenu, const char *szItem, short nCommand);
// 插入一个菜单项
DLL_EXP(STATUS) guiMenu_InsertItem(HNDL hMenu, const char *szItem, short nCommand, short nPos );
// 删除一个菜单项
DLL_EXP(STATUS) guiMenu_DeleteItem(HNDL hMenu, short nPos);
// 设置菜单标题
DLL_EXP(STATUS) guiMenu_SetCaption(HNDL hMenu,const char *caption);
// 获取菜单标题
DLL_EXP(char *) guiMenu_GetCaption(HNDL hMenu);
// 展开菜单
DLL_EXP(STATUS) guiMenu_Popup(HNDL hMenu);
// 收回已展开的菜单
DLL_EXP(void) guiMenu_Shrink(void);
// 内部函数
// 删除菜单及其中的内容
STATUS _guiMenu_Delete(HNDL hMenu);
// 显示菜单(名称及其标志)
STATUS _guiMenu_Show(HNDL hMenu);
// 菜单控件对消息的响应
void _guiMenu_Action(HNDL hMenu, WORD message, short x , short y);
// 系统对菜单的处理
BOOL _guiMenuHandler( WORD type, short x, short y );
#endif // end of #ifdef _GUI_MENU_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -