люди добрые, подскажите в чем проблемма
использую GradientFill для заливки фона диалога, вместо градиента, получаю "черный квадрат".
вот кусочек кода:
void CTestWindowDlg::OnPaint()
{
CRect ClientRect;
GetClientRect(ClientRect);
CPaintDC dc(this); // Контекст устройства для рисования
CBitmap m_bitmap;
CBitmap* m_pOldBitmap;
CDC mDC;
mDC.CreateCompatibleDC(&dc);
m_bitmap.CreateCompatibleBitmap(&mDC, 1024, 768);
m_pOldBitmap = mDC.SelectObject(&m_bitmap);
TRIVERTEX vert[2];
GRADIENT_RECT gRect;
vert [0] .x = ClientRect.left+1;
vert [0] .y = ClientRect.top+1;
vert [0] .Red = 0xA000;
vert [0] .Green = 0xA000;
vert [0] .Blue = 0xA000;
vert [0] .Alpha = 0x0000;
vert [1] .x = ClientRect.right-1;
vert [1] .y = ClientRect.bottom-1;
vert [1] .Red = 0xFF00;
vert [1] .Green = 0xFF00;
vert [1] .Blue = 0xFF00;
vert [1] .Alpha = 0x0000;
gRect.UpperLeft = 0;
gRect.LowerRight = 1;
if( mDC.GradientFill(vert,2,&gRect,1,GRADIENT_FILL_RECT_V) )
{
mDC.Rectangle(10,10,50,50);
mDC.Rectangle(20,20,40,40);
}
dc.BitBlt(0,0,ClientRect.right,ClientRect.bottom,&mDC,0,0,SRCCOPY);
mDC.SelectObject(m_pOldBitmap);
//CDialog::OnPaint();
}
в результате получаем следующее: