1)在VC++ 6.0中新建一个对话框文档的工程。
(2)打开资源管理器,在对话框中放置一个EDIT控件(IDC_YUZHI),设置关联变量m_yuzhi;然后在它旁边放上一个Slider控件,基本的框架已经完成了。
(3)对Slider控件右击,选择“建立类向导”,对刚才的Slider控件定义一个变量Slider1,类型为CSliderCtrl。再关联一个int型的变量m_shuzhi
(4)在对话框初始化的代码,后添加相应的属性。
BOOL Dialog::OnInitDialog()
{
CDialog::OnInitDialog();
Slider1.SetRange(0,255);//设置范围
Slider1.SetTicFreq(1);//设置刻度值
}
(5)现在我们加入事件过程代码。
选择Slider的“事件”然后选择第一个过程(NM_CUSTOMDRAW)随后加入以下代码:
oid Dialog::OnCustomdrawSlider1(NMHDR* pNMHDR, LRESULT* pResult)
{
UpdateData(TRUE);//将控件值赋给控件变量
m_yuzhi=Slider1.GetPos();//加一个文本框,用于显示,将滑块的数值赋给 文本框变量
UpdateData(FALSE); //将文本框变量赋给 文本框;即变量值赋给控件
*pResult = 0;
}
(6)在CDialog类中添加文本框的EN_CHANGE消息响应函数
void Dialog::OnChangeYuzhi()
{
UpdateData();//将控件(此处为文本框)的值赋给控件变量,此处用于感知文本框的输入
m_shuzhi= GetDlgItemInt(IDC_YUZHI, NULL, TRUE);//获得文本框数值
//m_shuzhi=m_yuzhi;//这句 也可以
UpdateData(FALSE) ;//将滑块变量值 赋给滑块
}
函数说明 UpdateData() 是MFC的窗口函数,用来刷新数据的。
函数使用
UpdateData()参数只有一个,默认为TRUE。
UpdateData(TRUE)
——刷新控件的值到对应的变量。(外部输入值交给内部变量)
即:控件的值—>变量。
UpdateData(FALSE)
—— 拷贝变量值到控件显示。(变量的最终运算结果值交给外部输出显示)