CYFROWY BARON • PROGRAMOWANIE • Zobacz wątek - Jak zamknąć okno po kliknięciu poza jego obszarem?

Jak zamknąć okno po kliknięciu poza jego obszarem?

dział ogólny

Jak zamknąć okno po kliknięciu poza jego obszarem?

Nowy postprzez michael23 » poniedziałek, 31 stycznia 2011, 00:31

Kolejne pytanie. Stworzyłem formularz , w którym umieściłem ikonkę po której naciśnięciu wyświetla się inny formularz. Jak zamknąć drugi formularz
naciskając przycisk myszy poza jego obszarem?
Avatar użytkownika
michael23
Bladawiec
Bladawiec
 
Posty: 7
Dołączył(a): piątek, 28 stycznia 2011, 14:52
Podziękował : 2
Otrzymał podziękowań: 0
System operacyjny: Windows 7
Kompilator: C++ Builder 6
Gadu Gadu: 0
    Windows 7Firefox

Re: Jak zamknąć okno po kliknięciu poza jego obszarem?

Nowy postprzez Cyfrowy Baron » poniedziałek, 31 stycznia 2011, 11:35

Musisz przechwycić komunikat o dezaktywacji tego okna, czyli w formularzu dla tegoż okna umieszczasz taki kod:

plik nagłówkowy:
KOD cpp:     UKRYJ  
private:
        TWndMethod ActiveApp;
        void __fastcall GetActiveApp(TMessage &Msg);


plik źródłowy:
KOD cpp:     UKRYJ  
TForm2 *Form2;
//---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner)
        : TForm(Owner)
{
 ActiveApp = this->WindowProc;
 this->WindowProc = GetActiveApp;
}
//---------------------------------------------------------------------------
void __fastcall TForm2::GetActiveApp(TMessage &Msg)
{
 if(Msg.Msg == WM_ACTIVATE &&Msg.WParam == FALSE)
 {
  Close();
 }

 ActiveApp(Msg);
}

Za ten post autor Cyfrowy Baron otrzymał podziękowanie od:
michael23
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox


  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Ogólne problemy z programowaniem

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 2 gości