Как да създадете деактивирано растерно изображение от обикновен (релеф и т.н.), 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));