ďťż
Lemur zaprasza
Strona: [ > ] z 1 Autor Temat: Label +Kursor DJK Typ: neutral Postów: 871 Zarejestrowany: Feb 2004 Label +Kursor Witam Jak sprawdzić, że kursor znajduje się nad labelem lub się nad nim nie znajduje ? _____________________________________________ Jeśli można coś zrobić w sposób optymalny to czemu nie 30-03-2005 12:32 Tamgo Typ: neutral Postów: 129 Zarejestrowany: Aug 2004 Powiem nieśmiało, bo nie wiem na ile się tobie to przyda i czy moja podpowiedź jest trafna. W każdym razie w tym przykładzie wykorzystano API do wykrywania myszy nad obiektem (tu przycisk), czasu jej obecności, czy została poruszona i pozycji kursora. Rzecz dotyczy co prawda troszkę innego problemu (pokazania info o obiekcie w labelu) ale.... może coś z tego jednak wykorzystasz. W każdym razie chciałem pomóc. przykład ściągnięty ze stronki: ; Użyj zdarzenia MouseMove przycisku do pokazania informacji. Zastosuj Timera i funkcję - API GetCursorPos, aby wykrywać oddalanie się kursora myszy od obiektu. Private Sub Command1_MouseMove(Button As Integer, Shift As _ Integer, X As Single, Y As Single) DisplayButtonMessage Command1, "Command 1" End Sub ' Jeśli nie pokazujemy wiadomości, to ' umożliwi nam jej pokazanie stoper, ' który wykrywa kiedy mysza przestaje się poruszać. Private Sub DisplayButtonMessage(ByVal cmd As _ CommandButton, ByVal txt As String) ' Sprawdzaj, czy już pokazujemy wiadomość. If Timer1.Enabled Then Exit Sub ' Oblicza dla przycisku współrzędne ekranu. upper_left.X = ScaleX(cmd.Left, ScaleMode, vbPixels) upper_left.Y = ScaleY(cmd.Top, ScaleMode, vbPixels) ClientToScreen hwnd, upper_left lower_right.X = ScaleX(cmd.Left + cmd.Width, ScaleMode, _ vbPixels) lower_right.Y = ScaleY(cmd.Top + cmd.Height, ScaleMode, _ vbPixels) ClientToScreen hwnd, lower_right ' Pokaż wiadomość i uruchom Timer. lblStatus.Caption = txt Timer1.Enabled = True End Sub ' Sprawdzaj, czy kursor porusza się. Private Sub Timer1_Timer() Dim pt As POINTAPI ' Odczytaj pozycję kursora GetCursorPos pt ' Sprawdzaj, czy mysz jest nad przyciskiem. If pt.X < upper_left.X Or pt.X > lower_right.X Or _ pt.Y < upper_left.Y Or pt.Y > lower_right.Y _ Then ' Jak długo jest ponad przyciskiem. Timer1.Enabled = False lblStatus.Caption = "" End If End Sub [Post edytowany dnia 31-03-2005 00:06 przez Tamgo] 30-03-2005 23:58 4484571 Wszystkich odpowiedzi: 1 :: Maxymalnie na stronę: 20 Strona: [ > ] z 1 |