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

<本節完>

相關文章
相關標籤/搜索