<第二部分 Outside>

PowerBuilder编程新思维4:钩挂(界面美化与DirectUI)

PB的界面由于其封闭性,一直以来都是最大的弱项。自PB9.0开放了PBNI接口后,开始流行起来一些界面美化方案。目前来看,共分三类。

PB界面美化方案一:Canvas自绘

PBNI接口允许创建自绘组件,开源软件Kodigo创造了Canvas组件,允许PB代码自绘组件界面,由此开创了Canvas自绘方案。当前比较流行的组件库有:

一、Kodigo

二、AdvancedGUI

三、PowerFramework

这种方案的优点是体系化,定制化。缺点是较慢(数十数百个Canvas自绘),高侵入性(必须使用定制组件)。

PB界面美化方案二:窗口换肤

这种方案可以用于多种开发语言和工具,其原理是劫持窗口消息,完全自绘窗口。所以界面完全与业务代码分离。优点是使用方便,侵入性最低。缺点是定制困难。

支持这个方案的基本是商业工具,开源且较为完备的有SkinTK V0.20。

PB界面美化方案三:Hook + DirectUI

这种方案正是PowerPlume所采用的方案,与前两个方案比较起来,综合了两者的优点。ApiHook可以使用任意现有窗口,无需继承,使得侵入性降低,同时又可以定制其内容,避免了内容雷同的换肤。DirectUI技术(使用Duilib库)允许在同一窗口创建多个组件,避免了众多Canvas组件带来的性能压力。

接口也相对简单,一种组件只需一个接口

duistartup()

drawbarcode(st_bc1, "qr", "", "")
drawbarcode(st_bc2, "ean", "", "") drawimage(cb_img, "png", "Google", "")
drawimage(cb_img_v, "png", "Google", "")
drawimage(pb_img, "baidu", "Baidu", "") drawicon(st_ico, "female", "female", "")
drawicon(st_ico2, "male", "male", "")
drawicon(cb_ico, "star", "star", "")

源码: PowerPlumeDemoV0.4.1.rar

提供了PB10.5 PB11.5 PB12.5三个版本

<本节完>

最新文章

  1. 《Java程序设计与数据结构教程(第二版)》学习指导
  2. PHP 变量声明的意义
  3. 一个简单的JAVA C/S多线程应用
  4. ugui,button的一个坑
  5. VMware安装64位操作系统提示Intel VT-x处于禁用状态的解决办法
  6. ubuntu下安装ffmpeg和X264
  7. Android Studio apk 打包流程
  8. Laravel安装及环境的配置(XAMPP集成开发环境下)
  9. java数组排序,并将数组内的数据求和
  10. Django+Vue打造购物网站(四)
  11. Django与supervisor 管理进程
  12. 【托业】【跨栏】TEST06
  13. Java 异常处理流程
  14. 【Unity/Kinect】手势识别Gesture
  15. $\mathcal{OI}$生涯中的各种数论算法的证明
  16. 英雄无敌HoMM3-死亡阴影SOD-神之苏醒WOG-封神NABI-MOD等相关文件
  17. ethereum/EIPs-100 挖矿难度计算
  18. Failed to execute goal org.apache.maven.plugins:maven-clean-plugin:2.5:clean (default-clean)
  19. nodejs 后台开发 和C++代码开发
  20. redis简单使用

热门文章

  1. shell wc -l
  2. Excel VBA语句集
  3. CentOS7下启用网卡
  4. AreaHttpControllerSelector 对 Web Api 实现 Area 路由控制
  5. QT中的一些信号
  6. 【计算机网络】 DNS学习笔记 (>﹏<)
  7. 异步三部曲之promise
  8. Swift5 语言指南(二十一) 嵌套类型
  9. 移动一根火柴使等式成立js版本(递归)
  10. SQL面试题之行转列