Приветствую, уважаемые!
Подскажите, кто знает.
В программе есть функция, которая выводит "транспарентный" текст поверх существующего изображения.
void MyClass::DrawTransparentText(AnsiString text,int x, int y, HDC hPaintDC)
{
RECT r;
r.left=x; r.right=x+200; r.top=y; r.bottom=y+15;
SetBkMode(hPaintDC,TRANSPARENT);
SetTextColor(hPaintDC, 0x000000FF);
DrawText(hPaintDC,text.c_str(),text.Length(),&r,DT_LEFT);
}
В Висте, если тема "Аэро" отключена, то все ОК. Тест рисуется поверх картинки как положено, без фона, а если "Аэро" включена, то текст отрисовывается с черным фоном. Пробовал после SetBkMode выставлять фон для DC на черный. Результат тот же... Если есть какие мысли, буду благодарен!
Re: Отрисовка текста на DC с прозрачным фоном (Vista)
Здравствуйте, NeyroN, Вы писали:
NN>Приветствую, уважаемые! NN>Подскажите, кто знает. NN>В программе есть функция, которая выводит "транспарентный" текст поверх существующего изображения. NN>void MyClass::DrawTransparentText(AnsiString text,int x, int y, HDC hPaintDC) NN>{ NN> RECT r; NN> r.left=x; r.right=x+200; r.top=y; r.bottom=y+15; NN> SetBkMode(hPaintDC,TRANSPARENT); NN> SetTextColor(hPaintDC, 0x000000FF); NN> DrawText(hPaintDC,text.c_str(),text.Length(),&r,DT_LEFT); NN>} NN>В Висте, если тема "Аэро" отключена, то все ОК. Тест рисуется поверх картинки как положено, без фона, а если "Аэро" включена, то текст отрисовывается с черным фоном. Пробовал после SetBkMode выставлять фон для DC на черный. Результат тот же... Если есть какие мысли, буду благодарен!
а что если в GDI+ все отрисовывать? обычный GDI с полноценной прозрачностью не очень дружит...
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: Отрисовка текста на DC с прозрачным фоном (Vista)
Здравствуйте, squid, Вы писали:
S>а что если в GDI+ все отрисовывать? обычный GDI с полноценной прозрачностью не очень дружит...
Есть подозрение, что речь не идет о какой-либо полу-прозрачности. Речь просто о том, чтобы нарисовать текст без фонового прямоугольника на существующем непрозрачном изображении.
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re: Отрисовка текста на DC с прозрачным фоном (Vista)
Здравствуйте, McSeem2, Вы писали:
MS>Здравствуйте, squid, Вы писали:
S>>а что если в GDI+ все отрисовывать? обычный GDI с полноценной прозрачностью не очень дружит...
MS>Есть подозрение, что речь не идет о какой-либо полу-прозрачности. Речь просто о том, чтобы нарисовать текст без фонового прямоугольника на существующем непрозрачном изображении.
основываясь на опыте с GDI я бы все равно на GDI+ перебежал