+ -
当前位置:首页 → 问答吧 → 老生常谈——窗口自绘问题!

老生常谈——窗口自绘问题!

时间:2011-12-16

来源:互联网

自绘窗口标题栏,外围的桔红色边框为自绘区域,里面的为客户区。如图所示BUG:

1、标题栏左边文字:表明刷新了非客户区但没有刷新客户区,该如何处理?
2、标题栏右边系统按钮:它是如何出现的?也同“1”的原因吗?
3、双击标题栏改变窗口大小时,系统的标题栏会出现的动画过程中,请问如何避免?

作者: PowerCock   发布时间: 2011-12-16

这儿是缩略图:

作者: PowerCock   发布时间: 2011-12-16

1.你画的时候是不是没有给字体背景设置颜色?
Assembly code

// 绘制标题栏 ---------------------------------------------------
        rect.bottom = rect.top + captionHeight;
        // 背景色
        inDc.FillSolidRect(&rect, captionBkColor);
        // 文本
        CFont* pOldFont = inDc.SelectObject(&textFont);
        CString captionText(_T(""));
        GetWindowText(captionText);
        inDc.SetBkMode(TRANSPARENT);
        rect.left += kIconSize + TEXT_TO_ICON + ICON_TO_LEFT;
        inDc.SetTextColor(captionTextColor);
        inDc.DrawText(captionText, &rect, DT_LEFT | DT_VCENTER | DT_SINGLELINE);
        inDc.SelectObject(pOldFont);


2.风格问题,把最大化和最小化去掉

作者: linyongzuo   发布时间: 2011-12-16

玩自绘就玩彻底一点,不要用MFC,用DirectUI,所有控件都自己写,我的资源有例子

作者: llxxhm   发布时间: 2011-12-17