计算窗口的SCROLLINFO.nMax是通过以下步骤进行的: 1. 首先,确定需要滚动的内容的总大小。这可以根据具体情况而定,例如,如果是一个文本编辑器,可以通过计算文本的行数和每行的高度来确定总...
nMax 类型:int 指定最大滚动位置。 nPage 类型:UINT 指定页面大小(以设备单位为单位)。 滚动条使用此值来确定比例滚动框的适当大小。 nPos 类型:int 指定滚动框的位置。 nTrackPos 类型:int 指定用户正在拖动的滚动框的即时位置。 应用程序可以在处理SB_THUMBTRACK请求代码时检索此值。 应用程序无法设置即时滚动位...
SIF_POS The nPos member contains the scroll box position, which is not updated while the user drags the scroll box. SIF_RANGE The nMin and nMax members contain the minimum and maximum values for the scrolling range. SIF_TRACKPOS The nTrackPos member contains the current position of the scr...
首先,定义一个SCROLLINFO结构体实例si,该结构体用于存储滚动条的信息。设置cbSize的值为sizeof(SCROLLINFO),确保了结构体的大小正确无误。接着,设置cbMask为SIF_RANGE | SIF_PAGE,表示将设置滚动条的范围和翻页信息。nMin和nMax用于定义滚动条的最小和最大值。对于文本区域,nMin设置为0,nMax则是...
我正在读佩佐尔德先生的书,试图做一个记事本。当插入符号到达工作区的最后一行并按 Enter 键时,我需要设置滚动条的范围(在 nMax 上加 1),但我发现如果我通过 SetScrollInfo 设置滚动条的范围,总是失败,范围永远不会改变,除非我在 SetScrollInfo 之前使用 ShowScrollBar。
SetScrollInfo函数用于检查SCROLLINFO结构中nPage和nPos成员的范围。nPage值必须在0到nMax-nMin+1之间,nPos值需在nMin和nMax-nMax-max(nPage C1,0)范围内。一旦任何值超出限制,SetScrollInfo将调整该值以确保其在允许范围内。若在Windows CE 2.0中使用SetScrollInfo函数并使用NULL作为lpsi参数,函数...
首先,fMask,指定哪些成员有效,它的值是这些常亮:SIF_ALL,表示整个结构体都有效,SIF_PAGE,表示nPage成员有效,SIF_POS:nPos成员有效,SIF_RANGE, nMax和nMin有效。这些常量可以用或连接。 nMin:这个值我们通常都设定为0 nMax:对于这个值,如果我们想在整个客户区显示一个比客户区还要大的图片,这个值就应该等于图片...
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) ; 而若要用到滚动条的位置时,可以这样使用: 先 si.cbSize = sizeof (si) ; si.fMask ...
在客户大小发生变化时可以这样处理:si.cbSize=sizeof si;si.fMask=SIF_RANGE|SIF_PAGE;si.nMin=0;si.nMax=NUMLINES-1;si.nPage=cyClient/cyChar;SetScrollInfo(hwnd,SB_VERT,&si,TRUE);详细的讲解建议你参考Charles Petzold的《Windows程序设计》4.4节 ...
SCROLLINFO 结构的 nPage 成员必须包含新的页面值。 SIF_POS 设置平面滚动条的位置信息。 SCROLLINFO 结构的 nPos 成员必须包含新的位置值。 SIF_RANGE 设置平面滚动条的范围信息。 SCROLLINFO 结构的 nMin 和nMax 成员必须包含新的范围值。 SIF_ALL SIF_PAGE、SIF_POS和SIF_RANGE的组合。