Как да създадете деактивирано растерно изображение от обикновен (релеф и т.н.), DelphiSite

Най-четени

Как да създадете деактивирано растерно изображение от обикновено (релефно изображение и т.н.)?

CreateMappedBitmap() :-) Един от параметрите е указател към COLORMAP, в него за 16 основни цвята правите прекодиране, сами ще избирате цветовете на принципа: всички най-ярки -> в GetSysColor( COLOR_3DLIGHT); най-тъмно -> GetSysColor(COLOR_3DSHADOW); неутрален, който ще бъде прозрачен -> GetSysColor(COLOR_3DFACE); Серж Захарчук (2:5060/32)

Не съм писал това. Това е написано от самия Borland (би било грубо да гледам класа TButtonGlyph. Току-що го извадих от него). Е, ако вече го разбирате доста добре, ще забележите функцията ImageList_DrawEx, в която можете да намалите яркостта на с 25 и 50 процента (но визуално това се възприема много зле). Съответно параметри ILD_BLEND25, ILD_BLEND50, ILD_BLEND-A-MED. Естествено, последният параграф работи само с тройки. Денис Танайев [email protected]

Това е част от работеща програма на C, изглежда, че премахнах всичко излишно.

#define CO_GRAY 0x00C0C0C0L

hMemDC = CreateCompatibleDC(hDC);

hOldBitmap = SelectObject (hMemDC, hBits);

// hBits е действителното изображение, което трябва да бъде "сериализирано"

GetObject (hBits, sizeof (Bitmap) , (LPSTR) &Bitmap) ;

if ( GetState ( BS_DISABLED ) ) // Blt деактивиран

hOldBrush = SelectObject(hDC, CreateSolidBrush(CO_GRAY));//CO_GRAY

PatBlt(hDC, BD_BORDERWIDTH, BD_BORDERWIDTH, Bitmap.bmWidth,

hOldBrush = SelectObject(hDC, CreateBrushIndirect(&lbLogBrush));