我在做一个美化标题栏的程序,可是程序开始的时候他显示WINWDOWS原先的标题栏只有当我用鼠标点一下标题栏才会变成我做的样子,可是我的程序在一个小程序里好使可放到另一个程序里就有这个问题怎么会事呀!请各位大侠教我谢谢!

解决方案 »

  1.   

    怎么做那,我用Invalidate(TRUE);刷了可不好使呀
      

  2.   

    Invalidate()只能刷新客户区,标题栏属于非客户区。
    我一般都是改写虚函数DefWindowProc(),加上
    //.....
    if (message==WM_MOVE||
       message==WM_PAINT||
       message==WM_NCPAINT||
       message==WM_NCACTIVATE||
       message == WM_NOTIFY)
    {
    CDC* pWndDC = GetWindowDC();
    if (pWndDC )
    DrawTitleBar(pWndDC ); // 换上你自己的重绘标题栏的函数
    ReleaseDC(pWndDC );
    }
    //......