Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Help me please! Перевидите чайнику на C++. [Win2k, WinXP]


v3l0m ©   (2004-08-23 21:04:00) 

program TBarTrans;

uses
 windows,Graphics,SysUtils;

const
 WS_EX_LAYERED= $80000;
 LWA_COLORKEY = 1;
 LWA_ALPHA    = 2;

function SetLayeredWindowAttributes(
           hwnd : HWND;         // handle to the layered window
           crKey : TColor;     // specifies the color key
           bAlpha : byte;       // value for the blend function
           dwFlags : DWORD       // action
           ): BOOL; stdcall;    external 'user32.dll';

var
  hTaskBar : HWND;  // хендел на окно таскбара
  Transp   : Byte;
begin
{ if ParamCount <> 1
   then begin
    MessageBox(0,'Программа изменения прозрачности таскбара Windows 2000/XP. Укажите прозрачность 0-255 в качестве параметра программы','Внимание !',MB_OK);
    exit; // Нет параметра
   end;  }
 Transp := 255;//StrToIntDef(ParamStr(1), 128);
 hTaskBar:= FindWindow('Shell_TrayWnd',Nil);
 if SetWindowLong(hTaskBar, GWL_EXSTYLE,
     GetWindowLong(hTaskBar, GWL_EXSTYLE) or WS_EX_LAYERED) = 0 then Halt;
 SetLayeredWindowAttributes(hTaskBar, 0, Transp, LWA_ALPHA)
//                                             ^^^ степень прозрачности
//                                               0 - полная прозрачность
//                                             255 - полная непрозрачность
end.


v3l0m   (2004-08-24 08:37:00) [1]

Большое СПАСИБО!


jack128   (2004-08-23 23:06:00) [2]

{
 if (ParamCouunt != 1)
 {
   MessageBox(0, _T("Программа изменения прозрачности таскбара Windows 2000/XP. Укажите прозрачность 0-255 в качестве параметра программы'"), _T("Внимание !"), MB_OK);
   return;
 }
 BYTE Transp = 255;
 HANDLE hTaskBar = FindWindow(_T("Shell_TrayWnd"),NULL);
 if (SetWindowLong(hTaskBar, GWL_EXSTYLE,
    GetWindowLong(hTaskBar, GWL_EXSTYLE) | WS_EX_LAYERED) != 0)
       // Halt; как перевести Halt - не знаю.
 ;
 SetLayeredWindowAttributes(hTaskBar, 0, Transp, LWA_ALPHA);
}


Наверх

Титульная страница Поиск, карта сайта Написать письмо