Сообщений 5 Оценка 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.
Сообщений 5 Оценка 45 Оценить |