MFC中 slider control 和 edit control的绑定

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

MFC中 slider control 和 edit control的绑定_第1张图片

为Slider Control绑定控制变量:

MFC中 slider control 和 edit control的绑定_第2张图片


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

MFC中 slider control 和 edit control的绑定_第3张图片

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


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

MFC中 slider control 和 edit control的绑定_第4张图片

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

MFC中 slider control 和 edit control的绑定_第5张图片

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

MFC中 slider control 和 edit control的绑定_第6张图片

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

MFC中 slider control 和 edit control的绑定_第7张图片

OK了,运行即可。

你可能感兴趣的:(C/C++,杂乱)