当前位置:我的异常网» VB » 给VB窗体加滚动条是否有新的办法解决思路

给VB窗体加滚动条是否有新的办法解决思路

www.myexceptions.net  网友分享于:2013-01-08  浏览:30次

给VB窗体加滚动条是否有新的办法

程序所有窗体已设计好了,用加图片的方法实现似乎已很困难,请问大家是否有什么新的办法?谢谢

------解决方案--------------------

加滚动条本身很容易,一两句代码就可以实现,关键是我们加的滚动条要能响应事件,所以没什么简单的办法

------解决方案--------------------

偶现在用的也是关于图片的超长窗体,楼主可试试下面方法:

先在窗体上拖一个双屏幕长的frame1框(你的所有内容都可以在这上面拖出),高18000;宽15085;(窗体的属性Scalemode取1-Twip)

然后拖水平与垂直的两个滚动条;(注意:要在窗体上拖出)

Vscrloo1(竖滚动条)属性:LargeChange=20000,Max=11055

HScroll1(横)属性:LargeChange=8000;Max=1000;Top=18000;Width=14040

上面是偶的选用参数,你也可自选;

建立一个模块:下面代码放进去

Option Explicit

Public Type POINTL

x As Long

y As Long

End Type

Declare Function CallWindowProc _

Lib "user32 " Alias "CallWindowProcA " _

(ByVal lpPrevWndFunc As Long, _

ByVal hwnd As Long, _

ByVal Msg As Long, _

ByVal wParam As Long, _

ByVal lParam As Long) As Long

Declare Function SetWindowLong _

Lib "user32 " Alias "SetWindowLongA " _

(ByVal hwnd As Long, _

ByVal nIndex As Long, _

ByVal dwNewLong As Long) As Long

Declare Function SystemParametersInfo _

Lib "user32 " Alias "SystemParametersInfoA " _

(ByVal uAction As Long, _

ByVal uParam As Long, _

lpvParam As Any, _

ByVal fuWinIni As Long) As Long

Declare Function ScreenToClient Lib "user32 " _

(ByVal hwnd As Long, xyPoint As POINTL) As Long

Public Const GWL_WNDPROC = -4

Public Const SPI_GETWHEELSCROLLLINES = 104

Public Const WM_MOUSEWHEEL = &H20A

Public WHEEL_SCROLL_LINES As Long

Global lpPrevWndProc As Long

Public Sub Hook(ByVal hwnd As Long)

lpPrevWndProc = SetWindowLong(hwnd, GWL_WNDPROC, AddressOf WindowProc)

Call SystemParametersInfo(SPI_GETWHEELSCROLLLINES, 0, WHEEL_SCROLL_LINES, 0)

If WHEEL_SCROLL_LINES > Form1.VScroll1.Max Then

WHEEL_SCROLL_LINES = Form1.VScroll1.Max

End If

End Sub

Public Sub UnHook(ByVal hwnd As Long)

Dim lngReturnValue As Long

lngReturnValue = SetWindowLong(hwnd, GWL_WNDPROC, lpPrevWndProc)

End Sub

Function WindowProc(ByVal hw As Long, _

ByVal uMsg As Long, _

ByVal wParam As Long, _

ByVal lParam As Long) As Long

Dim pt As POINTL

Select Case uMsg

Case WM_MOUSEWHEEL

If wParam = -7864320 Then

If Form1.VScroll1.Value <= Form1.VScroll1.Max - 300 Then '4个300值可调鼠标滚轮移动屏幕的速度,可取300-1000(值越大,移动速度越快)

Form1.VScroll1.Value = Form1.VScroll1.Value + 300

Else

Form1.VScroll1.Value = Form1.VScroll1.Max

End If

ElseIf wParam = 7864320 Then

If Form1.VScroll1.Value > = 300 Then

Form1.VScroll1.Value = Form1.VScroll1.Value - 300

Else

Form1.VScroll1.Value = 0

End If

End If

Case Else

WindowProc = CallWindowProc(lpPrevWndProc, hw, uMsg, wParam, lParam)

End Select

End Function

Public Function HIWORD(LongIn As Long) As Integer

HIWORD = (LongIn And &HFFFF0000) \ &H10000

End Function

Public Function LOWORD(LongIn As Long) As Integer

LOWORD = LongIn And &HFFFF&

End Function

下面代码放在窗体中:

Private Sub Form_Load()

Hook Me.hwnd

End Sub

Private Sub Form_Resize()

If Frame1.Height > Me.Height Then

VScroll1.Visible = True

Else

VScroll1.Visible = False

文章评论

