duilib入门简明教程 -- 部分bug (11)
一、WindowImplBase的bug 在第8个教程 【2013 duilib入门简明教程 -- 完整的自绘标题栏(8)】 中,可以发现窗口最大化之后有两个问题, 1、最大化按钮的样式还是没变 ,正确的样式应该是这样的 2、再次点击最大化按钮,不能还原到正常大小。 这个是WindowImplBase的bug,已经提交给官方有一段时间了,但是貌似没有被合并到SVN上去,所以这里说明一下, 我们需要在WindowImplBase的OnSysCommand函数里,在if( ::IsZoomed(*this) != bZoomed )里面加上下面这段代码: if( ::IsZoomed(*this) != bZoomed ) { CControlUI* pbtnMax = static_cast<CControlUI*>(m_PaintManager.FindControl(_T("maxbtn"))); // 最大化按钮 CControlUI* pbtnRestore = static_cast<CControlUI*>(m_PaintManager.FindControl(_T("restorebtn"))); // 还原按钮 // 切换最大化按钮和还原按钮的状态 if (pbtnMax && pbtnRestore) { pbtnMax->SetVisible(TRUE ==