Оценка 45 Оценить ![]() ![]() ![]() ![]() ![]() ![]()
|
Демонстрационная программа - 30 KB
Исходный текст функции - 2 KB

Так получилось, что в моей программе очень часто использовалась функция TransparentBlt. К сожалению, она появилась только в Windows 98 и Windows 2000. Недавно, передо мной был поставлен вопрос о необходимости работы программы в Windows 95 и Windows NT 4.0. Естественно, отказываться от возможностей TransparentBlt мне не хотелось. Так, на свет появилась функция McTransparentBlt, которая по параметрам и основной функциональности совпадает с TransparentBlt. Для тех кто не в курсе, McTransparentBlt копирует изображение c контекста устройства прямоугольной области с учетом прозрачного цвета.
BOOL McTransparentBlt(
HDC hdcDest, // дескриптор контекста устройства приемника
int nXOriginDest, // координата x приемника
int nYOriginDest, // координата y приемника
int nWidthDest, // ширина приемника
int hHeightDest, // высота приемника
HDC hdcSrc, // дескриптор контекста устройства источника
int nXOriginSrc, // координата x источника
int nYOriginSrc, // координата y источника
int nWidthSrc, // ширина источника
int nHeightSrc, // высота источника
UINT crTransparent // цвет задающий прозрачность
);
|
Прилагаемый пример демонстрирует работу функции в разных режимах и с разными источниками изображения, которые копируются на заштрихованный фон.
Функция тестировалась на Windows 95, 98SE, NT 4.0 (IE 3.0), 2000.
Оценка 45 Оценить ![]() ![]() ![]() ![]() ![]() ![]()
|