使用ON_WM_HSCROLL()同时仍具有功能默认滚动条吗?

时间:2018-07-11 17:43:28

标签: c++ mfc

我正在编写一个使用CSliderCtrl类控制滑块的MFC应用程序。我的消息映射中有ON_WM_HSCROLL()消息,但这是由于以下问题而引起的:当窗口太小时,这会禁用显示在视图底部的默认窗口滚动条。操作它对窗口没有任何作用。为了保留该滚动条中的功能,我该怎么办?

当前,我的OnHScroll()函数看起来像:

void myClass::OnHScroll(UINT nSHCode, UINT nPos, CScrollBar* pScrollBar) 
{
    if (*pScrollBar == mySlider)
    {
    // do stuff
    }
}

1 个答案:

答案 0 :(得分:1)

您仍然需要调用基类/父类中定义的默认处理程序:如果是对话框窗口,则为CDialog::OnHScroll(nSBCode, nPos, pScrollBar);;如果是SDI / MDI视图,则为CFormView::OnHScroll(nSBCode, nPos, pScrollBar);

因此您的处理程序将如下所示:

void myClass::OnHScroll(UINT nSHCode, UINT nPos, CScrollBar* pScrollBar) 
{
    if (*pScrollBar == mySlider)
    {
    // do stuff
    }

    CDialog::OnHScroll(nSBCode, nPos, pScrollBar)
}