针对用户选择不同的字体大小,界面中的控件要能自动调整以适应改变的字体,为此设计了一些控件类。
同一行的控件都放在该布局中,而不再用CHorizontalLayoutUI。CHLineLayoutUI布局不需要设置height属性,高度会设置为themes中定义的行高。该布局会自动把包含的子控件的高度设置为themes中定义的控件高度,所以在该布局中的子控件不需要设置属性height。
多个垂直排列的CHLineLayoutUI使用CHLineLayoutContainerUI容纳,该布局是垂直布局,会根据包含的CHLineLayoutUI的数量自动设置高度,所以也不需要设置height属性。一级子控件除了CHLineLayoutUI外不要放置其它任何布局或控件。
COptionUI中的图片会充满整个控件区域,但是对于checkbox或radiobutton我们希望是个正方形的图片,所以才设计了该类,图片文本中不再需要dest属性,否则没法自适应图片的大小。
CTBButtonUI不要再设置width属性,其EstimateSize函数会自动计算宽度。
HorizontalToolbar布局中如果有子布局用来整体控制一部分按钮的显示或隐藏,不要再使用CHorizontalLayoutUI,而改用CASHorizontalLayoutUI,它会自动根据子控件的宽度总合设置自己的宽度。
也就是说,HorizontalToolbar中的所有子控件、布局都不要设置width属性。
不能设置该控件的showhtml属性,否则字体不会自动调整。
即使设置了该控件的height属性,也会自动调整为themes中的值,重载了函数SetAttribute。
在CBrowseEditWnd::Refresh中设置每个项的字体,并初始化每项单元格的字体,因为CListUIExCell::CListUIExCell(int nCellType)中又创建了一个子控件Label,实际上是在该Label上显示文本的,而不是在CListUIExCell::PaintText(HDC hDC)中绘制文本,所以,还需要把字体设置到子控件Label上,参见CListUIExCell::SetFont(int nFont)。