金山界面库分析(2)

统一的资源管理


为了对界面资源进行管理,同时也为了方便替换,需要对使用的资源进行统一的管理。

在BKLib中,资源管理主要由以下几种:

BkBmpPool:HBITMAP资源池,用于统一管理HBITMAP,单例。

BkFontPool:FONT资源池,用于统一管理FONT,单例。

BkPngPool:PNG图片资源池,用于统一管理PNG图片,单例,使用GDI+。

BkString:CString资源池,用于统一管理String,单例,从XML中获取。

BkColor:HLS&RGB颜色处理工具类

CBkImage:图像处理类

BkResManager:资源处理器,单例,用于获取资源

BkSkin:Skin资源池,单例,统一管理Skin(CBkSkinBase),从XML中获取

BkStyle:Style资源池,单例,统一管理Style,从XML中获取

 

在窗口创建之前需要加载相应的资源

    BkString::Load(IDR_BK_STRING_DEF); // 加载字符串

    BkFontPool::SetDefaultFont(BkString::Get(IDS_APP_FONT), -12); // 设置字体

    BkSkin::LoadSkins(IDR_BK_SKIN_DEF); // 加载皮肤

    BkStyle::LoadStyles(IDR_BK_STYLE_DEF); // 加载风格

         //其中输入参数为XML文件的名称

在程序关闭后应释放对应资源。

 

使用时只要按照ID在资源池中查找对应资源即可,如

       if ("bgskin" == strAttribName)                       //属性名称是strAttribName

       {                                                          

           m_pSkinBg = BkSkin::GetSkin(strValue);           //属性的值是strValue

           hRet = TRUE ? S_OK : S_FALSE;                 //是否全部重绘

       }  

根据ID(strValue)就可在BkSkin中获取相应的Skin。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值