|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Прозрачность формы-гаджета
Решил сделать гаджет-песочные часы. Вставил на форму Image1, в нём Bitmap с изображением песочных часов. Те области часов, которые должны быть прозрачными, я залил красным цветом. Далее задал свойства формы:
Код:
//--------------------------------------------------------------------------- void __fastcall TForm1::FormCreate(TObject *Sender) { Form1->Color=255; Form1->TransparentColor=true; Form1->TransparentColorValue=255; } //--------------------------------------------------------------------------- Код:
//--------------------------------------------------------------------------- bool SetToDesktop() { HWND listViewhwnd = FindWindowA("Progman", NULL); if(listViewhwnd) { listViewhwnd = FindWindowExA(listViewhwnd, NULL, "SHELLDLL_DefView", NULL); if(listViewhwnd) { listViewhwnd = FindWindowExA(listViewhwnd, NULL, "SysListView32", NULL); if(listViewhwnd) { Form1->BorderStyle = bsNone; ::SetParent(Form1->Handle, listViewhwnd); return true; } } } return false; } //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { if(!SetToDesktop())ShowMessage("Ошибка SetToDesktop"); } //--------------------------------------------------------------------------- void __fastcall TForm1::Image1MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { long SC_DRAGMOVE = 0xF012; if(Button == mbLeft) { ReleaseCapture(); SendMessage(Handle, WM_SYSCOMMAND, SC_DRAGMOVE, 0); } } //--------------------------------------------------------------------------- Код:
::SetParent(Form1->Handle, listViewhwnd); |