- 1
- 2
- 3
- 4
inline Gdiplus::Color colorrefToGdiColor(COLORREF col, char alpha)
{
return (static_cast<unsigned long>(static_cast<unsigned char>((col & Gdiplus::Color::RedMask) >> Gdiplus::Color::RedShift)) << Gdiplus::Color::BlueShift) | (static_cast<unsigned long>(static_cast<unsigned char>((col & Gdiplus::Color::GreenMask) >> Gdiplus::Color::GreenShift)) << Gdiplus::Color::GreenShift) | (static_cast<unsigned long>(static_cast<unsigned char>((col & Gdiplus::Color::BlueMask) >> Gdiplus::Color::BlueShift)) << Gdiplus::Color::RedShift) | (static_cast<unsigned long>(alpha) << Gdiplus::Color::AlphaShift);
}
Тихо себя ненавижу. Слава Б-г'у это всё выкидывается.
Altravert 23.07.2010 05:58 # +3
AxisPod 23.07.2010 06:52 # 0
absolut 23.07.2010 07:15 # 0
nil 23.07.2010 08:24 # 0
2 a chiefly dialect : a change of clothes b (1) chiefly dialect : shirt (2) : a woman's slip or chemise (3) : a usually loose-fitting or semifitted dress
И еще маски какие-то, чем они там вообще занимаются?
Altravert 23.07.2010 08:27 # 0
enum
{
AlphaShift = 24,
RedShift = 16,
GreenShift = 8,
BlueShift = 0
};
enum
{
AlphaMask = 0xff000000,
RedMask = 0x00ff0000,
GreenMask = 0x0000ff00,
BlueMask = 0x000000ff
};
Также там есть методы типа
BYTE GetGreen() const { return (BYTE) (Argb >> GreenShift); }
на которые студия естественно громко матерится (типа ты че, баран, большие типы режешь).
Убожество в общем.
nil 23.07.2010 08:41 # 0
Altravert 23.07.2010 08:42 # 0
Говногость 23.07.2010 13:12 # +1
Что-же такое нужно сьесть, что-бы его увидеть...
absolut 23.07.2010 14:00 # 0
nil 23.07.2010 08:27 # −1
А что, #define уже отменили? Стандартная практика же:
Altravert 23.07.2010 08:35 # 0
#define RGB(r,g,b) ((COLORREF)(((BYTE)(r)|((WORD)((BYTE)(g) )<<8))|(((DWORD)(BYTE)(b))<<16)))
Altravert 23.07.2010 08:37 # −1
nil 23.07.2010 08:43 # +1
expression в данном случае будет что-то вроде того куска со статик кастами. Параметром будут слова с масками и шифтами.
андеф чтобы прибрать за собой. На всякий случай (особенно важно в заголовочных фйайлах). В большинстве случаев не укусит, но, имхо, все равно стóит.
Altravert 23.07.2010 09:30 # 0
govnokoder777 23.07.2010 12:58 # 0
статик касты можно смело выкидывать)
inline Gdiplus::Color COLORREFToColor(COLORREF clr, int alpha = 255)
{
return Gdiplus::Color(alpha, GetRValue(clr), GetGValue(clr), GetBValue(clr));
}
Altravert 23.07.2010 16:22 # 0
Черт, это было очень давно и мне давно очень стыдно)
Bjarne_Stroustrup 23.07.2010 15:44 # 0
Altravert 23.07.2010 16:19 # 0
bugmenot 26.08.2010 01:21 # 0