Главная страница
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.046 c
14-1108104276
Steepe Wolf
2005-02-11 09:44
2005.03.06
MX6E040L0, 7200 об, U-DMA133 Установка WinXP


1-1108568360
antonioxxx
2005-02-16 18:39
2005.03.06
Не могу установить компонент


14-1108223163
fg
2005-02-12 18:46
2005.03.06
Спрашиваю ))


14-1108102830
Soft
2005-02-11 09:20
2005.03.06
Умные люди глупеют под давлением.


14-1108144122
Мазут Береговой
2005-02-11 20:48
2005.03.06
Денежные переводы стали "нетрудовыми доходами"