• 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 
    //判断是否显示卷
  • 相关阅读:
    智能加压站远程监控与维护,提高小区供水效率与安全性的创新方案
    基础SSM框架搭建
    Visual Studio 2022版本17.8中的实用功能
    机器学习HMM模型
    嵌入式系统中偶发性问题
    学信息系统项目管理师第4版系列15_资源管理基础
    1783_CMD启动MATLAB同时执行一个脚本
    USACO21FEB Modern Art 3 G
    第二篇------Virtual I/O Device (VIRTIO) Version 1.1
    果断收藏|项目中有哪些风险是难以避免的?
  • 原文地址:https://blog.csdn.net/z9894/article/details/133636903