开源DirectUI库学习2

本文介绍了UI设计中关于图片资源的使用技巧,包括不同图片格式的支持情况、布局元素的使用方法及注意事项,以及图片资源在控件上的描述方式等关键信息。

库缺限汇总


1. 生成.rc文件中, xml只支持png格式图片,不支持bmp;只有png资源可以打包exe中


注意事项


1.占位
<HorizontalLayout /> 一般是指定height属性,也就是说占的位置是从上往下算的。因为水平方向的位置都会占据。
<VerticalLayout/>       一般是指定width属性,也就是说占的位置是从左往右算的。因为垂直方向的位置都会占据。
并且HorizontalLayout 和VerticalLayout一般都是交叉包含,而不是重复包含(比如<HorizontalLayout> 子节点里再包含一个<HorizontalLayout> 节点)。

2.

贴图的描述方式有两种,其实看
    // 1、aaa.jpg
    // 2、file='aaa.jpg' res='' restype='0' dest='0,0,0,0' source='0,0,0,0' corner='0,0,0,0'
    // mask='#FF0000' fade='255' hole='false' xtiled='false' ytiled='false'

第一种是最简单的,加载图片文件并将整张图片拉伸铺满整个控件
第二种既支持从文件中加载图片,也可以从资源中加载
1、如果是从文件加载,设置file属性,如file='XXX.png',不要写res和restype属性
2、如果从资源加载,设置res和restype属性,不要设置file属性
3、dest属性的作用是指定图片绘制在控件的一部分上面(绘制目标位置)
4、source属性的作用是指定使用图片的一部分
5、corner属性是指图片安装scale9方式绘制(scale9是什么意思,自行google,一般flash设计用的比较多)
6、mask属性是给不支持alpha通道的图片格式(如bmp)指定透明色
7、fade属性是设置图片绘制的透明度
8、hole属性是指定scale9绘制时要不要绘制中间部分(有些地方对提升性能比较有用)
9、xtiled属性设置成true就是指定图片在x轴不要拉伸而是平铺,ytiled属性设置成true就是指定图片在y轴不要拉伸而是平铺
10.source="0,0,16,16" ,意思就是只显示图片中'0,0,16,16'矩形包含的那一部分,其中'0,0,16,16'分别是矩形的左上右下四个点
让背景图片平铺要写:xtiled='true' ytiled='true'

这个UI设计器是不识别的.

3. CListTextElement只在多列时使用,单列时用CListLabelElement;(代码中有BUG)


BUG说明


1. WindowImplBase的bug
在WindowImplBase的OnSysCommand函数里,在if( ::IsZoomed(*this) != bZoomed )里面的功能用来切换最大化和还原按钮,可是由于获取按钮控件会关联到View,暂时此功能移到继承类中处理
2. CDuiString的==操作符
CDuiString是将==函数作为成员函数重载的,所以只有CDuiString对象在操作符左边时,才会调用这个重载函数,如果想要CDuiString对象在右边时也能调用重载的==函数,那么必须将重载操作符放到外部.
即只支持if( msg.sType == _T("click") )形式,不支持_T("click") == msg.sType或_tcscmp( _T("click"), msg.sType)

 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值