[C++ Borland Builder] Przezroczystość okna i przesuwanie


(wojmal) #1

Witam!

Piszę prostą aplikację okienkową w C++ Borland Builder 6 na Windowsie XP i chciałbym umieścić w niej funkcjonalność polegającą na tym, że podczas przesuwania głównego okna staje się ono przezroczyste. Właściwości, jakie są mi potrzebne to AlphaBlend oraz AlphaBlendValue. Nie mogę jednak znaleźć sposobu, aby AlphaBlendValue zmieniało się, gdy "łapie" okienko i je przesuwam. Czy ktoś mógłby mi coś podpowiedzieć w tym temacie? Z góry dziękuję.


(Cherry515) #2

Można to zrobić tak: wyłapujesz zdarzeniem OnMouseDown nacisnięcie lewego przycisku myszy, aktywujesz zdarzenie OnMouseMove, w którym ustawisz przezroczystość. Po zdarzeniu OnMouseUp, deaktywujesz zdarzenie OnMouseMove.


(wojmal) #3

Dzięki za odpowiedź. Oprogramowałem następująco OnMouseDown, OnMouseMove i OnMouseUp:

void __fastcall TForm1::FormMouseDown(TObject *Sender, TMouseButton Button,

      TShiftState Shift, int X, int Y)

{

        if (Button==VK_LBUTTON) Form1->OnMouseMove;

}

//---------------------------------------------------------------------------



void __fastcall TForm1::FormMouseMove(TObject *Sender, TShiftState Shift,

      int X, int Y)

{

           Form1->AlphaBlendValue=150;

}

//---------------------------------------------------------------------------


void __fastcall TForm1::FormMouseUp(TObject *Sender, TMouseButton Button,

      TShiftState Shift, int X, int Y)

{

        if (Button==VK_LBUTTON) (AlphaBlendValue=255);

}

//---------------------------------------------------------------------------

Jest jednak źle ponieważ okno od początku jest przezroczyste i nic się nie zmienia. Byłbym wdzięczny za podpowiedź. Dzięki.