vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
vb@rchiv Offline-Reader - exklusiv auf der vb@rchiv CD Vol.4  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück
Rubrik: Grafik & Zeichnen22.03.05
GetArcDirection-Funktion

Diese Funktion ermittelt, ob Kreisausschnitte auf einem bestimmten Device gegen oder mit dem Uhrzeigersinn gezeichnet werden.

Betriebssystem:  Win95, Win98, WinNT 3.1, Win2000, WinMEViews:  7.339 

Deklaration:

Declare Function GetArcDirection Lib "gdi32.dll" (ByVal hdc As Long) As Long

Beschreibung:
Diese Funktion ermittelt, ob Kreisausschnitte auf einem bestimmten Device gegen oder mit dem Uhrzeigersinn gezeichnet werden.

Parameter:
hdcErwartet den Devicekontext des Gerätes von dem die Richtung des Zeichnens für Kreisausschnitte ermittelt werden soll.

Rückgabewert:
Ist die Funktion erfolgreich, so wird eine der Rückgabe-Konstanten zurückgegeben, andernfalls derWert "0".

Rückgabekonstanten:

Const AD_CLOCKWISE = 2
' mit den Uhrzeigersinn
 
Const AD_COUNTERCLOCKWISE = 1
' gegen den Uhrzeigersinn

Beispiel:

Private Declare Function AngleArc Lib "gdi32.dll" ( _
  ByVal hdc As Long, _
  ByVal x As Long, _
  ByVal y As Long, _
  ByVal dwRadius As Long, _
  ByVal eStartAngle As Single, _
  ByVal eSweepAngle As Single) As Long
Private Declare Function GetArcDirection Lib "gdi32" (ByVal hdc As Long) As Long 
Private Declare Function SetArcDirection Lib "gdi32" ( _
  ByVal hdc As Long, _
   ByVal ArcDirection As Long) As Long
Private Declare Function ArcTo Lib "gdi32.dll" ( _
  ByVal hdc As Long, _
  ByVal nLeftRect As Long, _
  ByVal nTopRect As Long, _
  ByVal nRightRect As Long, _
  ByVal nBottomRect As Long, _
  ByVal nXRadial1 As Long, _
  ByVal nYRadial1 As Long, _
   ByVal nXRadial2 As Long, _
  ByVal nYRadial2 As Long) As Long
Private Declare Function MoveToEx Lib "gdi32.dll" ( _
  ByVal hdc As Long, _
  ByVal x As Long, _
  ByVal y As Long, _
  lpPoint As POITAPI) As Long
 
Private Type POITAPI
  x As Long
  y As Long
End Type
 
' Get- /SetArcDirection Rückgabe- / ArcDirection-Konstanten
Private Const AD_CLOCKWISE = 2 ' mit den Uhrzeigersinn
Private Const AD_COUNTERCLOCKWISE = 1 ' gegen den Uhrzeigersinn
' Eine Brücke zeichnen
Private Sub Form_Load()
  Dim Retval As Long, PT As POITAPI
 
  ' Richtung des Zeichnens setzen
  If GetArcDirection(Me.hdc) = AD_CLOCKWISE Then
    Retval = SetArcDirection(Me.hdc, AD_COUNTERCLOCKWISE)
  End If
 
  With Me
    .AutoRedraw = True
    .ScaleMode = vbPixels
 
    ' Startpunkt definieren (rechte Fenstermitte)
    Call MoveToEx(Me.hdc, .ScaleWidth - 20, .ScaleHeight / 2, PT)
 
    ' Ersten Bogen malen (oben)
    Retval = AngleArc(.hdc, ScaleWidth / 2, .ScaleHeight / 2,  _
    .ScaleHeight / 2 - 20, 0, 180)
 
    ' Richtung zum Zeichnen des Bogens ändern)
    Retval = SetArcDirection(Me.hdc, AD_CLOCKWISE)
 
    ' Zweiten Bogen zeichnen (unten)
    Retval = ArcTo(.hdc, 20, 0, .ScaleWidth - 20, .ScaleHeight, 0,  _
    .ScaleHeight / 2, .ScaleWidth, .ScaleHeight / 2)
  End With
End Sub

Diese Seite wurde bereits 7.339 mal aufgerufen.

nach obenzurück
 
   

Druckansicht Druckansicht Copyright ©2000-2024 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