我在CSimpleView类中继承了CScrollView类,出现了一个垂直滚动条,同时在视图区自己创建了一个垂直滚动条。在void CSimpleView::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) 中,用int nID=pScrollBar->GetDlgCtrlID()得到滚动条的ID,程序编译通过。运行中,如果滚动自己创建的滚动条,可以得到预期的效果。但是一旦滚动CScrollView类的滚动条的时候,就会提示遇到问题非法关闭。这是什么原因?难道GetDlgCtrlID()得不到CScrollView类滚动条的ID么?该怎么解决?
解决方案 »
- VC新手相关
- [讨论]半透明窗体下子控件不能被绘制的问题
- 帮忙解决个FTPCommand("REST 100") 的问题。
- 为什么我的CForm不调用OnInitialUpdate()?但调用构造函数,但在大多数机器上是可以正常运行的,只有在个别机器上是这个样,有哪位大哥
- 如何修改VC代码编辑器的字体
- 请问怎样将程序的图标像金山词霸一样显示在桌面的状态栏里?
- Windows Common Controls 是什么意思,和其它控件有什么不同?有什么用?
- 明天交辞职信,请问现在辞职找工作好找吗?散分求祝福
- 在LISTCTRL列表右键删除一行的函数怎么写?
- CInternetSession sess(_T("Internet Explorer"));会不会用自动使用IE的代理服务器?
- 《Visual C++ 6.0 技术内幕》第八章一个例子,无法使用COleVariant变量,求助
- 请问accept+多线程跟用select的区别?
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()