自绘窗口标题栏,外围的桔红色边框为自绘区域,里面的为客户区。如图所示BUG:1、标题栏左边文字:表明刷新了非客户区但没有刷新客户区,该如何处理?
2、标题栏右边系统按钮:它是如何出现的?也同“1”的原因吗?
3、双击标题栏改变窗口大小时,系统的标题栏会出现的动画过程中,请问如何避免?

解决方案 »

  1.   

    1.你画的时候是不是没有给字体背景设置颜色?// 绘制标题栏 ---------------------------------------------------
    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.风格问题,把最大化和最小化去掉
      

  2.   

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