API给任意控件添加滚动条

易语言 2020-07-23 12:00:12

API给任意控件添加滚动条

.子程序 处理, 整数型, , 不要修改该子程序的返回值及参数的类型!
.参数 句柄, 整数型
.参数 消息, 整数型
.参数 参数1, 整数型
.参数 参数2, 整数型
.局部变量 i, 长整数型, 静态
.局部变量 j, 长整数型, 静态

.判断开始 (消息 = #WM_VSCROLL)
.如果真 (EnableScroll (句柄, #SB_VERT) = 假)
返回 (API_CallWindowProc (子程序指针, 句柄, 消息, 参数1, 参数2))
.如果真结束
.判断开始 (LoWord (参数1) = #SB_LINEUP)
图片框2.顶边 = 图片框2.顶边 + 1
.判断 (LoWord (参数1) = #SB_LINEDOWN)
图片框2.顶边 = 图片框2.顶边 - 1
.判断 (LoWord (参数1) = #SB_PAGEDOWN)
图片框2.顶边 = 图片框2.顶边 - 页改变值
.判断 (LoWord (参数1) = #SB_PAGEUP)
图片框2.顶边 = 图片框2.顶边 + 页改变值
.判断 (LoWord (参数1) = #SB_THUMBTRACK)
API_SetScrollPos (句柄, #SB_VERT, HiWord (参数1), 1)
图片框2.顶边 = -HiWord (参数1)
.默认

.判断结束
API_SetScrollPos (图片框1.取窗口句柄 (), #SB_VERT, -图片框2.顶边, 1)
.判断 (消息 = #WM_HSCROLL)
.如果真 (EnableScroll (句柄, #SB_HORZ) = 假)
返回 (API_CallWindowProc (子程序指针, 句柄, 消息, 参数1, 参数2))
.如果真结束

.判断开始 (LoWord (参数1) = #SB_LINELEFT)
图片框2.左边 = 图片框2.左边 + 1
.判断 (LoWord (参数1) = #SB_LINERIGHT)
图片框2.左边 = 图片框2.左边 - 1
.判断 (LoWord (参数1) = #SB_PAGERIGHT)
图片框2.左边 = 图片框2.左边 - 页改变值
.判断 (LoWord (参数1) = #SB_PAGELEFT)
图片框2.左边 = 图片框2.左边 + 页改变值
.判断 (LoWord (参数1) = #SB_THUMBTRACK)
API_SetScrollPos (句柄, #SB_HORZ, HiWord (参数1), 1)
图片框2.左边 = -HiWord (参数1)
.默认

.判断结束
API_SetScrollPos (图片框1.取窗口句柄 (), #SB_HORZ, -图片框2.左边, 1)
.默认

.判断结束
返回 (API_CallWindowProc (子程序指针, 句柄, 消息, 参数1, 参数2))