Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Подскажите как сделать

Ответить
Настройки темы
Подскажите как сделать

Новый участник


Сообщения: 6
Благодарности: 0

Профиль | Отправить PM | Цитировать


В NVIDIA ForceWare есть опция, благодаря которой можно совершенно любое окно в системе сделать полупрозрачным. Подскажите как это можно организовать в своей программе на Delphi.

[s]Исправлено: rootKit, 16:33 22-10-2004[/s]

Отправлено: 16:27, 22-10-2004

 


Сообщения: 196
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


rootKit
А разве это не на уровне GDI делается?

Отправлено: 16:47, 22-10-2004 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 6
Благодарности: 0

Профиль | Отправить PM | Цитировать


Я в этом совсем чайник. Хоть строчку кода пожалуста.

[s]Исправлено: rootKit, 17:24 22-10-2004[/s]

Отправлено: 17:09, 22-10-2004 | #3



Сообщения: 196
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


rootKit
http://wasm.ru/article.php?article=1001020

Отправлено: 14:54, 23-10-2004 | #4


Новый участник


Сообщения: 6
Благодарности: 0

Профиль | Отправить PM | Цитировать


Уй ё! А полегче некак?

Отправлено: 17:31, 29-10-2004 | #5


Аватара для Netscaper

Пользователь


Сообщения: 84
Благодарности: 0

Профиль | Отправить PM | Цитировать


AlphaBlend. Только в Win2000 и более новых, в старых Windows никакого эффекта не будет. Для Delphi 5 - не помню, а в Delphi 6+:
Код: Выделить весь код
procedure TForm1.Button1Click(Sender: TObject);
begin
  AlphaBlendValue:=128;
  AlphaBlend:=not AlphaBlend;
end;

[s]Исправлено: Netscaper, 19:31 29-10-2004[/s]

Отправлено: 19:20, 29-10-2004 | #6



Сообщения: 196
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Netscaper
Я так понял человек хочет сделать ЛЮБОЕ окно полупрозрачным, а не окно своей программы.

Отправлено: 21:59, 29-10-2004 | #7


Аватара для Netscaper

Пользователь


Сообщения: 84
Благодарности: 0

Профиль | Отправить PM | Цитировать


Kuper
Возможно. Функция Windows API:
Код: Выделить весь код
BOOL SetLayeredWindowAttributes(HWND hwnd,COLORREF crKey,BYTE bAlpha,DWORD dwFlags);
Окно hwnd должно обладать атрибутом WS_EX_LAYERED(в расширенных стилях GWL_EXSTYLE), который устанавливается при его создании или с помощью функции SetWindowLong после его создания. Указывается структура COLORREF (4-х байтный TColor в Delphi) - указывается цвет, который должен выступать в роли прозрачного, если надо, скажем, сделать неровные границы. bAlpha - уровень прозрачности 0-255, где 255 - непрозрачный,
dwFlags это:
LWA_COLORKEY - сделать прозрачным цвет
LWA_ALPHA - сделать прозрачным окно.
Вот как делает это Delphi 6 (см. исходники VCL):
Код: Выделить весь код
procedure TCustomForm.SetLayeredAttribs;
const
  cUseAlpha: array [Boolean] of Integer = (0, LWA_ALPHA);
  cUseColorKey: array [Boolean] of Integer = (0, LWA_COLORKEY);
var
  AStyle: Integer;
begin
  if not (csDesigning in ComponentState) and
    (Assigned(SetLayeredWindowAttributes)) and HandleAllocated then
  begin
    AStyle := GetWindowLong(Handle, GWL_EXSTYLE);
    if FAlphaBlend or FTransparentColor then
    begin
      if (AStyle and WS_EX_LAYERED) = 0 then
        SetWindowLong(Handle, GWL_EXSTYLE, AStyle or WS_EX_LAYERED);
      SetLayeredWindowAttributes(Handle, FTransparentColorValue, FAlphaBlendValue,
        cUseAlpha[FAlphaBlend] or cUseColorKey[FTransparentColor]);
    end
    else
    begin
      SetWindowLong(Handle, GWL_EXSTYLE, AStyle and not WS_EX_LAYERED);
      RedrawWindow(Handle, nil, 0, RDW_ERASE or RDW_INVALIDATE or RDW_FRAME or RDW_ALLCHILDREN);
    end;
  end;
end;

Отправлено: 04:14, 30-10-2004 | #8


Новый участник


Сообщения: 6
Благодарности: 0

Профиль | Отправить PM | Цитировать


Looks perfect... Но можно ли где небудь достать исходник, илюстрирующий данную возможность?

Отправлено: 16:17, 17-12-2004 | #9


Аватара для hasherfrog

Старый параноик


Сообщения: 2423
Благодарности: 85

Профиль | Отправить PM | Цитировать


гугль рулит не по детски

Отправлено: 23:26, 24-12-2004 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Подскажите как сделать

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CD и DVD - Подскажите, как из загрузочного DVD сделать загрузочный CD для одной ОС? ab Программное обеспечение Windows 12 29-07-2009 14:05
Подскажите как сделать, плизз AvToR_177 Ноутбуки 0 12-05-2008 01:16
Прочее - Подскажите как сделать инет на 2 копах Molchun78 Сетевые технологии 2 27-01-2008 15:25
Подскажите, как сделать скрипт BarsMaster Вебмастеру 4 26-01-2007 23:15
Подскажите как сделать у себя на компе FTP-сервер PIL123 Microsoft Windows NT/2000/2003 4 10-12-2006 23:58




 
Переход