我在CSimpleView类中继承了CScrollView类,出现了一个垂直滚动条,同时在视图区自己创建了一个垂直滚动条。在void CSimpleView::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) 中,用int nID=pScrollBar->GetDlgCtrlID()得到滚动条的ID,程序编译通过。运行中,如果滚动自己创建的滚动条,可以得到预期的效果。但是一旦滚动CScrollView类的滚动条的时候,就会提示遇到问题非法关闭。这是什么原因?难道GetDlgCtrlID()得不到CScrollView类滚动条的ID么?该怎么解决?

解决方案 »

  1.   

    pScrollBar
    If the scroll message came from a scroll-bar control, contains a pointer to the control. If the user clicked a window's scroll bar, this parameter is NULL. The pointer may be temporary and should not be stored for later use.
    你使用CScrollView自身的滚动条时,参数pScrollBar指针为空,
    所以pScrollBar->GetDlgCtrlID()会出现异常。int nID;
    if(pScrollBar != NULL)
        nID=pScrollBar->GetDlgCtrlID()
      

  2.   

    解决了,非常感谢!!!您这是在哪里找的啊?MSND?