最近对新做的系统在各种不同操作系统环境下测试,发现在XP和WIN7下都正常,但在WIN8下出现问题,其中一个界面中的TAB窗口内容超出了父窗口的区域,导致部分界面无法操作。相当的郁闷,检查系统其它TAB界面无此问题。
没有办法,检查代码,发现该TAB窗口不是CTabCtrl,而是属性页。属性页是个倒霉孩子,它的各个Page资源设定的字体不起作用,加入sheet后,不知道sheet封装的什么鬼东西,居然不安预先设定的字体进行显示。惯例,我对此不进行研究,只做猜测。那么很可能sheet内部封装了一个用于定义大小的单位,它会将所有的Page调整到正好能显示在sheet范围内,因此,在XP和WIN7下,即使你设计Page资源时,界面大小比父窗口的空白区域大得多,它也能够显示完整,只不过其中的各个控件大小都发生了变化。
但是在WIN8下,这一切就不成立了,估计是sheet内部使用的字体什么的不存在了,所以自动使用了默认字体,导致整个自动调整机制出现问题了。
以上均属猜测,没有找到证据。有待有心者给以证实,或给明原因。
没有办法,淘汰属性页,全部使用TAB控件改之,一劳永逸啊。