Альтернатива FillRect
От: korzhik Россия  
Дата: 17.07.04 13:04
Оценка:
Здравствуйте,

просматривая примеры к библиотеке AntiGrain наткнулся на интересный трюк:
//----------------------------------------------------------------------------
// Drawing a solid span, i.e. a solid horizontal line. That's ridiculous:
// WinGDI doesn't have a function of drawing a solid horizontal line
// (in general a rectangle) without the necessity of creating and destroying
// brushes. ExtTextOut() function is the workaround of it - in this case it 
// doesn't put any text, it just draws a rectangle of the "imaginary" text. 
// I took this "hack" from MFC. 
void draw_solid_rectangle( HDC hDC, int left, int top, int width, int heigth, COLORREF clr )
{
    COLORREF clrOld = ::SetBkColor( hDC, clr);

    RECT rc;
    ::SetRect( &rc, left, top, left + width, top + heigth );

    ::ExtTextOut( hDC, 0, 0, ETO_OPAQUE, &rc, NULL, 0, NULL );
    ::SetBkColor( hDC, clrOld );
}

как говорится, мелочь, а приятно.
может кому пригодиться.
... << RSDN@Home 1.1.4 beta 1 >>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.