下面我们使用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了,运行即可。