Miksei MDIFormeissa ole lostfocusia? miten saisi tehtyä sellaisen että kun mdiform "lostaa focusin" niin sitten tapahtuu jotain? siis kun ensin mdiform on actiivisena ja sitten painaa vaikka alt+tab tai klikkaa hiirellä selainta...?
Tämä on ehkä pahin viritelmä vähään aikaan, mutta tuntuisi toimivan. Laita formille Timer-kontrolli.
'funktio, joka palauttaa aktiivisen ikkunan hWnd:n Private Declare Function GetActiveWindow Lib "user32" () As Long Private Sub MDIForm_Load() 'fokus katsastetaan 50 ms välein Timer1.Interval = 50 End Sub Private Sub Timer1_Timer() 'jos tila on 1, on ikkuna aktiivisena Static tila As Integer 'jos aktiivinen ikkuna on eri kuin oma ikkuna... If GetActiveWindow <> Me.hwnd And tila Then '...näytetään ilmoitus... MsgBox "Nyt taidettiin mennä pois!" '...mutta vain kerran! tila = 0 Else 'ikkuna näyttää olevan aktiivisena tila = 1 End If End Sub
Hehee :D hyvin toimii kiitosta vaan. Mutta vain(heh) jos ottaa ton msgboxin pois muuten se tulee takaisin tohon ohjelmaan koska msgboxin "owner" (mikäsenytsuomeksolikaanenmuista) on toi ohjelma, eli kun painaa ok tohon nyt mentiin pois niin se tulee takaisin :) mutta ei ollut tarkoituskaan heittää msgboxeja vaan muuttaa vaan yhtä arvoa. Kiitokset.
Aihe on jo aika vanha, joten et voi enää vastata siihen.