php form 添加滚动条,给VB窗体加滚动条是否有新的办法解决思路相关推荐

  1. java给界面添加滚动条_Java Swing学习笔记:要求会默写或熟练的,GUI,控件,设置列或行,加滚动条,新界面...

    GUI:Java的图形化用户界面 学习其控件的使用 JLabel(文本控件),JTextField(文本框),JPassworldField(密码框),JButton(普通按钮) JRadioButt ...

  2. php form 添加滚动条,element 使用总结(1. tree使用 2. table修改滚动条样式 3. el-form 自定义label添加icon)...

    一,  vue_elementUI_ tree树形控件 1.默认点击tree节点的第一个(注意不是checked选中) @node-drop="handleDrop"ref=&qu ...

  3. html中加滚动条,html中的div添加滚动条

    无标题文档 .css{ width:50px; border:1px solid red; /* overflow-x:scroll;左右滚动 overflow-x:scroll;上下滚动 overf ...

  4. C# 窗体加载假死,异步刷新总结

    文章来源:http://blog.sina.com.cn/s/blog_621e24e201015r29.html 总结:1.control.Invoke 和 Control.BeginInvoke都 ...

  5. 微信小程序获取滚动条高度_小程序超过高度加滚动条 小程序尺寸规范

    DW里如何设置自适应屏幕高度,且内容超出时出现滚动条? 首先:打开DW并创建一个新的HTML页面.第二:为它的页面写一个div,类pingmu.第三,保存这个文件.第四:创建一个新的类样式,并为其Di ...

  6. vb mysql加载控件_VB如何连接ACCESS数据库详解

    首先有一点要注意,数据库的使用与我们以往所使用的文本文件不同.例如我们使用文本文件,来记录各种有用的数据.那么大致有以下几步: 读取文件 -- 格式化数据 -- 关闭文件 -- 使用数据 如果数据量较 ...

  7. C#设计抽奖程序。窗体加载上来时,标签显示:开始抽奖。单击命令按钮,产生一个1到100的随机数,标签上显示:恭喜第?号,您中奖了。

    设计抽奖程序.窗体加载上来时,标签显示:开始抽奖.单击命令按钮,产生一个1到100的随机数,标签上显示:恭喜第?号,您中奖了. 提示:label1.Text = "恭喜第" + i ...

  8. html多行文本框加滚动条,textbox多行带滚动条

    textbox允许有滚动条的属性是什么? 首先设置成TextMode=MultiLine; 再右边属性查找ScrollBars 设置为 Vertical 或者both C# textbox多行时如何让 ...

  9. html显示php值,HTML窗体加载显示通过PHP的十六进制值

    我想动态加载一个窗体,将填充从SQL数据库中的行数.数据返回一个十六进制颜色,名称和价格.我想在窗体和POST上向用户显示颜色和名称,我想发送附加到该特定颜色的价格.我花了整整一天的时间来弄清楚这一点 ...

最新文章

  1. 互联网协议 — 动态路由协议类型
  2. java中super的作用
  3. 因果推断 - 反事实
  4. SpringBoot中关于Shiro权限管理的整合使用
  5. 第四单元博客总结——暨OO课程总结
  6. HBase出现java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/HBaseConfiguration问题
  7. linux设置免密ssh,Linux终端设置免密登陆ssh(以 XShell 为例)
  8. ora-12154问题处理
  9. Golang Gin实践 连载十六 在图片上绘制文字
  10. C语言计算圆周率PI的代码
  11. python循环结构高一信息技术会考_高一信息技术会考样题及参考答案
  12. c# spire.xls 设置文字为微软雅黑_微软推出的逆天神器,让我抛弃用了5年的 Chrome。...
  13. android 手机桌面角标,华为手机设置桌面图标角标提醒的实现
  14. 在浏览器中聊天(msn.jabber or gtalk,yahoo,aol,icq,meebo)
  15. 如何使用 Yahoo! Finance stock API 获取股票数据
  16. 微信小程序 — 二维码海报分享到好友功能
  17. UML图之【用例图、活动图、时序图】
  18. php 基于soap什么协议,网络协议 20 - RPC 协议(上)- 基于XML的SOAP协议
  19. 学校机房白嫖网络教程(实战版)
  20. oracle杀缩表进程,oracle查看锁表和杀死锁表的方法总结

热门文章

  1. 产业互联网,让互联网由「上层建筑」变成「基础设施」
  2. pppoe错误代码 linux,pppoe问题
  3. Java中八大基本数据类型详解
  4. 基于Java编程俄罗斯方块的重现
  5. STM32——定时器PWM
  6. anchor-free存在什么缺点?
  7. Android-屏幕滑动(一)
  8. 【红外DDE算法】一种应用于高动态范围红外可视化的算法
  9. 金格控件java版本_金格全文批注中间件安装软件-金格正文office控件(插件集成)下载V4.3.0.36安装版-西西软件下载...
  10. 基于Python是疫情期间教育领域新闻知识图谱分析