Перейти к содержанию

[C++] Прозрачное меню :/


Рекомендуемые сообщения

Привет всем.

Есть одна проблема не получается нарисовать полупрозрачное меню.

 

функции рисовки >_>

void FillRGB( int x, int y, int w, int h, D3DCOLOR color, IDirect3DDevice9* pDevice ){    if( w < 0 )w = 1;    if( h < 0 )h = 1;    if( x < 0 )x = 1;    if( y < 0 )y = 1;    D3DRECT rec = { x, y, x + w, y + h };    pDevice->Clear( 1, &rec, D3DCLEAR_TARGET, color, 0, 0 );}void DrawBorder( int x, int y, int w, int h, int px, D3DCOLOR BorderColor, IDirect3DDevice9* pDevice ){    FillRGB( x, (y + h - px), w, px,    BorderColor, pDevice );    FillRGB( x, y, px, h,                BorderColor, pDevice );    FillRGB( x, y, w, px,                BorderColor, pDevice );    FillRGB( (x + w - px), y, px, h,    BorderColor, pDevice );}void DrawBox( int x, int y, int w, int h, D3DCOLOR BoxColor, D3DCOLOR BorderColor, IDirect3DDevice9* pDevice ){    FillRGB( x, y, w, h,        BoxColor, pDevice );    DrawBorder( x, y, w, h, 1,    BorderColor, pDevice );}

color который использую

#define BLACK D3DCOLOR_ARGB(55, 0, 0, 0)#define YELLOW D3DCOLOR_ARGB(255, 255, 255, 0)

вызов функции

DrawBox(10, 15, 190, 125, BLACK, YELLOW, pDevice);
Ссылка на комментарий
Поделиться на другие сайты

Тебе нужно использовать альфа-канал, который отвечает за прозрачность.

RGBA формат.

Первые 3 это код цвета (Красный, Зеленый, Синий), а посл. это А - Альфа канал (от 0 до 255 регулируется уровень прозрачности, если я конечно ничего не путаю).

Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.