pb 窗体控件等比例缩放

pb窗体控件等比例缩放
本文详细介绍了如何在PowerBuilder(PB)中实现窗体及控件的等比例缩放,包括关键算法和步骤,帮助开发者解决在不同分辨率屏幕下界面显示不一致的问题。

别人写的!可以实现等比例缩放效果!

1.实例变量:Int ii_width,ii_height


2.OPEN事件加入:

ii_width = This.Width
ii_height = This.Height


3.

在RESIZE事件中加入:
Int li_value
DragObject lw_obj
For li_value = 1 To UpperBound(This.Control[])
        lw_obj = control[li_value]
        lw_obj.x = lw_obj.x * (NewWidth / ii_width)
        lw_obj.width = lw_obj.width * (NewWidth / ii_width)
        lw_obj.y = lw_obj.y * (NewHeight / ii_height)
        lw_obj.height = lw_obj.height * (NewHeight / ii_height)
Next
ii_width = NewWidth
ii_height = NewHeight

### PowerBuilder 9 中浏览器控件的使用方法及常见问题 #### 浏览器控件概述 PowerBuilder 9 支持多种第三方 ActiveX 控件来增强其应用的功能。对于 PDF 文件浏览的需求,在 PowerBuilder 9 中通常会采用 WebBrowser 或特定的 PDF 阅读器 ActiveX 控件,如 Adobe Reader 的 ActiveX 版本。 由于福晰 `FoxitPDFSDK_AX_Pro.ocx` 主要针对较新的 PowerBuilder 版本进行了优化和支持[^1],因此在 PowerBuilder 9 上可能无法直接兼容此控件。然而,仍然可以通过其他途径实现类似的 PDF 浏览功能。 #### 实现方案一:WebBrowser 控件集成 一种常见的替代方案是在 PowerBuilder 应用程序中嵌入 Microsoft Internet Explorer 的 WebBrowser 控件。该控件不仅支持 HTML 页面渲染,还允许加载并展示本地或网络上的 PDF 文档。 ##### 步骤说明: - 将 WebBrowser ActiveX 控件注册到系统中; - 在 PowerBuilder IDE 中创建一个新的窗口对象; - 添加 WebBrowser 控件至新创建的窗口上; - 编写脚本来控制 WebBrowser 加载指定路径下的 PDF 文件; ```powerscript // 假设 webbrowser 是已经放置好的 WebBrowser 控件实例名 webbrowser.Navigate("file:///C:/example.pdf") ``` 这种方法简单易行,并且不需要额外安装专用软件包即可工作良好。 #### 实现方案二:Adobe Acrobat Reader ActiveX 控件 另一种更为专业的做法是利用 Adobe 提供的官方 ActiveX 组件——Acrobat Reader AX Control (AxAcroPDFLib.AxAcroPDF),它专为 Windows 平台设计用于内嵌式查看 PDF 文档。 ##### 关键特性包括但不限于: - 完整保留原始文档布局和格式; - 支持基本交互操作(缩放、翻页等); - 可编程接口便于二次开发人员调用 API 进行更深入的操作; 为了使 AxAcroPDF 能够正常运作于 PowerBuilder 9 环境之中: 1. 下载并安装最新版的 Adobe Acrobat Reader DC; 2. 注册 AcroPDF.dll 到全局组件库 GAC(Global Assembly Cache); 3. 打开 PBIDE 导入所需的类型库定义文件 (.tlb); 4. 创建相应的 OLE 对象并与 UI 元素关联起来; ```powerscript OLEObject ole_pdf; ole_pdf = CREATE OLEObject IF NOT ole_pdf.ConnectToNewObject("AxAcroPDF.PDF") THEN RETURN FALSE this.AddChild(ole_pdf, 0, 0, this.Width(), this.Height()) ole_pdf.LoadFile("c:\path\to\your\document.pdf") ``` 上述代码片段展示了如何初始化一个名为 "AxAcroPDF.PDF" 的 OLE Object 来代表 Adobe Acrobat Reader ActiveX 控制项,并将其添加到当前窗体中显示目标 PDF 文件的内容。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值