BCG库MDI中Tab子框架窗口中的控制条的一个小Bug的解决方法
2010-08-12 09:58
525 查看
最近使用bcg库的时候,采用了在MDI中Tab化子框架窗口中动态放置控制条的界面,却发现一个小问题。控制条始终不能显示出来,而是紧紧靠在边框,而且只露出一个1像素宽的条。开始以为是使用方法的不对,采用各种方法都没有解决。最后研究bcg中提供的范例程序,发现也存在这个问题。于是确认是系统的问题。需要自己解决。
跟踪源代码很久,才发现其中的原因。原来,bcg中当显示tab化的mdi子窗口的时候,会动态创建一个大小为0的tabWnd,这个窗口创建的时候size的变化会导致mdi子窗口中所有控制条的重新安排,由于size为0,而所有的控制条的位置会自动紧缩,由于控制条中有一个minSize属性,默认为1。所以控制条在重新展开后只会按照这个最小位置来显示,导致不正常的显示。非tab化的mdi子窗口则不存在此问题。
解决方法:在CBCGPMDIChildWnd的继承类中添加OnSize响应函数,并增加代码
if (cx == 0 && cy ==0)
return;
问题得到解决。
跟踪源代码很久,才发现其中的原因。原来,bcg中当显示tab化的mdi子窗口的时候,会动态创建一个大小为0的tabWnd,这个窗口创建的时候size的变化会导致mdi子窗口中所有控制条的重新安排,由于size为0,而所有的控制条的位置会自动紧缩,由于控制条中有一个minSize属性,默认为1。所以控制条在重新展开后只会按照这个最小位置来显示,导致不正常的显示。非tab化的mdi子窗口则不存在此问题。
解决方法:在CBCGPMDIChildWnd的继承类中添加OnSize响应函数,并增加代码
if (cx == 0 && cy ==0)
return;
问题得到解决。
相关文章推荐
- 缩小窗口时CSS背景图出现右侧空白BUG的解决方法
- Visual C++6.0一个小BUG的解决方法
- BCGControlBar Ribbon工具栏主分类按钮BUG解决方法
- 出现Bug的一个优秀的解决方法
- 一个NFS缓存管理包的bug导致文件系统满的问题和解决方法
- hibernate3+jpa进行sql查询的一个框架bug解决
- PHP is_subclass_of函数的一个BUG和解决方法
- 浏览器窗口大小变化时使用resize事件对框架不起作用的解决方法
- MFC MDI项目如何一个文档显示多个不同视图类(比如文字和图表,各自拥有单独的框架窗口)
- 缩小窗口时CSS背景图出现右侧空白BUG的解决方法
- Codeigniter框架的更新事务(transaction)BUG及解决方法
- IOS7版本中GameCenter的一个bug的解决方法
- 缩小窗口时CSS背景图出现右侧空白BUG的解决方法
- 在网上找到的一个解决mysql命令窗口一闪而过的有效方法
- 一个MDI窗口框架,可作为简单的MIS窗口框架使用
- ”双击文件夹无法在同一个窗口打开,更改文件夹选项也不行“的解决方法
- Codeigniter框架的更新事务(transaction)BUG及解决方法
- [转]IE点击链接没有反应或打开新窗口出现一个空白框(地址栏空白)的解决方法
- ASP.NET AJAX DropShadow 控件的一个BUG和解决方法(a bug of DropShadow and solution to resolve)