Gradient fill bitmap and CreatePatternBrush just gives black fill instead of gradient

Posted by mtopley on Stack Overflow See other posts from Stack Overflow or by mtopley
Published on 2010-03-22T12:54:06Z Indexed on 2010/03/22 13:51 UTC
Read the original article Hit count: 477

Filed under:
|
|

I'm trying to create a Gradient Brush in windows mobile as follows:

HBITMAP hBitmap = CreateBitmap(16, 16, 1, 16, NULL);
HDC hDC = CreateCompatibleDC(NULL);
HBITMAP hPrevious = SelectObject(hDC,hBitmap);
TRIVERTEX vert[2];
GRADIENT_RECT gRect;
... fill in vert and gRect
GradientFill(hDC, vert, 2,&gRect, 1, Direction);
SelectObject(hDC, hPrevious);
Delete(hDC);

HBRUSH hPatternBrush = CreatePatternBrush(hBitmap);
HDC hDC = BeginPaint(hWnd, &ps);
SelectObject(hDC, hPatternBrush);
RoundRect(hDC, ...);
EndPaint(hWND, &ps);

This code create a round rect with a black background, not the pattern brush. I can draw the hBitmap which is used to create the brush and it draws the gradient. Anyone got a solution?

© Stack Overflow or respective owner

Related posts about c++

Related posts about windows-mobile