PB:自动卷滚条

自动卷滚条 
缺省情况下,MDI表单是可以重新设定大小的。这样用户就可以将窗口设成比原先的小。这种情况下,必须对窗口设置卷滚条的属性,以访问窗口上的一
些控件。而另一方面,除非窗口确实小到不足以显示所有的控件,否则没有必要提供卷滚条。 
许多Windows的MDI应用在处理这一问题时是这样做的:当窗口小到无法显示所有控件时,打开卷滚条;而窗口大小合适时,关闭卷滚条。PowerBuilder系
统本身并没有提供自动处理上述操作的功能,但是我们自己加上这一功能是很容易的,而且实现上述自动卷滚条的功能也用不到Windows API调用,只需
在MDI表单窗口的resize事件中触发另一个事件,以判断在当前窗口尺寸小于某一阈值时显示卷滚条(后面将介绍为什么要另外触发一个事件,而不在
resize事件中直接做)。此后用户在滚动卷滚条时,窗口会自动随之滚动;当用户再次改变窗口大小并大于该阈值时,我们应该关闭卷滚条,我们仍然可以
不调用Windows API而做到这一点。然而在整个例子中,真正有难度的是在关闭卷滚条之前,我们需要检查用户是否滚动了卷滚条。如果用户滚动了卷滚
条,我们则应当首先将窗口移回原始状态,这就要用到Windows API函数了。因为我们需要确定:卷滚条的滚动范围、滚动块在卷滚条上的当前位置。为
了做到这一点,我们需要使用两个Windows API调用:GetScrollPos和GetScrollRange。 
为了使用这两个API函数,首先在需要使用它们的窗口中将它们声明为local external函数。在Local external函数对话框中,加入如下语句: 
Function int GetScrollPos(uint Handle,int Bar)Library"USER.EXE" 
SubRoutine GetScrollRange(uint Handle,int Bar,Ref int MinPos,RefintMaxPos)Library"USER.EXE"同时在该窗口中声明如下实例变量: 
//判断用户是否要最小化窗口 
Boolean ib_minimized=FALSE 
//判断是否显示卷
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

悠闲饭团

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值