第25周-window程序设计(基础篇)-第4章-滚动条新功能

来源:互联网 发布:java redis list 删除 编辑:程序博客网 时间:2024/05/29 17:54

1、滚动条新功能:

/*为了使快速更新显示区域:可先呼叫InvalidateRect,使其区域无效,再呼叫UpdateWindow(hwnd)*//*滚动条文件:滚动条文件(在/Platform SDK/User Interface Services/Controls/Scroll Bars中)指出SetScrollRange、SetScrollPos、GetScrollRange和GetScrollPos函数。在Win32 API中升级以处理32位参数。而Win32 API介绍的两个滚动条函数称作SetScrollInfo和GetScrollInfo。这些函数可以完成以前函数的全部功能,并增加了两个新特性。*//*SetScrollInfo:第一个功能涉及卷动方块的大小;GetScrollInfo的功能:通过GetScrollInfo函数可以取得真实的32位值。*/卷动方块大小/滚动长度 = 页面大小/范围 = 显示文件数量/文件总大小 SetScrollInfo(hwnd,iBar,&si,bRedraw);GetScrollInfo(hwnd,iBar,&si);/*iBar参数是SB_VERT或SB_HORZ,它还可以是用于滚动条控制的SB_CTL。SetScrollInfo的最后一个参数可以是TRUE或FALSE,指出了是否要Windows重新绘制计算了新信息后的滚动条。*//*第三个参数中的SCROLLINFO结构定义*/typedef struct tagSCROLLINFO {   UINT cbSize; //set to sizeof(SCROLLINFO)结构大小   UINT fmask;//values to set or get   int nMin; //minimum range value   int nMax;     UINT nPage; //page size;   int nPos;   int nTrackPos;//current tracking posing滑块当前位置  } SCROLLINFO,*PSCORLLINFO;//注意:第一个字段指出结构大小。此字段使将来的Windows版本可以扩充结构并添加新的功能,并且仍然与以前编译的版本兼容。//该结构形态的定义:SCROLLINFO si;//呼叫两函数前,设定cbSize大小: si.cbSize = size(si)或si.cbSize = size(SCROLLINFO);/*对SYSMETRS2的修改*/iVscrollMax = max(0,NUMLINES-cyClient/cyChar);SetScorllRange = (hwnd,SB_VERT,0,iVscrollMax,TRUE);//假设NUMLINES等于75。cyClient/cyChar为50,则max(0,25),即75行信息但只有50行可以显示在显示区域中。/*SCROLLINFO结构和SetScorllinfo:*/si.cbSize = sizeof(SCROLLINFO);si.cbMask = SIF_RANGE|SIF_PAGE;si.nMin = 0;si.nMax = NUMLINES - 1;si.nPage = cyClient/cyChar;SetScrollInfo(hwnd,SB_VERT,&si,TRUE);//结果为Windows会把最大的滚动条位置限制为si.nMax - si.nPage +1而不是si.nMax。74-50+1=25。
单词:info信息、current当前、mask隐藏(面具)

0 0