vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevAniGif - als kostenlose Vollversion auf unserer vb@rchiv CD Vol.5  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

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

Visual-Basic Einsteiger
Re: Drehbare und transparente Grafik über zweite Grafik in PictureBox 
Autor: Zardoz
Datum: 27.03.13 20:52

Hallo Michael,

Michael_HU schrieb:
Zitat:


Wenn diese Pixelgröße Probleme beim drehen vorbereitet, dann
kann ich das Original selbstverständlich unter 3000 Pixel
machen.

3000 Pixel sind ein Schätzwert. Du musst mal testen, was
möglich ist. Aber wie schon geschrieben, es gibt auch andere
Möglichkeiten.

Michael_HU schrieb:
Zitat:


Die ScaleMode vom Picture1 ist jetzt auf 0-User.

Unabhängig vom ScaleMode der Picturebox arbeiten die Api-Funktionen
immer mit Pixeln.

Michael_HU schrieb:
Zitat:


Ich möchte das bisherige
"Modullayout_Zeichnungsfläche" in rar hier
beilegen, womit Du alles siehst.
Weiß nicht, ob das so geht.

Das geht so nicht. Du kannst das Projekt bei einem Webhoster
hochladen und es dann hier verlinken, oder es mir per e-mail
schicken.

Hier ein Beispiel für Drehen um 180°:
' Controls: CommandButton, PictureBox
 
Private Declare Function SetStretchBltMode Lib "gdi32" (ByVal hdc As Long, _
  ByVal nStretchMode As Long) As Long
Private Declare Function StretchBlt Lib "gdi32" (ByVal hdc As Long, ByVal x As _
Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal _
hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal nSrcWidth As _
Long, ByVal nSrcHeight As Long, ByVal dwRop As Long) As Long
 
Private Const COLORONCOLOR = 3
Private Breite&, Hoehe&
 
Private Sub Form_Load()
 
  Dim Dat1$, TmpPic As StdPicture
 
  Me.ScaleMode = vbPixels
  Me.WindowState = vbMaximized
  Command1.Move 2, 2
  Dat1 = "C:\EinBild.jpeg" ' <- Pfad eines Bildes
  Set TmpPic = LoadPicture(Dat1)
  With Picture1
    .BorderStyle = vbBSNone
    .ScaleMode = vbPixels
    Breite = Int(0.5 + .ScaleX(TmpPic.Width, vbHimetric))
    Hoehe = Int(0.5 + .ScaleY(TmpPic.Height, vbHimetric))
    .Move 2, Command1.Height + 4, Breite, Hoehe
    .AutoRedraw = True
    .PaintPicture TmpPic, 0, 0
  End With
  Set TmpPic = LoadPicture()
 
End Sub
 
Private Sub Command1_Click()
 
  Dim OldMode&
 
  With Picture1
    OldMode = SetStretchBltMode(.hdc, COLORONCOLOR)
    Call StretchBlt(.hdc, Breite - 1, Hoehe - 1, -Breite, -Hoehe, _
      .hdc, 0, 0, Breite, Hoehe, vbSrcCopy)
    Call SetStretchBltMode(.hdc, OldMode)
    .Refresh
  End With
 
End Sub
Quelle und Ziel können bei SetStretchBlt verschieden sein.

Gruss,

Zardoz

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Drehbare und transparente Grafik über zweite Grafik in Pictu...1.422Michael_HU27.03.13 06:56
Re: Drehbare und transparente Grafik über zweite Grafik in P...1.013Zardoz27.03.13 16:02
Re: Drehbare und transparente Grafik über zweite Grafik in P...967Michael_HU27.03.13 17:44
Re: Drehbare und transparente Grafik über zweite Grafik in P...970Zardoz27.03.13 20:52
Re: Drehbare und transparente Grafik über zweite Grafik in P...963Michael_HU27.03.13 21:13
Re: Drehbare und transparente Grafik über zweite Grafik in P...970Michael_HU27.03.13 21:19
Re: Drehbare und transparente Grafik über zweite Grafik in P...956Michael_HU07.04.13 09:28

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-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