Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.024 c
1-1108801032
Bogdan
2005-02-19 11:17
2005.03.06
Image


4-1106308683
SvarogBarg
2005-01-21 14:58
2005.03.06
Как получить URL адрес


14-1108368145
07BB:080Dh
2005-02-14 11:02
2005.03.06
Средства борьбы с уборщицей?


14-1108530594
begin...end
2005-02-16 08:09
2005.03.06
С Днём рождения! 16 февраля


3-1107759821
Tornado
2005-02-07 10:03
2005.03.06
Вставка записей, есть вопрос




   Наверх