MFC_Progress_Slider_Spin

Posted _xiaohaige

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFC_Progress_Slider_Spin相关的知识,希望对你有一定的参考价值。

1、Slider控件使用WM_HSCROLL消息进行响应

void CMFC_progressDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
    // TODO: 在此添加消息处理程序代码和/或调用默认值
    CSliderCtrl *pSlider = (CSliderCtrl*)GetDlgItem(IDC_SLIDER1);
    CProgressCtrl *pProgress = (CProgressCtrl*)GetDlgItem(IDC_PROGRESS1);
    pProgress->SetPos(pSlider->GetPos());
    CString ProcessStr;
    ProcessStr.Format(L"%d", pSlider->GetPos());
    SetDlgItemText(IDC_STATIC, ProcessStr);

    CDialogEx::OnHScroll(nSBCode, nPos, pScrollBar);
}

  其中Slider中的WM_HSCROLL消息的nPos是有一定问题的,不要使用,使用上面的获取方法就行,记得对指针进行释放。

2、Spin控件使用WM_VSCROLL消息进行响应

void CMFC_progressDlg::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
    // TODO: 在此添加消息处理程序代码和/或调用默认值
    m_spin = nPos;
    CString str;
    str.Format(L"%d", m_spin);
    SetDlgItemText(IDC_STATIC2, str);

    CDialogEx::OnVScroll(nSBCode, nPos, pScrollBar);
}

  Spin的WM_VSCROLL消息可以用nPos参数。也可以使用1中的方法进行获取。

3、三个控件的初始化:

   CProgressCtrl *pProgress = (CProgressCtrl*)GetDlgItem(IDC_PROGRESS1);
    pProgress->SetRange(0, 1000);
    pProgress->SetPos(500);
    CSliderCtrl *pSlider = (CSliderCtrl*)GetDlgItem(IDC_SLIDER1);
    pSlider->SetRange(0, 1000);
    pSlider->SetPos(500);
    CSpinButtonCtrl *pSpin = (CSpinButtonCtrl*)GetDlgItem(IDC_SPIN1);
    pSpin->SetRange(0, 1000);
    pSpin->SetPos(m_spin);
    CString str;
    str.Format(L"%d", m_spin);
    SetDlgItemText(IDC_STATIC2, str);

  可以看出,初始化方法都是一样的,更多信息可以查阅MSDN。

以上是关于MFC_Progress_Slider_Spin的主要内容,如果未能解决你的问题,请参考以下文章

R留学生作业代码代写代编程代编程代编程

IPEX-1代/3代/4代/5代,PCB天线底座,公头,样式及封装尺寸图

JVM 年轻代 老年代 持久代 gc

深圳本地网店代运营公司

C线程代业代写代调试POSIX Threads代编码

jvm中的年轻代 老年代 持久代 gc