Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
|
в тулбарах (192,192,192) кажется заменяется на фон автоматически 08.11.02 21:20 Число просмотров: 1272
Автор: ggg <ggg> Статус: Elderman
|
|
<programming>
|
[Win32] Toolbar: как нарисовать bitmap с прозрачным фоном? 08.11.02 20:43
Автор: vim Статус: Незарегистрированный пользователь
|
Я тут запутался в тулбарах
У меня есть некий bitmap в ресурсах, я его подставляю в TB_ADDBITMAP и создаю image для кнопки на тулбаре. Как ему задать прозрачный фон?
Битмапы вроде не имеют такого свойства как прозрачный фон, но как то же это делается...
В ручную я это делаю так:
HDC hdcMem = CreateCompatibleDC( hDC );
SelectObject( hdcMem, hBmp );
TransparentBlt( hDC, // Destination DC
x, y, m_BmpWidth, m_BmpHeight,
hdcMem, 0, 0, m_BmpWidth, m_BmpHeight, // Source DC
m_TransparentColor );
DeleteDC( hdcMem );
где m_TransparentColor указывает на цвет, который должен быть прозрачным, например RGB(128,128,0)
Вторая проблема из той же области:
функция DrawState() позволяет нарисовать текст или битмап какими они должны быть в состоянии disabled (fuFlags = DSS_DISABLED).
В качестве "прозрачного" фона она берет белый цвет. А у меня, к примеру, белый цвет используется в рисунке, и поэтому фон я задал другим цветом, например, зеленым, и в TransparentBlt указываю этот (зеленый) цвет в качестве прозрачного.
Если теперь это изображение нарисовать с помощью DrawState - то мой прозрачный зеленый цвет станет черным и изображение в состоянии disabled не будет соответствовать изображению в состоянии enabled.
Вобщем, как правильно нарисовать bitmap чтоб
1) я мог задать ему прозрачный фон
2) можно было нарисовать его в состоянии disabled
Подскажите кто знает...
|
|
в тулбарах (192,192,192) кажется заменяется на фон автоматически 08.11.02 21:20
Автор: ggg <ggg> Статус: Elderman
|
|
|
|