Prog:: Visual Basic Pretazeni okna |
Titulni strana
Problemy a algoritmy (250) Java (61) Web (123) Win32 (74) PowerBuilder
Nastroje Win32 Java Web
Technet Namodro Lupa |
Pretazeni okna trochu jinak Pokud chcete zmenit pozici okna, tak ho uchopite za titulkovy pruh a pretahnete ho na novou pozici. Je to opravdu jedina moznost? Nasledujici kod umozni pretazeni okna uchopenim za jeho libovolnou cast. Option Explicit Dim TlacitkoDole As Boolean Dim x1 As Single Dim y1 As Single Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) ' Pokud je okno maximalizovane nebo minimalizovane ' ukonci se provadeni procedury If WindowState = vbMaximized Or WindowState = vbMinimized Then Exit Sub ' Test tlacitka - pokracuje se jen pri levem tlacitku If Button <> vbLeftButton Then Exit Sub ' Tlacitko je zmacknute TlacitkoDole = True ' Ulozeni aktualni pozice kurzoru x1 = X y1 = Y End Sub Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) ' Pokud je zmacknute leve tlacitko mysi If TlacitkoDole Then ' Zmena pozice okna ' Vyraz (X - x1) a (Y - y1) je zmena polohy kurzoru ' mysi vuci pozici, kde bylo stisknuto tlacitko. O tento ' kousek se take posune okno Form1.Left = Form1.Left + (X - x1) Form1.Top = Form1.Top + (Y - y1) End If End Sub Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) ' Uvolneni tlacitka mysi TlacitkoDole = False End Sub Tento kod lze pouzit i v MS Office 97/2000 aplikacich, jen je nutne konstanty (vbMaximized = 2, vbMinimized = 1, vbLeftButton = 1) uvest ciselnou hodnotou. Stazeni zdrojoveho kodu prikladu: posunokna.zip (1,4 kB) Testovano a odladeno: Visual Basic 6.0 Enterprise Edition, melo by pracovat ve vsech verzich VB Stepan Bechynsky, http://www.builder.cz/stepan |
cbob@builder.cz |