Статья:
Функция McTransparentBltАвтор(ы): Олег Жук
Дата: 05.10.2001
Авторы:
Олег Жук
Аннотация:
Так получилось, что в моей программе очень часто использовалась функция TransparentBlt. К сожалению, она появилась только в Windows 98 и Windows 2000. Недавно, передо мной был поставлен вопрос о необходимости работы программы в Windows 95 и Windows NT 4.0. Естественно, отказываться от возможностей TransparentBlt мне не хотелось. Так, на свет появилась функция McTransparentBlt, которая по параметрам и основной функциональности совпадает с TransparentBlt. Для тех кто не в курсе, McTransparentBlt копирует изображение c контекста устройства прямоугольной области с учетом прозрачного цвета.
Я бы улучшил код тем что завел статическую переменную в функции и если она не инициализирована то проверял бы версию Windows. А затем все бы вызовы переадресовывал к API если Win2000 или Win98. Всяко API работает быстрее.
Не знал :(. Посмотрел и нашел только версию под Visual Basic, с урезанной функциональностью. Это она?
Идея метода не оригинальна и я не спорю, просто я собрал все в полнофункциональный рабочий код. Надеюсь кому-нибудь пригодится.
А вот это разве не то?
HOWTO: Drawing Transparent Bitmaps
Q79212
Да похоже, идея то одна и таже, смотрите ссылки по теме, только согласитесь моя функция гораздо удобнее ;), заменить стандартную не нее, раз плюнуть, а это и было главной задачей когда я ее писал.
В дополнение, недавно она прошла успешные тесты на WinCE.