BCG庫MDI中Tab子框架窗口中的控制條的一個小Bug的解決方法

        最近使用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;

       問題得到解決。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章