Witam,

maluję ramkę edita w WM_NCPAINT. I jest wszystko OK. Ale gdy ustawię przezroczystość okna przez SetLayeredWindowAttributes to ramka jest źle rysowana. Wygląda to tak jakby rozmiar ramki był równy rozmiarowi samego pola edycyjnego.
Kod w WM_NCPAINTa:

case WM_NCPAINT:{
         RECT strect;
         HDC hdc = GetDCEx(hwnd, (HRGN)wParam, DCX_WINDOW | DCX_INTERSECTRGN | 0x10000);   // ostatnia flaga jest nieudokumentowana - znalazlem na necie, bez niej nie dziala
         GetWindowRect(hwnd, &strect);
         strect.right -= strect.left;
         strect.bottom -= strect.top;

         Graphics graph(hdc);
         LinearGradientBrush linGrBrush(
            Point(0, 0),
            Point(0, strect.bottom), //0, strect.bottom),
            0xFF00FF00,
            0xFFFF0000);
         graph.FillRectangle(&linGrBrush, 0, 0, strect.right, 2);
         graph.FillRectangle(&linGrBrush, 0, strect.bottom - 2, strect.right, strect.bottom - 2);
         graph.FillRectangle(&linGrBrush, 0, 2, 2, strect.bottom - 2);
         graph.FillRectangle(&linGrBrush, strect.right - 2, 2, 2, strect.bottom);

         ReleaseDC(hwnd, hdc);
      }return 0L;

Nie wiem czy to GDI+, czy co. Wiecie może dlaczego SetLaye.. psuje to?