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

<第二部分 Outside>

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

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

 

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

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

1、Kodigo工具

2、AdvancedGUI性能

3、PowerFrameworkui

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

 

 

  

 

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

 这种方案能够用于多种开发语言和工具,其原理是劫持窗口消息,彻底自绘窗口。因此界面彻底与业务代码分离。优势是使用方便,侵入性最低。缺点是定制困难。code

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

 

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

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

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

duistartup(256)

drawbarcode(st_bc1, "qr", "12345678", "")
drawbarcode(st_bc2, "ean", "12345678", "")

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三个版本

<本节完>

相关文章
相关标签/搜索