基准滚动条,窗口不动
标准滚动条,窗口不动?
对话框做好之后添加的“标准滚动条”,
初始化
事件消息
滚动条可以滚动,但是,窗口不动?能帮忙看看啥原因吗?谢谢
------解决思路----------------------
对话框自己的滚动条要有:
------解决思路----------------------
WS_VSCROLL
------解决思路----------------------
WS_HSCROLL
属性
------解决思路----------------------
滚动条方面,建议参考codeproject的那个CScrollHelper类,多说无益,你看下代码细细体会就知道
http://www.codeproject.com/Articles/10902/Add-Scrolling-to-a-CWnd-or-CDialog-using-a-C-Helpe
对话框做好之后添加的“标准滚动条”,
初始化
SCROLLINFO vinfo;
vinfo.cbSize = sizeof (SCROLLINFO) ;
vinfo.fMask = SIF_RANGE | SIF_PAGE ;
vinfo.nMin = 0 ;
vinfo.nMax = 150 ;
vinfo.nPage = 10 ;
SetScrollInfo(SB_VERT,&vinfo);
事件消息
void DEN3CALIBRATION::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
//CDialog::OnVScroll(nSBCode, nPos, pScrollBar);
SCROLLINFO scrollinfo;
GetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL);
switch (nSBCode)
{
case SB_BOTTOM: //滑块滚动到最底部
ScrollWindow(0,(scrollinfo.nPos-scrollinfo.nMax)*10);
scrollinfo.nPos = scrollinfo.nMax;
SetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL);
break;
case SB_TOP: //滑块滚动到最顶部
ScrollWindow(0,(scrollinfo.nPos-scrollinfo.nMin)*10);
scrollinfo.nPos = scrollinfo.nMin;
SetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL);
break;
case SB_LINEUP: //单击上箭头
scrollinfo.nPos -= 1;
if (scrollinfo.nPos<scrollinfo.nMin)
{
scrollinfo.nPos = scrollinfo.nMin;
break;
}
SetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL);
ScrollWindow(0,10);
break;
case SB_LINEDOWN: //单击下箭头
scrollinfo.nPos += 1;
if (scrollinfo.nPos>scrollinfo.nMax)
{
scrollinfo.nPos = scrollinfo.nMax;
break;
}
SetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL);
ScrollWindow(0,-10);
break;
case SB_PAGEUP: //单击滑块上方空白区域
scrollinfo.nPos -= 5;
if (scrollinfo.nPos<scrollinfo.nMin)
{
scrollinfo.nPos = scrollinfo.nMin;
break;
}
SetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL);
ScrollWindow(0,10*5);
break;
case SB_PAGEDOWN: //单击滑块下方空白区域
scrollinfo.nPos += 5;
if (scrollinfo.nPos>scrollinfo.nMax)
{
scrollinfo.nPos = scrollinfo.nMax;
break;
}
SetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL);
ScrollWindow(0,-10*5);
break;
case SB_ENDSCROLL: //鼠标离开滑块,结束滑块拖动
break;
case SB_THUMBPOSITION:
break;
case SB_THUMBTRACK: //拖动滑块
ScrollWindow(0,(scrollinfo.nPos-nPos)*10);
scrollinfo.nPos = nPos;
SetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL);
break;
}
CDialog::OnVScroll(nSBCode, nPos, pScrollBar);
}
滚动条可以滚动,但是,窗口不动?能帮忙看看啥原因吗?谢谢
------解决思路----------------------
对话框自己的滚动条要有:
------解决思路----------------------
WS_VSCROLL
------解决思路----------------------
WS_HSCROLL
属性
------解决思路----------------------
滚动条方面,建议参考codeproject的那个CScrollHelper类,多说无益,你看下代码细细体会就知道
http://www.codeproject.com/Articles/10902/Add-Scrolling-to-a-CWnd-or-CDialog-using-a-C-Helpe