没用CScrollView,就是自己创建一个滚动轴。
程序打开的时候是最大化显示,我希望打开的时候没有滚动轴,缩小窗口的时候才会出现。
应该怎么设置信息?下面是我的代码。在OnDraw函数最后调用下面这个函数void CMyView::AutoSetScrollInfo(CRect rect, int nBar, int curpos, SCROLLINFO sif)
{
int TmpRectHeight = abs(rect.Height());
int TmpRectWidth = abs(rect.Width());
int TmpLogicTRectHeight = abs(m_logicRect.Height()) - 1;
int TmpLogicTRectWidth = abs(m_logicRect.Width()) - 1;
int max_range_vert = TmpLogicTRectHeight; SetScrollRange(SB_VERT,0,max_range_vert,FALSE);
sif.cbSize = ;
sif.fMask = SIF_ALL;
sif.nMin = 0;
sif.nMax =max_range_vert;
sif.nPos = curpos;
sif.nTrackPos= curpos;
sif.nPage = TmpRectHeight;
SetScrollPos(SB_VERT,curpos,TRUE);
SetScrollInfo(SB_VERT,&sif,TRUE);
}m_logicRect是最大化时窗口的尺寸,rect是实际上窗口的尺寸。我设的好像有问题,最大化的时候也有滚动轴。
程序打开的时候是最大化显示,我希望打开的时候没有滚动轴,缩小窗口的时候才会出现。
应该怎么设置信息?下面是我的代码。在OnDraw函数最后调用下面这个函数void CMyView::AutoSetScrollInfo(CRect rect, int nBar, int curpos, SCROLLINFO sif)
{
int TmpRectHeight = abs(rect.Height());
int TmpRectWidth = abs(rect.Width());
int TmpLogicTRectHeight = abs(m_logicRect.Height()) - 1;
int TmpLogicTRectWidth = abs(m_logicRect.Width()) - 1;
int max_range_vert = TmpLogicTRectHeight; SetScrollRange(SB_VERT,0,max_range_vert,FALSE);
sif.cbSize = ;
sif.fMask = SIF_ALL;
sif.nMin = 0;
sif.nMax =max_range_vert;
sif.nPos = curpos;
sif.nTrackPos= curpos;
sif.nPage = TmpRectHeight;
SetScrollPos(SB_VERT,curpos,TRUE);
SetScrollInfo(SB_VERT,&sif,TRUE);
}m_logicRect是最大化时窗口的尺寸,rect是实际上窗口的尺寸。我设的好像有问题,最大化的时候也有滚动轴。
解决方案 »
- 用IXAudio2播放内存里数据问题(在线等)
- 刚写了贪吃蛇类,调用很方便!
- 求助达人: 积分
- 又有一个关于overloaded member function的问题
- VC6这是怎么了?每次编译完成,再选择Debug后又显示让我重新编译。怎么解决。
- 想用openssl写个客户端程序,用于模拟浏览器,访问https的网站
- VC++数据写入execl文件,如何不破坏原来的execl模板(图表分析),在线等待。
- 关于一个画图类的设计问题
- 如何在没有vc的程序上运行vc编写的exe文件
- 对话框加入背景后, 按钮控件变成灰色的了, 请帮忙看看怎么修改
- 用MFC写了个贪吃蛇,遇到点问题,高手来帮帮忙啊!
- 我想阻止一切用户在第三方程序上的键盘鼠标消息
sif.nPage = 有滚动条窗口或者视图的客户区高度;
不管窗口大小怎么变换,都这么设置就很好控制滚动条的
我的意思是GetClientRect(rect)得到的rect是直接取rect.Height(),还是要pDC->DPtoLP(rect)一下,再取rect.Height()。