如题.....

解决方案 »

  1.   

    响应了,但还是画不出颜色,不懂怎么着色的列 怎么获得DC句柄?GetDC?获得DC句柄后用哪个API为其着色?
      

  2.   

    case WM_NCPAINT:
    {
        HDC hdc;
        hdc = GetDCEx(hwnd, (HRGN)wParam, DCX_WINDOW|DCX_INTERSECTRGN);
        // Paint into this DC
        ReleaseDC(hwnd, hdc);
    }
      

  3.   


    不行啊,实在不懂的了,我以前就是这样写:case WM_NCPAINT://在这里画边框颜色
    {     
          HDC     hdc;
          HBRUSH hbr;
         
          hdc = GetDCEx(hwnd, (HRGN)wParam, DCX_WINDOW|DCX_INTERSECTRGN);  
          hbr=CreateSolidBrush(RGB(20,20,30));
          SelectObject(hdc,hbr);
          FillRgn(hdc, (HRGN)wParam, hbr);
          DeleteObject(hbr);
          ReleaseDC(hwnd, hdc);
     
     }是不是规定窗口是自绘的才行啊????望大虾指教指教啊
      

  4.   

    case WM_NCPAINT://在这里画边框颜色
    {     
          HDC     hdc;
          HBRUSH hbr;
          RECT rc;      GetWindowRect(hwnd,&rc);
          OffsetRect(&rc,-rc.left,-rc.top);
          hdc = GetDC(hwnd);  
          hbr=CreateSolidBrush(RGB(255,0,0));//RGB(20,20,30)颜色不明显啊,改一个
          FillRect(hdc,&rc,hbr);
          DeleteObject(hbr);
          ReleaseDC(hwnd, hdc);
     
     }
      

  5.   

    sorry,GetDC打错了,应该是GetWindowDC,我那个代码是用颜色添满整个窗口,运行是有问题的。
    画边框应该排除掉客户区,即:
    RECT clientRC;
    GetClientRect(hwnd,&clientRC);
    ExcludeClipRect(hdc,clientRC.left,clientRC.top,clientRC.right,clientRC.bottom);
    然后再FillRect;
    不过这把标题栏也添满了,还必须自己把标题栏画出来。