十二、旋转按钮控件(Spin Control)
作用:旋转按钮控件是一对相反的箭头按钮,点击上下箭头可调节数值,一般旋转按钮控件与其他控件控件一起使用,另一个控件显示的值被称为它的当前位置。一个旋转控件通常是与一个相伴的控件一起使用的,称为“伙伴窗口”。
而他默认的方向是向上减小,向下增大,范围为100。
消息映射函数:
NM_OUTOFMEMORY 指示控件由于内存不足而未完成某些工作
NM_RELEASWDCAPTURE 将鼠标捕获释放通知父级,发送此消息。
MN_THEMECHANGE 指示主题已经更改
NM_DELTAPOS 指示控件的位置即将更改
使用方法:
1、设置Spin Control 控件的Auto Buddy属性为TRUE这样他就与他ID的前一个控件组合为一个伙伴控件(一般伙伴控件是EDIT控件)。
2、初始化控件范围(一般是通过建立控件型变量,或者使用费GetDlgItem()函数获得控件句柄)
CSpinButtonCtrl *pSpin;
pSpin = (CSpinButtonCtrl*)GetDlgItem(IDC_SPIN_DEC);
pSpin->SetRange(0,100);//设置范围
pSpin->SetBase(10);//设置进制
十三、进度条控件(Porgress Control)
作用:一般是显示一个进程或者任务的执行过程,一般都是作为显示使用的。、
消息映射函数:
NM_CUSTOMDROW 将自定义绘图操作通知父级
NM_OUTOFMEMORY 指示控件由于内存不足而未完成某些工作
NM_RELEASWDCAPTURE 将鼠标捕获释放通知父级,发送此消息。
MN_THEMECHANGE 指示主题已经更改
使用方法:
1、创建精度条控件的控件型变量或者使用GetDlgItem()函数获取控件的句柄。
CProgressCtrl m_progress;
2、通过控件型变量设置精度条的范围
m_progress.SetRange(0,100);
3、通过GetRange()函数获取进度条得最大值和最小值,使用SetPos()函数设置进度条得进度。
void C进度条Dlg::OnTimer(UINT_PTR nIDEvent)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值r
int nPos, nMin, nMax;
m_progress.GetRange(nMin,nMax); //获取进度条的最大值和最小值
nPos = m_progress.GetPos(); //获取进度条当前的位置
nPos++;
if (nPos>=nMax)
{
KillTimer(1);
nPos = 0;
GetDlgItem(IDC_START)->EnableWindow(true); //设置start按钮得的状态,使其激活
}
m_progress.SetPos(nPos); //设置进度条的位置
CDialogEx::OnTimer(nIDEvent);
}