实现滚动条:步骤7

在MainWndProc函数中,添加代码来处理WM_HSCROLL和WM_VSCROLL消息。

情况下WM_HSCROLL:/*修改全局rClientSize矩形*/GetClientRect (hWnd, &rClientSize);/*查看用户想要滚动多少*/开关(LOWORD(按钮)/*减少10% */情况下SB_LINELEFT:nscrolllinc = - XScrollRange / 10;打破/*增加10% */情况下SB_LINERIGHT:nscrolllinc = XScrollRange / 10;打破/*客户端大小*/情况下SB_PAGELEFT:nScrollInc = - rClientSize.right;打破/*增加客户端大小*/情况下SB_PAGERIGHT:nScrollInc = rClientSize.right;打破/*计算拇指位置的变化*/情况下SB_THUMBPOSITION:nscrolllinc = HIWORD(wParam) - XScrollPosition;打破/*无增量;输入exit */默认的返回(0);/*限制滚动增量为可用的*/如果(nScrollInc > 0)nscrolllinc = min(nscrolllinc, (XScrollRange - XScrollPosition));其他的nScrollInc = max(nScrollInc, -XScrollPosition);/*更新全局显示矩形*/offset (&rLeadDest,-nScrollInc, 0);/*滚动客户端区域*/ScrollWindow (hWnd,-nScrollInc, 0, NULL, NULL);/*计算新的滚动位置*/XScrollPosition += nScrollInc;/*通过滚动*/来防止背景擦除如果(nScrollInc > 0)SetRect (&ScrollRect rClientSize。右- nScrollInc, 0,rClientSize。对,rClientSize.bottom);其他的SetRect(&ScrollRect, 0,0, -nScrollInc, rClientSize.bottom);ValidateRect (hWnd, &ScrollRect);InvalidateRect(hWnd, &ScrollRect, FALSE);/*设置新的滚动位置*/SetScrollPos (hWnd, SB_HORZ, XScrollPosition, TRUE);/*更新窗口*/UpdateWindow (hWnd);返回(0);情况下WM_VSCROLL:/*修改全局rClientSize矩形*/GetClientRect (hWnd, &rClientSize);/*查看用户想要滚动多少*/开关(LOWORD(按钮)/*减少10% */情况下SB_LINEUP:nscrolllinc = - YScrollRange / 10;打破/*增加10% */情况下SB_LINEDOWN:nscrolllinc = YScrollRange / 10;打破/*客户端大小*/情况下SB_PAGEUP:nScrollInc = - rClientSize.bottom;打破/*增加客户端大小*/情况下SB_PAGEDOWN:nScrollInc = rClientSize.bottom;打破/*计算拇指位置的变化*/情况下SB_THUMBPOSITION:nscrolllinc = HIWORD(wParam) - YScrollPosition;打破/*无增量;输入exit */默认的返回(0);/*限制滚动增量为可用的*/如果(nScrollInc > 0)nScrollInc = min(nScrollInc, (YScrollRange - YScrollPosition));其他的nScrollInc = max(nScrollInc, -YScrollPosition);/*更新全局显示矩形*/offset (&rLeadDest, 0, -nScrollInc);/*滚动客户端区域*/ScrollWindow (hWnd, 0, -nScrollInc, NULL, NULL);/*通过滚动*/来防止背景擦除如果(nScrollInc > 0)SetRect(&ScrollRect, 0, rClientSize.)- nScrollInc,rClientSize。rClientSize。底);其他的SetRect(&ScrollRect, 0,0, rClientSize.right,-nScrollInc);ValidateRect (hWnd, &ScrollRect);InvalidateRect(hWnd, &ScrollRect, FALSE);/*计算新的滚动位置*/YScrollPosition += nScrollInc;/*设置新的滚动位置*/SetScrollPos (hWnd, SB_VERT, YScrollPosition, TRUE);/*更新窗口*/UpdateWindow (hWnd);返回(0);

栅格成像C API帮助
188金宝搏的网址客服|支持|联系我们|知识产权公告
©1991 - 2021领德科技有限公司版权所有。