DuiLib中CTileLayoutUI的一个bug
来源:互联网 发布:c语言游戏开发教程 编辑:程序博客网 时间:2024/06/11 00:55
最近开始练习使用DuiLib来构造自己项目的View层,这是一个很强大的界面库,感谢各位开源者。
在使用CTileLayout作为控件容器的时候,发现加载进去的CTileLayout控件并不能正确的根据窗口大小来调整子控件(CListContainerElementUI)的显示位置而达到一个合理的显示效果。
经过调试发现是CTileLayout类中SetPos()函数导致的这个问题。
首先是计算列数的部分,原代码为:
// Position the elements
if(m_szItem.cx > 0 )m_nColumns = (rc.right -rc.left) /m_szItem.cx;
if(m_nColumns == 0 )m_nColumns = 1;
if (m_szItem.cx > 0)m_nColumns = (rc.right -rc.left) /m_szItem.cx;
if (rc.right -rc.left - (m_nColumns *m_szItem.cx) < (m_nColumns-1) *m_iChildPadding)
{
m_nColumns--;
}
if(m_nColumns <= 0 )m_nColumns = 1;
继续调试发现在计算每一列的子控件的占位宽度时,竖向滚动条所占的空间并未被正确处理,原代码为:
if(m_pHorizontalScrollBar &&m_pHorizontalScrollBar->IsVisible() )
cxWidth = (rc.right -rc.left + m_pHorizontalScrollBar->GetScrollRange() ) /m_nColumns;
if(m_pHorizontalScrollBar &&m_pHorizontalScrollBar->IsVisible() )
cxWidth = (rc.right -rc.left - m_pHorizontalScrollBar->GetScrollRange() ) /m_nColumns;
解决过程中未尝试截取效果图,请见谅。
- DuiLib中CTileLayoutUI的一个bug
- duilib CTileLayoutUI 控件
- duilib CTileLayoutUI 控件
- duilib 自定义控件1 CTileLayoutUI
- duilib的一些bug
- 在google code中新建一个duilib的分支
- duilib-erp修正了Grid的bug
- duilib中CTextUI控件设置文字时不刷新显示的bug
- duilib中CTextUI控件设置文字时不刷新显示的bug
- duilib中设置不激活窗口后移动无法立即跟随的bug
- 修复duilib CEditUI控件和CWebBrowserUI控件中按Tab键无法切换焦点的bug
- 一个简单的Duilib程序
- duilib做的一个程序
- duilib中禁止一个窗口双击最大化
- Duilib Combo bug
- PHP浮点运算中一个不算BUG的BUG
- SQLServer 2000 中视图的一个 bug
- 下拉框中optGroup的一个bug
- Android Launcher分析
- php mail为什么会有个感叹号
- 安卓推送方案及比较
- Quartz 2D的坐标系和UIKit的坐标系对比以及相互转换
- Jsoup入门指南
- DuiLib中CTileLayoutUI的一个bug
- 【超级详细】使用java生成带干扰线颜色不一的验证码
- 黑马程序员_HashMap
- 字符串匹配之rabin_karp
- 是打渔还是晒网(计算从2000年1月1日到输入的那一天有多少天)
- smartupload实现上传下载
- 【控件】给地图添加一个简单的比例尺条
- P2P之UDP穿透NAT的原理与实现(附源代码)
- SharedPreferences用法笔记