对话框slider与EditBox关联

来源:互联网 发布:flash player for mac 编辑:程序博客网 时间:2024/05/20 08:44

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)

  —— 拷贝变量值到控件显示。(变量的最终运算结果值交给外部输出显示)