MFC中 slider control 和 edit control的绑定

本文介绍如何使用Slider控件和编辑框控件实现画笔宽度的动态调整,包括控件配置、事件绑定及代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 下面我们使用Slider控件和编辑框控件为工具栏添加画笔宽度的设置。在对话框编辑界面拖入一个Group Box,Caption设为“线宽”;拖入一个Slider Control,ID设为IDC_PEN_WIDTH;拖入一个EditControl,ID设为IDC_EDIT_WIDTH,Number设为True,即只允许输入数字。这里我们加2个控件是为了让用户既可以通过滑块控件设置线宽,也可以直接在编辑框中输入线宽。


为Slider Control绑定控制变量:



为Edit Control绑定int型的Value变量,并设置最小和最大值:


设置了最小最大值后,会自动完成对用户输入的合法性检查,在代码中是通过DoDataExchange中的DDV_MinMaxInt(pDX,m_penWidth, 1, 10);这句完成的。


在Dlg类的OnInitDialog中对滑块控件进行初始化:


由于已经为编辑框控件绑定了Value型变量,修改其初值就可以了,在对话框类的构造函数中进行:


接下来我们为Slider Control控件添加滚动事件的处理,根据滑块位置设置m_penWidth的值,并更新Edit Control控件。Slider Control控件滚动事件的响应和之前有区别,是通过响应Dlg类的水平滚动消息WM_HSCROLL来完成的。在类视图中选中CDlgPaint类,在属性里面找消息WM_HSCROLL,添加响应函数:


当用户在编辑框中输入时,滑块也应滑到相应位置,因此我们双击编辑框控件,添加编辑框内容改变事件的处理:


OK了,运行即可。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值