menu.h
上传用户:zfj3589
上传日期:2022-07-13
资源大小:635k
文件大小:6k
源码类别:

微处理器开发

开发平台:

C/C++

  1. /****************************************************************************************
  2. * 文件名:MENU.H
  3. * 功能:菜单显示及操作,头文件。
  4. * 作者:黄绍斌
  5. * 日期:2004.02.26
  6. * 备注:
  7. ****************************************************************************************/
  8. #ifndef  MENU_H
  9. #define  MENU_H
  10. /* 定义主菜单宽度,及最大菜单个数 */
  11. #define  MMENU_WIDTH 34
  12. #define  MMENU_NO 6
  13. /* 定义菜单的宽度(下拉菜单),及最大子菜单个数 */
  14. #define  SMENU_WIDTH 66
  15. #define  SMENU_NO 8
  16. /* 定义一子菜单项的数据结构 */
  17. typedef  struct
  18. {  WINDOWS  *win; // 所属窗口
  19.    uint8    mmenu_no; // 对应的主菜单项号(0-n)
  20.    
  21.    uint8    no; // 子菜单项个数
  22.    char     *str[SMENU_NO]; // 子菜单字符串
  23.    uint8    state;   // 所选择的子菜单
  24.    
  25.    void     (*Function[SMENU_NO])(void); // 子菜单对应的服务程序
  26. } SMENU;
  27. /* 主菜单数据结构 */
  28. typedef  struct
  29. {  WINDOWS  *win; // 所属窗口
  30.    uint8    no; // 主菜单个数
  31.    char   *str[MMENU_NO]; // 主菜单字符串
  32. } MMENU;
  33. /* 定义图标菜单数据结构 */
  34. typedef  struct
  35. {  uint32 x; // 图标菜单位置(左上角的x坐标)
  36.    uint32 y; // 图标菜单位置(左上角的y坐标) 
  37.    uint8  *icodat; // 32*32的ICO数据地址
  38.    uint8  *title;       // 相关标题提示 (42*13)
  39.    uint8  state;   // 图标菜单状态,为0时表示未选中,为1时表示已选中
  40.    
  41.    void   (*Function)(void); // 对应的服务程序
  42. } MENUICO;
  43. /****************************************************************************
  44. * 名称:GUI_MMenuDraw()
  45. * 功能:显示主菜单,加上边框。
  46. * 入口参数:men 主菜单句柄
  47. * 出口参数:返回0表示操作失败,返回1表示操作成功
  48. ****************************************************************************/
  49. extern  uint8  GUI_MMenuDraw(MMENU *men);
  50. /****************************************************************************
  51. * 名称:GUI_MMenuSelect()
  52. * 功能:当前主菜单,加下划线,表示当前主菜单。
  53. * 入口参数:men 主菜单句柄
  54. *          no 所选的主菜单项
  55. * 出口参数:无
  56. ****************************************************************************/
  57. extern  void  GUI_MMenuSelect(MMENU *men, uint8 no);
  58. /****************************************************************************
  59. * 名称:GUI_MMenuNSelect()
  60. * 功能:取消当前主菜单,去除下划线。
  61. * 入口参数:men 主菜单句柄
  62. *          no 所选的主菜单项
  63. * 出口参数:无
  64. ****************************************************************************/
  65. extern  void  GUI_MMenuNSelect(MMENU *men, uint8 no);
  66. /****************************************************************************
  67. * 名称:GUI_SMenuDraw()
  68. * 功能:显示子菜单,加上边框。
  69. * 入口参数:men 菜单句柄
  70. * 出口参数:返回0表示操作失败,返回1表示操作成功
  71. ****************************************************************************/
  72. extern  uint8  GUI_SMenuDraw(SMENU *men);
  73. /****************************************************************************
  74. * 名称:GUI_SMenuSelect()
  75. * 功能:选择新的子菜单。
  76. * 入口参数:men 子菜单句柄
  77. *          old_no 原先选择的子菜单项
  78. *    new_no 现要选择的子菜单项
  79. * 出口参数:无
  80. ****************************************************************************/
  81. extern  void  GUI_SMenuSelect(SMENU *men, uint8 old_no, uint8 new_no);
  82. /****************************************************************************
  83. * 名称:GUI_SMenuHide()
  84. * 功能:消隐子菜单项。
  85. * 入口参数:men 子菜单句柄
  86. * 出口参数:返回0表示操作失败,返回1表示操作成功
  87. ****************************************************************************/
  88. extern  uint8  GUI_SMenuHide(SMENU *men);
  89. /****************************************************************************
  90. * 名称:GUI_Button49x14()
  91. * 功能:显示49*14按钮。
  92. * 入口参数: x 指定显示位置,x坐标
  93. *           y 指定显示位置,y坐标
  94. *           dat 显示的数据地址
  95. * 出口参数:返回0表示操作失败,返回1表示操作成功
  96. ****************************************************************************/
  97. extern  void  GUI_Button49x14(uint32 x, uint32 y, uint8 *dat);
  98. /****************************************************************************
  99. * 名称:GUI_Button_OK()
  100. * 功能:显示49*14按钮"OK"。
  101. * 入口参数: x 指定显示位置,x坐标
  102. *           y 指定显示位置,y坐标
  103. * 出口参数:返回0表示操作失败,返回1表示操作成功
  104. ****************************************************************************/
  105. extern  void  GUI_Button_OK(uint32 x, uint32 y);
  106. /****************************************************************************
  107. * 名称:GUI_Button_OK1()
  108. * 功能:显示49*14按钮,选择状态的"OK"。
  109. * 入口参数: x 指定显示位置,x坐标
  110. *           y 指定显示位置,y坐标
  111. * 出口参数:返回0表示操作失败,返回1表示操作成功
  112. ****************************************************************************/
  113. extern  void  GUI_Button_OK1(uint32 x, uint32 y);
  114. /****************************************************************************
  115. * 名称:GUI_Button_Cancle()
  116. * 功能:显示49*14按钮"Cancle"。
  117. * 入口参数: x 指定显示位置,x坐标
  118. *           y 指定显示位置,y坐标
  119. * 出口参数:返回0表示操作失败,返回1表示操作成功
  120. ****************************************************************************/
  121. extern  void  GUI_Button_Cancle(uint32 x, uint32 y);
  122. /****************************************************************************
  123. * 名称:GUI_Button_Cancle1()
  124. * 功能:显示49*14按钮,选择状态的"Cancle"。
  125. * 入口参数: x 指定显示位置,x坐标
  126. *           y 指定显示位置,y坐标
  127. * 出口参数:返回0表示操作失败,返回1表示操作成功
  128. ****************************************************************************/
  129. extern  void  GUI_Button_Cancle1(uint32 x, uint32 y);
  130. /****************************************************************************
  131. * 名称:GUI_MenuIcoDraw()
  132. * 功能:显示图标菜单。
  133. * 入口参数:ico 图标菜单句柄
  134. * 出口参数:返回0表示操作失败,返回1表示操作成功
  135. ****************************************************************************/
  136. extern  uint8  GUI_MenuIcoDraw(MENUICO *ico);
  137. #endif