SetWindowLong(hWnd,GWL_EXSTYLE, GetWindowLong(hWnd,GWL_EXSTYLE) | WS_EX_LAYERED);
SetLayeredWindowAttributes(hWnd, RGB(0,0,0), alpha, LWA_ALPHA);
Прозрачная подсказка (ToolTip)
Подскажите кто знает, плизз! Мне надо ето применять в краасивущей проге :)
И заодно: как сделать прозрачным меню?
Код:
пробовал? :-))))
Ето я уже давно знаю. Етот код действует только на окна. На контролы и подсказки - ноль реакцыи :( Может я что-то не так делаю? Просто, у меня есть код, который делает меню прозрачным. НО я ни как не могу разобраться как он ето делает! В коде все очень запутано, ведь он делает не только ето, а и еще кучу всего!
Ну дык выложи код сюда, может я разберуся :-)))
Код:
Dim hTip As Long
hTip = CreateTip()
Call SetWindowLong(hTip, GWL_EXSTYLE, GetWindowLong(hTip, GWL_EXSTYLE) Or WS_EX_LAYERED)
Call SetLayeredWindowAttributes(hTip, RGB(0, 0, 0), 70, 2)
hTip = CreateTip()
Call SetWindowLong(hTip, GWL_EXSTYLE, GetWindowLong(hTip, GWL_EXSTYLE) Or WS_EX_LAYERED)
Call SetLayeredWindowAttributes(hTip, RGB(0, 0, 0), 70, 2)
Если вместо [FONT="Courier New"]CreateTip()[/FONT] поставить [FONT="Courier New"]Me.hWnd[/FONT] то форма станет прозрачной. А если подставить хендл подсказки, то ровно ничего не выходит :( Хоть [FONT="Courier New"]SetLayeredWindowAttributes[/FONT] возвращает 1
Можно конечно создать прозрачный тултип - на самом деле это будет обычное окно, с регионами, без titlе bar'a и нужным образом расположенное... Используя регионы можно вообще любую форму окну придать... Если оч. нужно и кривизна метода не смущает - могу попробовать соорудить рабочий вариант...
WCHAR kap[]=L"Hello, Kap!";
Graphics g(hdc);
g.SetPageUnit(UnitPixel);
RectF bounds(0,0,float(rc.right),float(rc.bottom));
LinearGradientBrush brush(bounds,Color(130,0,100,0),Color(255,0,0,0),
LinearGradientModeBackwardDiagonal);
StringFormat format;
format.SetAlignment(StringAlignmentCenter);
format.SetLineAlignment(StringAlignmentCenter);
Font font(L"Arial",48, FontStyleBold);
g.DrawString(kap,-1,&font,bounds,&format,&brush);
Вот. В color первая цифра- степень прозрачности. 255- непрозрачно вообще. Там у объекта g доступна еще огромная куча методов, в том числе и DrawImage и DrawPath, которыми можно нарисовать окно любой формы, и никокого мошенничества! Все чисто и красиво. И в 10 строчек.
А на VB можна ?