12. august 2001 - 23:17Der er
6 kommentarer og 3 løsninger
Musens koordinater
findes der ikke en eller anden kommando, API-kald eller et eller andet, der gør det muligt at aflæse musepilens koordinater og derefter afvikle nogle bestemte events, når cursoren befinder sig i et bestemt område af skærmen (fx. farveskift på en button)??? Haster... tak
I lang tid har samarbejdsbranchen fokuseret på at forbedre enhedsfunktioner – bedre kameraer, klarere lyd og smartere software. Men den virkelige forvandling handler ikke om funktioner.
Nej. Det jeg gerne vil er, at når man flytter cursoren henover en label skifter den farve, og når man fjerner den får label\'en den oprindelige farve igen. Med mouse move eventen forbliver label\'en den nye farve.
Dim lab1, Form, lab2 As Boolean Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) lab1 = False: lab2 = False: Form = True color End Sub
Private Sub Label1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) lab1 = True: lab2 = False: Form = False Call color End Sub Private Sub Label2_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) lab1 = False: lab2 = True: Form = False Call color End Sub
Private Sub color() If Form = True Then: Label1.BackColor = &H8000000F: Label2.BackColor = &H8000000F If lab1 = True Then: Label1.BackColor = &H80000001 If lab2 = True Then: Label2.BackColor = &H80000001
hvis det SKAL være API-kald kan du bruge dette, men det er ikke serlig fedt. ;)
Option Explicit
Private Declare Function GetCursorPos Lib \"user32\" (lpPoint As POINTAPI) As Long Private Declare Function WindowFromPoint Lib \"user32\" (ByVal xPoint As Long, ByVal yPoint As Long) As Long
Private Type POINTAPI X As Long Y As Long End Type
Function MouseOver(hWnd As Long) As Boolean Dim ptMouse As POINTAPI GetCursorPos ptMouse If WindowFromPoint(ptMouse.X, ptMouse.Y) = hWnd Then MouseOver = True Else MouseOver = False End If End Function
Private Sub Form_Activate() Do If MouseOver(Command1.hWnd) = True Then Command1.BackColor = &HFF0000 \'Blå Else Command1.BackColor = &HFF& \'Rød End If DoEvents Loop End Sub
Private Sub Form_Load() \'Command1.Style skal du sette til 1-Graphical End Sub
Private Sub Form_Unload(Cancel As Integer) End End Sub
tak for hjælpen. Grunden til at jeg ikke selv kunne få det til at fungere var at jeg havde label\'en placeret bagest i ZOrder
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.