控件STemWin篇10

Posted:   2020-09-22

Status:   Completed

Tags :   STM32 emWin STemWin

Categories :   STM32 emWin STemWin

Previous:   窗口管理器STemWin篇9

Next:   对话框STemWin篇11


参考例程

  • 官方例程在SeggerEval_WIN32_MSVC_MinGW_GUI_V548\Sample\Tutorial

支持的控件类型

控件名称 描述
BUTTON 按钮,可按下。文本或位图可以显示在按钮上
CHECKBOX 复选框可以选中或取消选中
DROPDOWN 下拉列表框,按下后打开列表框
EDIT 单行编辑字段,提示用户键入数字或文本
FRAMEWIN 框架窗口, 创建典型的GUI 外观
GRAPH 图形控件,用于显示曲线或测量值
HEADER 标头控件,用于管理列
ICONVIEW 图标视图控件,适用于常见手持设备中的基于图标的平台
IMAGE 图像控件,自动显示多种图像格式
KNOB 旋钮控件,可用于调整不可数的值
LISTBOX 列表框,其中突出显示用户选择的项
LISTVIEW 列表视图控件用于创建表
LISTWHEEL 列表轮控件,可以通过指针输入设备移动和加速数据
MENU 菜单控件用于创建水平和垂直菜单
MULTIEDIT 此控件用于编辑多行文本
MULTIPAGE 多页控件用于创建具有多个页面的对话框
PROGBAR 用于可视化的进度条
RADIO 单选按钮可以被选择,一次只能选择一个按钮
SCROLLBAR 滚动条控件可以是水平或垂直的
SLIDER 滑块控件用于更改值
SPINBOX 旋转框控件显示和调整特定值
SWIPELIST 滑动列表控件用于创建可滑动的列表,可通过在触摸屏上滑动手指(或任何其他PID 设备)来移动滑动列表
TEXT 通常在对话框中使用的静态文本控件
TREEVIEW 用于管理分层列表的列表树控件

控件资源表结构体

1
2
3
4
5
6
7
8
9
10
11
12
struct GUI_WIDGET_CREATE_INFO_struct {
  GUI_WIDGET_CREATE_FUNC * pfCreateIndirect; //指向控件创建函数的指针
  const char             * pName;            // 控件名称
  I16                      Id;               // 控件ID
  I16                      x0;               // 控件的最左侧坐标
  I16                      y0;               // 控件的最顶部坐标
  I16                      xSize;            // 控件的横向尺寸
  I16                      ySize;            // 控件的纵向尺寸
  U16                      Flags;            // 控件的创建标志,默认为0
  I32                      Para;             // 控件的参数,默认为0
  U32                      NumExtraBytes;    // 控件的额外字节
};

控件常用函数

  • 是否支持所有流式位图格式void WIDGET_EnableStreamAuto(void)
  • 返回控件的默认效果const WIDGET_EFFECT* WIDGET_GetDefaultEffect(void)
  • 设置控件的默认效果const WIDGET_EFFECT* WIDGET_SetDefaultEffect(const WIDGET_EFFECT* pEffect)
  • 设置给定控件的效果void WIDGET_SetEffect(WM_HWIN hObj, const WIDGET_EFFECT* pEffect)
  • 设置接收输入焦点的功能void WIDGET_SetFocusable(WM_HWIN hObj, int State)
  • 默认的回调函数void WINDOW_Callback(WM_MESSAGE * pMsg)
  • 用于在对话框中自动创建控件WM_HWIN WINDOW_CreateIndirect(const GUI_WIDGET_CREATE_INFO * pCreateInfo, WM_HWIN hWinParent, int x0, int y0, WM_CALLBACK * cb)
  • 使用额外字节作为用户数据创建控件WM_HWIN WINDOW_CreateUser(int x0, int y0, int xSize, int ySize, WM_HWIN hParent, int WinFlags, int ExFlags, int Id, WM_CALLBACK * cb, int NumExtraBytes);
  • 检索上个函数创建的额外用户数据int WINDOW_GetUserData(WM_HWIN hObj, void * pDest, int NumBytes)
  • 设置控件的额外数据int WINDOW_SetUserData(WM_HWIN hObj, const void * pSrc, int NumBytes)