Полупрозрачные окна под win9x/Me и 2000 – C, C++ (general), Microsoft Visual C++, Borland C++ – Графика / Звук – База кода

Скачать

Название (оригинал): Translucent window under Win9x/ME/2000

Описание:
Англ (оригинал)This is a nice example which shows you how to create a translucent window under Windows 9X/ME. Windows 2000/XP has an own function for
this. Windows 98 AlphaBlending functions, but Windows 95 has nothing, so I decided to use a external function for AlphaBlending (win9x) and I used for Windows2000 the SetLayeredWindowAttributes function. The functions in gdiu.cpp were written by Graus an other programmer who works for a Programmer’s Journal.

To use the code in your own applications copy the files win9Xtranslucent.cpp, win9Xtranslucent.h, win2000translucent.cpp, win2000translucent.h into your project and look at translucent.cpp, win9Xtranslucent.h, win2000translucent.h how to use the functions.

IMPORTANT:
The code is not perfect! So it can be optimized. If you want to optimize the code do it like you think it’s good for your project 🙂 For best optimitation the code must be rewritten into DirectX code.

HOW DOES IT WORK:
When the application starts a copy of the desktop will be made (WM_CREATE). On the first WM_PAINT message a copy of the window will be made. The WM_PAINT message is the message where the most work is. First we calculate the size and position of the window, then we check the intersection between the backuped size, position and the new size, position. If there is a intersection we copy a section from our background backup bitmap into the new background bitmap to hide the old window. Then we copy the new position, size to the backup position, size. Now we create 2 bitmaps: the first is a copy of the window rectangle from the screen (without the window), the second is a copy of the window. This 2 bitmaps are the arguments of the AlphaBlendU function which will create a new bitmap. This bitmap will be drawn on the screen. And at last we create a new copy of the screen. The old copy is the background backup bitmap.

On WM_WINDOWPOSCHANGED message we POST a WM_PAINT message to our window for
updating.

NEW: In this version the size of the window can be changed!

_____________________________
Please vote it 🙂
Sorry for my bad english.

Рус (машинный)Это хороший пример, который показывает Вам, как создать полупрозрачные окна в Windows 9х/МЕ. Windows 2000/ХР имеет собственную функцию для
это. ОС Windows 98 Полупрозрачности функции, но Windows 95 не имеет ничего, поэтому я решил использовать внешнюю функцию для Полупрозрачности (в win9x) и я использовал для в windows2000 на функцию SetLayeredWindowAttributes. Функции в gdiu.cpp были написаны окраине города граус другого программиста, который работает за программиста журнала.
тег
Чтобы использовать код в своих приложениях скопировать файлы win9Xtranslucent.cpp, win9Xtranslucent.ч, win2000translucent.cpp, win2000translucent.ч на ваш проект и посмотрите на translucent.cpp, win9Xtranslucent.ч, win2000translucent.ч как использовать функции.
тег
Важно: тег
Код не подходит! Поэтому он может быть оптимизирован. Если вы хотите оптимизировать код, делать его, как вы думаете, это хорошо для вашего проекта 🙂 для лучшей optimitation код должен быть переписан в с DirectX код.
тег
Как это работает:
При запуске приложения копия столе будет сделано (WM_CREATE). На первого сообщения wm_paint копию окна будут изготовлены. Сообщение wm_paint сообщение, в котором самая работа. Сначала мы вычисляем размер и положение окна, затем мы проверяем пересечение между сжатым Размер, позицию и новый Размер, положение. Если есть пересечения мы копию раздела из наших фонового резервного копирования растрового изображения в новый фоновый рисунок, чтобы скрыть старые окна. Затем мы копируем в новую позицию, размер в резервное положение, Размер. Сейчас мы создаем 2 рисунка: первый-копию окна прямоугольник с экрана (без окна), второй-копию окна. Это 2 растровые изображения доводы AlphaBlendU функцию, которая будет создать новое растровое изображение. Это растровое изображение будет рисоваться на экране. И наконец мы создаем новую копию экрана. Старая копия фонового резервного копирования растрового изображения.
тег
На сообщение WM_WINDOWPOSCHANGED мы опубликовать сообщения wm_paint, чтобы наше окно для
обновления.
тег
Новое: в этой версии размер окна может быть изменен!
тег
_____________________________
Пожалуйста, голосовать 🙂
В
Извините за мой плохой английский.

база кода