vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 17 bzw. 24 Entwickler-Vollversionen zum unschlagbaren Preis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Allgemeine Diskussionen
Re: Mouseover/Label/Icon in Steuerelement 
Autor: Ralf Schoen
Datum: 30.07.04 14:11

Hi,

ich habe deinen Code ein wenig abgeändert, für die Bilder habe ich einfach 3 Pictureboxen mit verschiedenen Farben genommen. Wie du sehen kannst sind die labels alle weg. Den Text schreibe ich direkt ins Control. Die Picture Boxen habe ich über einen Index laufen lassen, so dass ich diese dann einfach über die zorder und dem Aufzählungstyp änderen kann. Wenn Du die Maus im control drückst und dann aus dem Control raus gehst, dann nimmt es den normal Zustand an und wenn du dann wieder mit gedrückter Maus drauf gehst, dann nimmt es den Zustand Over an.

Ich hoffe mal das Hilft Dir ein wenig weiter... Ich habe mir auch mal den Workshop dazu angeschaut und der ist gut. Warum nimmst Du nicht den und änderst ihn so wie du ihn brauchst ? Dann haste die Anfangsschwierigkeiten erfolgreich gemeistert. Um es zu lernen ist es natürlich besser, es ganz von vorne alleine zu machen.

Ach noch was, stell mal in deinen Einstellungen unter Extras / Optionen im Reiter Editor "Variablendeklaration erforderlich" ein. Dann mußt du zwar alle Variablen deklarieren, was aber auch richtig ist....

Option Explicit
 
Const DT_CENTER = &H1
Const DT_SINGLELINE As Long = &H20
Const DT_VCENTER As Long = &H4
 
Private Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
End Type
 
Private Enum tBtnState
   Normal
   Clicked
   Over
End Enum
 
Private Declare Function DrawText Lib "user32" Alias "DrawTextA" (ByVal hdc As _
  Long, ByVal lpStr As String, ByVal nCount As Long, lpRect As RECT, ByVal _
  wFormat As Long) As Long
Private Declare Function SetRect Lib "user32" (lpRect As RECT, ByVal X1 As _
Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
Private Declare Function ReleaseCapture Lib "user32" () As Long
Private Declare Function SetCapture Lib "user32" (ByVal hWnd As Long) As Long
 
Public Event Click()       ' wird ausgelöst, wenn auf den Button geklickt wird
Public Event MouseEnter()  ' wird ausgelöst, wenn die Maus den Button "betritt"
Public Event MouseLeave()  ' wird ausgelöst, wenn die Maus den Button verlässt
 
Private m_Caption As String
Private m_tBtnState As tBtnState
 
Public Property Get Caption() As String
    Caption = m_Caption
End Property
 
Public Property Let Caption(ByVal New_Caption As String)
    m_Caption = New_Caption
    PropertyChanged "Caption"
End Property
 
 
Private Sub UserControl_Initialize()
  m_tBtnState = Normal
  btnpic(Normal).ZOrder 0
End Sub
 
Private Sub UserControl_InitProperties()
  Caption = "FlatButton"
End Sub
 
Private Sub UserControl_MouseDown(Button As Integer, Shift As Integer, x As _
  Single, y As Single)
   CheckMouse x, y, Button
   btnpic(m_tBtnState).ZOrder 0
End Sub
 
Private Sub UserControl_MouseUp(Button As Integer, Shift As Integer, x As _
  Single, y As Single)
    CheckMouse x, y, Button
    btnpic(m_tBtnState).ZOrder 0
End Sub
 
Private Sub UserControl_MouseMove(Button As Integer, Shift As Integer, x As _
  Single, y As Single)
    CheckMouse x, y, Button
    btnpic(m_tBtnState).ZOrder 0
End Sub
 
 
'Eigenschaftenwerte vom Speicher laden
Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
    m_Caption = PropBag.ReadProperty("Caption", "FlatButton")
End Sub
 
Private Sub UserControl_Show()
  Dim m_rect As RECT
 
 
  SetRect m_rect, 0, 0, ScaleWidth / Screen.TwipsPerPixelX, ScaleHeight / _
    Screen.TwipsPerPixelY
  DrawText hdc, m_Caption, Len(m_Caption), m_rect, DT_CENTER + DT_SINGLELINE + _
  DT_VCENTER
End Sub
 
'Eigenschaftenwerte in den Speicher schreiben
Private Sub UserControl_WriteProperties(PropBag As PropertyBag)
    Call PropBag.WriteProperty("Caption", m_Caption, "FlatButton")
End Sub
 
Private Sub UserControl_Resize()
On Error Resume Next
Width = 2130
Height = 375
End Sub
 
Private Sub CheckMouse(ByVal x As Single, ByVal y As Single, ByVal Button As _
  Integer)
  ' Hier wird überprüft, ob sich die Maus innerhalb des
  ' Controls befindet oder eben nicht
  With UserControl
    If x < 0 Or y < 0 Or x > .ScaleWidth Or y > .ScaleHeight Then
      ReleaseCapture
      m_tBtnState = Normal
    Else
      SetCapture .hWnd
      If Button = vbLeftButton Then
        m_tBtnState = Clicked
      Else
        m_tBtnState = Over
      End If
    End If
  End With
End Sub

Gru?

Ralf

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Mouseover/Label/Icon in Steuerelement1.332KlyX29.07.04 15:50
Re: Mouseover/Label/Icon in Steuerelement922Master29.07.04 16:37
Re: Mouseover/Label/Icon in Steuerelement949KlyX29.07.04 17:38
Re: Mouseover/Label/Icon in Steuerelement946KlyX29.07.04 17:44
Re: Mouseover/Label/Icon in Steuerelement918Ralf Schoen29.07.04 18:17
Re: Mouseover/Label/Icon in Steuerelement1.047KlyX29.07.04 18:54
Re: Mouseover/Label/Icon in Steuerelement953Ralf Schoen30.07.04 14:11
Re: Mouseover/Label/Icon in Steuerelement892KlyX03.08.04 13:53
Re: Mouseover/Label/Icon in Steuerelement906Ralf Schoen03.08.04 13:59
Re: Mouseover/Label/Icon in Steuerelement917KlyX06.08.04 18:44
Re: Mouseover/Label/Icon in Steuerelement873Ralf Schoen07.08.04 11:49
Re: Mouseover/Label/Icon in Steuerelement914KlyX09.08.04 09:04
Re: Mouseover/Label/Icon in Steuerelement896Ralf Schoen09.08.04 16:05

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel