码迷,mamicode.com
首页 > 其他好文 > 详细

MFC控件编程:旋转按钮、进度条和滑块控件

时间:2014-08-03 10:17:05      阅读:282      评论:0      收藏:0      [点我收藏+]

标签:blog   http   使用   os   io   2014   ar   时间   

旋转按钮(微调按钮) : 对应的控件类是CSpinButtonCtrl  

进度条:对应的控件类是CProgressCtrl

滑块:对应的控件类是CSliderCtrl

对这三个控件的操作都是同过与之相关联的控件类完成的,并且这三个控件有极大的相似性,故这里放到一起

先认识下:

Spin:            Progress:             Slider:

bubuko.com,布布扣bubuko.com,布布扣bubuko.com,布布扣

常用函数:


   SetRange()/GetRange();        // 设置、获取控件表示的范围
   /* 设置控件的增量(步长) */
   CSpinButtonCtrl::SetAccel
   CProgressCtrl::SetStep
   CSlierCtrl::SetPageSize
   CSliderCtrl::SetLineSize

   SetPos()/GetPos();                    // 设置、获取当前数值

另外:旋转按钮通常和编辑框一起使用,所以使用前需要设置两者的伙伴关系。


使用案列程序:

   Spin控件和编辑框控件的关联设置如下:  勾选:Auto buddy 和  Set buddy interger

   bubuko.com,布布扣

 程序界面设置如下:

 bubuko.com,布布扣

为了方便操作控件:分别为Progress、Slider、Spin控件关联三个控件类型的变量:m_wndProgress、m_wndSlider、m_wndSpin

具体功能函数显示如下:

/*************************************
   初始化控件函数
**************************************/
void CCtrl4Dlg::InitCtrl()
{
	// 设置控件的数值范围
	m_wndSpin.SetRange (0, 100);
	m_wndProgress.SetRange (0, 100);
	m_wndSlider.SetRange (0, 100);

	// 设置控件的步长
	UDACCEL accel = {0};
	accel.nSec = 1;// 设置按住几秒时间开始快输增长
	accel.nInc = 1;// 增长率
	m_wndSpin.SetAccel (1, &accel);
    
	m_wndProgress.SetStep (10);
	m_wndSlider.SetLineSize (5); // 设置鼠标点击和光标按键的增量
	m_wndSlider.SetPageSize (20);// 设置键盘翻页按键的增量
    
	// 设置每个刻度的值,需要Slider控件勾选"Tic marks" 和 "Auto tics"样式
        m_wndSlider.SetTicFreq (20);
}

/***********************************************************
   "增长"按钮消息响应函数
************************************************************/
void CCtrl4Dlg::OnBtnAdd() 
{
	// TODO: Add your control notification handler code here
	// 进度条前进一个步长
	m_wndProgress.StepIt ();
	// 获取进度条的当前位置
	int nPos = m_wndProgress.GetPos ();
	// 把获取到的为之设置给Slider和Spin
	m_wndSlider.SetPos (nPos);
	m_wndSpin.SetPos (nPos);	
}


/********************************************************************************
   Slider的NM_CUSTOMDRAW消息响应函数,当用户拖动Slider时设置Progress和Spin的位置
*********************************************************************************/
void CCtrl4Dlg::OnCustomdrawSlider(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	// 获取Slider的当前位置
	int nPos = m_wndSlider.GetPos ();
	// 把获取到的为之设置给Progress和Spin
	m_wndProgress.SetPos (nPos);
	m_wndSpin.SetPos (nPos);

	*pResult = 0;
}


Demo下载地址:点击打开链接

   

 

MFC控件编程:旋转按钮、进度条和滑块控件,布布扣,bubuko.com

MFC控件编程:旋转按钮、进度条和滑块控件

标签:blog   http   使用   os   io   2014   ar   时间   

原文地址:http://blog.csdn.net/eldn__/article/details/38355475

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!