Nekada ฤe vam sigurno zatrebati da vaลกa Visual Basic aplikacija poseduje moguฤnost „Always on top“, tj. da prozor vaลกe aplikacije bude iznad ostalih prozora. Klasiฤan primer vezan za ovu moguฤnost je program „ฤasovnik“, ฤiji se prozor sa prikazanim vremenom nalazi iznad svih prozora na ekranu.
Da ovu moguฤnost primenili i na naลกe aplikacije u Visual Basic-u ฤemo iskoristiti Windows API funkciju zvanu „SetWindowPos“. Definicija same funkcije, koja se smeลกta u sekciju „General Declarations“ izgleda ovako:
Public Declare Function SetWindowPos Lib „user32“ _
(ByVal hWnd As Long, _
ByVal hWndInsertAfter As Long, _
ByVal X As Long, _
ByVal Y As Long, _
ByVal cx As Long, _
ByVal cy As Long,_
ByVal wFlags As Long) As Long
Sledeฤim redovima pojasniฤemo samu funkciju:
- hWndInsertAfter – Windows konstanta koja omoguฤuje da prozor bude na vrhu.
- X – nova pozicija prozora u odnosu na levu ivicu.
- Y – nova pozicija prozora u odnosu na vrh.
- cx – nova ลกirina prozora.
- cy – nova visina prozora.
Public Function SetWinPos(iPos As Integer,
lHWnd As Long) As BooleanDim lWinPos As Long
‘varijabla koja sadrzi vrednost pozicije prozora
Dim l As Long
‘Koriscenje SELECT CASE instrukcije za
‘podesavanje vrednosti API Window konstanteSelect Case iPos
‘Prozor je podesen na regularnu poziciju
Case 0
lWinPos = HWND_NOTOPMOST
‘Podesavanje prozora uvek na vrhu
Case 1
lWinPos = HWND_TOPMOST
Case Else
Exit Function
End Select‘pozivanje API SetWindowPos funkcije
If SetWindowPos(lHWnd, lWinPos, 0, 0, 0, 0,
SWP_NOMOVE + SWP_NOSIZE) Then
‘Ukoliko je funkcija veca od 0 (FALSE),
‘operacija je uspesna
SetWinPos = True
End If
End Function
Pratite Krstaricu na www.krstarica.com