Так во сильно хотелось сделать в своих мегапрогах прозрачность, что аж чесалось. И сделал. Стремление к новым знаниям программинга в школе давало о себе знать.
У любой формы, есть свойство AlphaBlendValue. Вот оно и отвечает за прозрачность этой формы.
Вот собстна и код из Borland C++ Builder.
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;</vcl.h>
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
void __fastcall TForm1::TrackBar1Change(TObject *Sender)
{
AlphaBlendValue = TrackBar1->Position*10;
Edit1->Text = AlphaBlendValue;
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
for(int i=255;i>=100;i--)
{
AlphaBlendValue = i;
TrackBar1->Position = AlphaBlendValue/10;
Edit1->Text = AlphaBlendValue;
Sleep(0);
}}
void __fastcall TForm1::Button2Click(TObject *Sender)
{
for(int i=100;i<=255;i++)
{
AlphaBlendValue = i;
TrackBar1->Position = AlphaBlendValue/10;
Edit1->Text = AlphaBlendValue;
Sleep(0);
}
}
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
MessageBox( //При закрытии программы вылетит месаджбокс =)
NULL,
"Наши слоны самые слонистые в мире!",
"Покупайте наших слонов",
MB_OK | //Да нет (кнопки)
MB_DEFBUTTON1 | //Выделеная кнопка
MB_ICONEXCLAMATION | //Тип иконки
MB_DEFAULT_DESKTOP_ONLY
);
}
Кому лень париться с созданием всех компонент. Скачайте сорц и насладитесь своей ленью это можно :)
Ежели вы не любите Bulider. Вот вам код на Visual C++
HINSTANCE LibHandle = LoadLibrary("user32");
if (LibHandle != NULL)
{
SetLayeredWindowAttr SetLayeredWindow;
SetLayeredWindow = (SetLayeredWindowAttr)GetProcAddress(LibHandle, "SetLayeredWindowAttributes");
if(SetLayeredWindowAttributes)
{
SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) | WS_EX_LAYERED);
SetLayeredWindow(Handle, 0, 200, LWA_ALPHA);
}
FreeLibrary(LibHandle);
}
Всё.
Написать комментарий