HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
pDC->SetBkMode(TRANSPARENT);
hbr = (HBRUSH)::GetStockObject(HOLLOW_BRUSH);
return hbr;
Tab Control и градиентная заливка
Код:
При этом со статиками все норм, за исключением Group Box'а (у него становится видна линия за надписью), а с Edit'ами и Radio Button'ами вообще траблы, фон становится черным...
Можно конечно убирать фон только у отдельных контролов, но тогда что делать с Radio Button'ами, Check Box'ами??? Как нормально избавиться от серого фона у контролов???
Цитата:
Originally posted by llllDeadMan
Такая проблема: в XP у Tab Control'а фон имеет градиентную заливку, убираю фон у диалогов через OnCtlColor:
При этом со статиками все норм, за исключением Group Box'а (у него становится видна линия за надписью), а с Edit'ами и Radio Button'ами вообще траблы, фон становится черным...
Можно конечно убирать фон только у отдельных контролов, но тогда что делать с Radio Button'ами, Check Box'ами??? Как нормально избавиться от серого фона у контролов???
Такая проблема: в XP у Tab Control'а фон имеет градиентную заливку, убираю фон у диалогов через OnCtlColor:
Код:
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
pDC->SetBkMode(TRANSPARENT);
hbr = (HBRUSH)::GetStockObject(HOLLOW_BRUSH);
return hbr;
pDC->SetBkMode(TRANSPARENT);
hbr = (HBRUSH)::GetStockObject(HOLLOW_BRUSH);
return hbr;
При этом со статиками все норм, за исключением Group Box'а (у него становится видна линия за надписью), а с Edit'ами и Radio Button'ами вообще траблы, фон становится черным...
Можно конечно убирать фон только у отдельных контролов, но тогда что делать с Radio Button'ами, Check Box'ами??? Как нормально избавиться от серого фона у контролов???
А почему используешь HOLLOW_BRUSH? Прозрачная кисть NULL_BRUSH.
У Group Box будет линия за текстом т.к. ты установил TRANSPARENT. Пробуй его обрабатывать отдельно, подбирая фон.
Radio, Check Box относятся к Button и должны соответсвенно обрабатываться
Цитата:
Originally posted by AndreySar
А почему используешь HOLLOW_BRUSH? Прозрачная кисть NULL_BRUSH.
У Group Box будет линия за текстом т.к. ты установил TRANSPARENT. Пробуй его обрабатывать отдельно, подбирая фон.
Radio, Check Box относятся к Button и должны соответсвенно обрабатываться
А почему используешь HOLLOW_BRUSH? Прозрачная кисть NULL_BRUSH.
У Group Box будет линия за текстом т.к. ты установил TRANSPARENT. Пробуй его обрабатывать отдельно, подбирая фон.
Radio, Check Box относятся к Button и должны соответсвенно обрабатываться
Пока остановился на таком варианте:
Код:
if(!(nCtlColor&CTLCOLOR_EDIT&CTLCOLOR_BTN))
{
pDC->SetBkMode(TRANSPARENT);
hbr = (HBRUSH)::GetStockObject(NULL_BRUSH);
}
{
pDC->SetBkMode(TRANSPARENT);
hbr = (HBRUSH)::GetStockObject(NULL_BRUSH);
}
С NULL_BRUSH результат один в один как и с HOLLOW_BRUSH... Если с Group Box'ом еще можно что-то придумать, то с Radio и Check Box'ами вообще не знаю что делать, черный фон и все... :(
усе... наконец-то нашел... 8)