Tehnika Krstarice > Programiranje > Visual Basic - Prozor uvek na vrhu

Visual Basic - Prozor uvek na vrhu

15.11.2000.

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.

Cela ova funkcija možet se dobiti kopiranjem iz API Viewer-a. A sada evo u primera funkcije za postavljanje određenog prozora na vrh:

  Public Function SetWinPos(iPos As Integer,
  	lHWnd As Long) As Boolean

      Dim lWinPos As Long
      'varijabla koja sadrzi vrednost pozicije prozora
     Dim l As Long
      'Koriscenje SELECT CASE instrukcije za
      'podesavanje vrednosti API Window konstante

       Select 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

Preporučite ovaj članak

Članak još uvek nije ocenjen.