非常棘手的问题,CSrollView滚动条设为大于32767后拖动滚动条位置到32767后又马上回到了1。试了很多办法也不行,我听别人说MFC中的ScrollView的滚动条是16位的所以最多只支持到32767,但我想总应该有解决的办法吧?我的开发环境是win2000+vc6,请高手指点。
解决方案 »
- 安装了DirectX SDK,可是包含文件和库文件貌似不全?
- 如何把已经存在的类加载到工作空间中啊!
- 在用#import语句加入Ado15.dll编译时报错WINDOWS.H already included,什么原因 ,急,解决立马结账
- 怎么用程序更改系统IP?
- 谁知道cobol
- 怎样能够将source safe link 像VC哪样集成到自己的应用程序?
- Unhandled exception in MyProject.exe(MSVCRTD.DLL) 0xc0000005:Access violation
- MFC用ODBC连接ACCESS数据库出问题,能帮我看看吗
- 50分:采用哪种小型数据库比较好?(只是存放很多,很多程序的配置信息)
- 谈谈vc的学习和开发
- 求教:我想要在view里通过调用来更新非模态对话框上的一个曲线图,应该到用Dialog里的什么函数?为什么这时候在dialog里的Invalidate()不
- 新手问题~~~(关于数据类型转换)
大多数系统,ScrollBar的滚动范围是16位的,所以当滚动值超过了32767后就会自动回到1。你升级ie为最新版本可以解决问题。
楼上的兄弟,如何重载CScrollView,给点代码吧。
http://expert.csdn.net/Expert/topic/1563/1563425.xml?temp=.186474这不是BUG,windows定义的消息包含32位的参数,其中后面的16位(short)用来定义pos参数,因此滚动条范围只能在32767范围(MSDN指明),但是只影响拖动操作,其他操作不使用pos参数,因此没影响如果你的滚动条必须设置>32767范围,同时使用正常的拖动操作,我看只有自己定义一套滚动条,从CView派生和CScrollView派生的类,使用他们的滚动条都应该不行。我现在准备将CScrollView中滚动条和工作区的设置分开,明天上班了再试试,这样滚动条可以在32767以下,工作区可以为64位。不知你是不是需要达到我这样的效果。
我确实要达到你哪样的效果,如果你试出来了也帮帮小弟呀。
SB_THUMBTRACK 和 SB_THUMBPOSITION void CXXXView::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
SCROLLINFO ScrollInfo;
GetScrollInfo(SB_VERT, &ScrollInfo, SIF_TRACKPOS);
nPos = ScrollInfo.nTrackPos; CScrollView::OnVScroll(nSBCode, nPos, pScrollBar);
}大家一起幸福吧