Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.03.06;
Скачать: CL | DM;

Вниз

Приветствую! Всё о старом, TRANSPARENT формы, как?   Найти похожие ветки 

 
IronHawk   (2005-01-21 14:29) [0]

Приветствую всех, особенно тех, кто меня помнит :)

Вот пришлось вспомнить старое и на WinAPI сваять форму, всё хорошо, только форма определённого цветя меня не устраивает, хочу полупрозрачную!
В Д7 ставим свойство у формы AlfaBlend в True, a AlfaBlendValue в 100 и всё работает, но моя на WinAPI.
Делаю так:
var
ps : TPaintStruct;
ddc: HDC;
begin
WindowProc := 0;
case Msg of
   WM_PAINT :
  begin
      beginPaint(wnd, ps);
      ddc := GetDC(wnd);
      SetBkMode(ddc,TRANSPARENT);
      releasedc(ddc, wnd);
      EndPaint(Wnd, ps);
  end;
...

Форма прозрачная, но при перетаскивании не обновляется, а остается с куском фрагмента раб.стола.
Пробовал вариант с GetDesktopWindow, тот же прилок.
Подскажите ПЛИЗ!


 
Piter ©   (2005-01-21 14:44) [1]

А ты что, переменную совсем уже очистил?


 
MBo ©   (2005-01-21 14:51) [2]

кусочек из Forms.pas
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


 
IronHawk ©   (2005-01-21 16:44) [3]

Я пробовал и GetDesktopWindow и WS_EX_TRANSPARENT но что-то постоянно упускаю.


> MBo ©   (21.01.05 14:51)

Спасибо, я перед тем как написать в форум просмотрел:
..\Borland\Delphi7\Demos\ActionBands\AlphaBlendMenus\AlphaBlendDemo.dpr
e меня всё в API...


 
MBo ©   (2005-01-21 18:29) [4]

При создании окна (если оперционка Win2K и выше) нужно включить флаг WS_EX_LAYERED, затем  SetLayeredWindowAttributes
Посмотри в MSDN, там пример есть



Страницы: 1 вся ветка

Текущий архив: 2005.03.06;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.033 c
3-1107444113
Bogdan
2005-02-03 18:21
2005.03.06
Как найти последнюю запись по дате


14-1108378587
Ega23
2005-02-14 13:56
2005.03.06
Где фотки можно выложить?


4-1102524244
Костя
2004-12-08 19:44
2005.03.06
системное время


3-1107363486
frEE)stylEr
2005-02-02 19:58
2005.03.06
Добавить индекс таблицы.


3-1107772442
Apophis
2005-02-07 13:34
2005.03.06
Работа с таблицами Paradox в сети - проблема с доступом!