分页导航——使用说明
分页控件是一个窗口容器,与没有足够的显示区域来显示其所有内容的窗口一起使用。
寻呼控件允许用户滚动到当前不在视图中的窗口区域。
当窗口没有足够的区域显示子窗口时,此控件非常有用。
例如,如果应用程序的工具栏不够宽,无法显示其所有项,则可以将工具栏分配给寻呼控件,
用户将能够向左或向右滚动以访问所有项。 还可以创建垂直滚动的寻呼控件。
分配给寻呼程序控件的窗口称为 包含的窗口。
以下屏幕截图显示了页码控件中包含的工具栏。
寻呼控件以红色显示,以显示控件的哪些区域可见。

创建寻呼控件后,很可能想要为其分配包含的窗口。
如果包含的窗口是子窗口,则应使子窗口成为寻呼控件的子窗口,以便正确计算大小和位置。
然后发送 分页设置窗口 消息将窗口分配给分页控件。
请注意,此消息实际上不会更改包含窗口的父窗口;它只是分配包含的窗口。
如果包含的窗口是公共控件之一,它必须具有 禁止缩放 样式,以防止控件尝试将自身大小调整为页码页控件的大小。
进程寻呼控件通知
至少需要处理 分页滚动尺寸 通知。
如果不处理此通知并输入宽度或高度的值,则不会显示寻呼控件中的滚动箭头。
这是因为寻呼控件使用分页滚动尺寸通知中提供的宽度或高度来确定包含窗口的“理想”大小。
以下示例演示如何处理 分页滚动尺寸 通知案例。
在此示例中,包含的窗口是一个工具栏控件,其中包含未知数量的按钮,大小未知。
该示例演示如何使用 工具总体大小 消息来确定工具栏中所有项的大小。
然后,该示例将所有项的宽度放入传递到通知的
分页滚区类 结构的 宽度 成员中。
判断(消息)
为 控件事件 公共事件(数据)//调用公共事件这段程序代码,④数据:包含多项事件信息的数据
程序段 公共事件(数据)
整数 窗口=数据&,参数=.&4,事件=.&8,方向=.&30
判断(方向)为 1,2,4,8 //向上向下向左向右
.&42 =20;//修改默认滚动增量为20
处理窗口(窗口,控件事件,参数,数据)
结束
分页导航——通知消息:
中文名字 | 常量数值 | 英文名称 | 释义 |
控件释放鼠标 | -16 | NM_RELEASEDCAPTURE | 控件要释放鼠标捕捉 |
分页开始滚动 | -901 | PGN_SCROLL | 所包含窗口即将被滚动。④数据:分页滚向类 结构 |
分页滚动尺寸 | -902 | PGN_CALCSIZE | 获得所包含窗口的可滚动尺寸。④数据:分页滚区类 结构 |
分页热项更改 | -903 | PGN_HOTITEMCHANGE | 通知父窗口突出显示的热项已更改。④数据:分页热项类 结构 |
发送消息——常数表 |
分页设置窗口 | 0x1401 | PGM_SETCHILD | 设置页码控件的包含窗口。③参数:0;④数据:窗口 |
分页重算大小 | 0x1402 | PGM_RECALCSIZE | 强制控件重新计算包含窗口的大小。③参数:0;④数据:0 |
分页鼠标转发 | 0x1403 | PGM_FORWARDMOUSE | 为页码控件启用或禁用鼠标转发。③参数:是否转发;④数据:0 |
分页设置背景 | 0x1404 | PGM_SETBKCOLOR | 设置页码控件的当前背景色。③参数:0;④数据:颜色 |
分页获取背景 | 0x1405 | PGM_GETBKCOLOR | 获取页码控件的当前背景色。③参数:0;④数据:0 |
分页设置边框 | 0x1406 | PGM_SETBORDER | 设置页码控件的当前边框大小。③参数:0;④数据:像素 |
分页获取边框 | 0x1407 | PGM_GETBORDER | 获取页码控件的当前边框大小。③参数:0;④数据:0 |
分页设置位置 | 0x1408 | PGM_SETPOS | 设置页码控件的当前滚动位置。③参数:0;④数据:位置 |
分页获取位置 | 0x1409 | PGM_GETPOS | 获取页码控件的当前滚动位置。③参数:0;④数据:0 |
分页设置按钮 | 0x140A | PGM_SETBUTTONSIZE | 设置页码控件的当前按钮大小。③参数:0;④数据:像素 |
分页获取按钮 | 0x140B | PGM_GETBUTTONSIZE | 获取页码控件的当前按钮大小。③参数:0;④数据:0 |
分页按钮状态 | 0x140C | PGM_GETBUTTONSTATE | 设置页码控件指定按钮的状态。③参数:0;④数据:像素 |
分页超时行数 | 0x140D | PGM_SETSCROLLINFO | 设置超时值、每超时行数和每行像素。③参数:超时数;④数据:超时行数/每行像素(各2字节) |
控件拖放接口 | 0x2004 | PGM_GETDROPTARGET | 获取页码控件的 拖放目标对象 接口指针。③参数:0;④数据:@接口 |
分页框——控件样式:
中文名字 | 英文名称 | 长度 | 作用解释 |
垂直滚动 | PGS_VERT | 0 | 创建可垂直滚动的寻呼控件。 如果未指定方向样式,则这是默认方向。 此样式和 PGS_HORZ 样式是互斥的,不能组合使用。 |
水平滚动 | PGS_HORZ | 1 | 创建可水平滚动的寻呼控件。 此样式和 PGS_VERT 样式是互斥的,不能组合使用。 |
悬停滚动 | PGS_AUTOSCROLL | 2 | 当用户将鼠标悬停在其中一个滚动按钮上时,页导航控件将滚动。 |
支持拖放 | PGS_DRAGNDROP | 4 | 包含的窗口可以是拖放目标。 如果某个项从寻呼器外部拖动到其中一个滚动按钮上,则页导航控件将自动滚动。 |
中文名字 | 英文名称 | 长度 | 作用解释 |
分页滚向类 | NMPGSCROLL | 46 | 包含并接收页导航控件在滚动包含的窗口时使用的信息。 |
分页滚向类——成员表 |
中文 | 英文 | 类型 | 作用解释 |
通知 | hdr | 通知类 | 包含有关通知的信息的类结构。 |
闭键 | fwKeys | 整形 | 发生滚动时关闭的修改键。0 所有修改键均未关闭。1 按下了 Shift 键。2 CONTROL 键已关闭。4 ALT键已关闭。 |
外框 | rcParent | 矩形类 | 包含分页控件的客户端矩形。 |
方向 | iDir | 整数 | 指示滚动的发生方向的值。1向上滚动。2向下滚动。4向左滚动。8向右滚动。 |
水平 | iXpos | 整数 | 包含滚动操作之前包含窗口的水平滚动位置(以像素为单位)。 |
垂直 | iYpos | 整数 | 包含滚动操作之前包含窗口的垂直滚动位置(以像素为单位)。 |
增量 | iScroll | 整数 | 输入时,包含默认滚动增量(以像素为单位)。可以修改此成员以包含不同的滚动增量(正数值)。 |
中文名字 | 英文名称 | 长度 | 作用解释 |
分页滚区类 | NMPGCALCSIZE | 24 | 包含并接收分页控件用于计算包含窗口的可滚动区域的信息。 |
分页滚区类——成员表 |
中文 | 英文 | 类型 | 作用解释 |
通知 | hdr | 通知类 | 包含有关通知的信息的类结构。 |
标志 | dwFlag | 整数 | 指示所请求的维度的值。1=正在请求可滚动区域的宽度。2=请求可滚动区域的高度。 |
宽度 | iWidth | 整数 | 接收可滚动区域所需的宽度(以像素为单位)。 |
高度 | iHeight | 整数 | 接收可滚动区域所需的高度(以像素为单位)。 |
中文名字 | 英文名称 | 长度 | 作用解释 |
分页热项类 | NMPGHOTITEM | 24 | 包含与 分页热项更改 通知代码一起使用的信息。 |
分页热项类——成员表 |
中文 | 英文 | 类型 | 作用解释 |
通知 | hdr | 通知类 | 包含有关通知的信息的类结构。 |
旧项 | idOld | 整数 | 指定前面突出显示的项的命令标识符。 |
新项 | idNew | 整数 | 指定突出显示项的命令标识符。 |
原因 | dwFlags | 整数 | 包含指示热项更改原因的标志。0x10没有以前的热项。0x20没有新的热项 |