27. 滑块控件

滑块(Slider)控件通常用于在一定范围内修改数值,类似手机上用来调整屏幕亮度或音量的控件。 滑块控件由一个滑动条和条旁边的刻度标记组成,这些刻度标记可用于在拖动滑块时吸附滑块。

滑块控件的外观如图 滑块控件默认外观 所示。
在这里插入图片描述
滑块控件支持3种通知代码,以区分各种不同的操作动作,见表格 滑块控件支持的通知代码 。

在这里插入图片描述
这3种通知代码是作为WM_NOTIFY_PARENT消息的一部分发送到其父窗口的。当用户点击按钮后, 窗口管理器会让滑块控件向父窗口发送WM_NOTIFY_PARENT消息,并且会在消息结构的Data.v成员中附加相应的通知代码, 用户程序可以读取此成员来检测不同的按钮动作以及实现各种功能。

同时滑块控件也支持输入焦点,它可以接收如表格 滑块控件支持的按键消息 所示的按键消息。
在这里插入图片描述
27.1. 创建滑块控件
27.1.1. 滑块控件API
在这里插入图片描述
27.1.2. 滑块控件创建函数
27.1.2.1. SLIDER_CreateEx()
在指定位置创建指定大小的滑块控件。

代码清单:滑块-1 函数原型

SLIDER_Handle SLIDER_CreateEx(int x0, int y0, int xSize, int ySize,
                            WM_HWIN hParent, int WinFlags, int
                            ExFlags, int Id);
  1. x0: 滑块控件在父坐标中的最左侧像素;

  2. y0: 滑块控件在父坐标中的最顶侧像素;

  3. xSize: 滑块的水平尺寸,以像素为单位;

  4. ySize: 滑块的垂直尺寸,以像素为单位;

  5. hParent: 父窗口句柄。如果为0,则将桌面窗口作为其父窗口;

  6. WinFlags: 窗口创建标志。由于控件本质上是窗口,所以滑块控件在创建时可以使用几乎所有的窗口创建标志。 这些标志中按钮最常用的是WM_CF_SHOW。全部创建标志请参考emWin手册的窗口管理器章节;

  7. ExFlags: 特殊创建标志。用于调整滑块方向,默认水平方向,可通过可选值SLIDER_CF_VERTICAL设置为垂直方向;

  8. Id: 控件ID号。

返回值:创建成功后返回已创建的滑块控件句柄,创建失败则返回0。

27.1.2.2. SLIDER_CreateIndirect()
从对话框资源表中创建滑块控件。

代码清单:滑块-2 函数原型

SLIDER_Handle SLIDER_CreateIndirect(const GUI_WIDGET_CREATE_INFO
                                    *pCreateInfo, WM_HWIN hWinParent,
                                    int x0, int y0, WM_CALLBACK *cb);

  1. pCreateInfo: 指向GUI_WIDGET_CREATE_INFO结构的指针;

  2. hParent: 父窗口的句柄;

  3. x0: 滑块控件在父坐标中的最左边像素;

  4. y0: 滑块控件在父坐标中的最顶部像素;

  5. cb: 回调函数指针。

此函数的第一个参数指向的是 代码清单:控件基础-3 的资源表结构,但不使用其中的para参数, 其中的Flags参数的可选值与SLIDER_CreateEx()函数的ExFlags参数相同。

27.2. 滑块控件基础实验
27.2.1. 代码分析
27.2.1.1. 创建对话框
代码清单:滑块-3 创建对话框(SliderDLG.c文件)

/* 控件ID */
#define ID_FRAMEWIN_0   (GUI_ID_USER + 0x00)
#define ID_SLIDER_0     (GUI_ID_USER + 0x01)
#define ID_SLIDER_1     (GUI_ID_USER + 0x02)
#define ID_SLIDER_2     (GUI_ID_USER + 0x03)
#define ID_EDIT_0       (GUI_ID_USER + 0x04)
#define ID_EDIT_1       (GUI_ID_USER + <
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值