Hi
Ich verzweifel hier gerade absolut.
Imports Microsoft.DirectX
Imports Microsoft.DirectX.DirectDraw
Public Partial Class MainForm
Public Sub New()
' The Me.InitializeComponent call is required for Windows Forms designer
' support.
Me.InitializeComponent()
'
' TODO : Add constructor code after InitializeComponents
'
End Sub
Private sprite As Surface = Nothing
Private backbuffer As Surface = Nothing
Private primary As Surface = Nothing
Private GraphicsCard As device = Nothing
Sub MainFormLoad(ByVal sender As Object, ByVal e As EventArgs)
RUNIT()
End Sub
Public Sub InitializeGraphics()
GraphicsCard = New Device()
GraphicsCard.SetCooperativeLevel(Me, _
CooperativeLevelFlags.FullscreenExclusive)
GraphicsCard.SetDisplayMode(Screen.PrimaryScreen.Bounds.Width, _
Screen.PrimaryScreen.Bounds.Height, 16, 0, False)
Dim description As SurfaceDescription = New SurfaceDescription()
description.SurfaceCaps.PrimarySurface = True
description.SurfaceCaps.Flip = True
description.SurfaceCaps.Complex = True
description.BackBufferCount = 1
primary = New Surface(description, GraphicsCard)
Dim caps As New SurfaceCaps()
caps.BackBuffer = True
backbuffer = primary.GetAttachedSurface(caps)
sprite = New Surface("C:\grafik.png", description, _
GraphicsCard.GdiSurface.DrawDevice)
Dim ck As ColorKey = New ColorKey()
sprite.SetColorKey(ColorKeyFlags.SourceDraw, ck)
description = Nothing
caps = Nothing
ck = Nothing
End Sub
Sub RUNIT()
Me.Show()
InitializeGraphics()
Do While Me.Created
Try
backbuffer.ColorFill(0)
backbuffer.DrawFast(0,0, sprite, DrawFastFlags.DoNotWait Or _
DrawFastFlags.SourceColorKey)
primary.Flip(backbuffer, FlipFlags.DoNotWait)
Catch
End Try
Application.DoEvents()
Loop
End Sub
End Class Der Code ist von einem Tutorial. Trotzdem krieg ich in der Markierten Zeile (Zeile 37, die mit den >>> davor) den Fehler "Der Wert liegt außerhalb des erwarteten Bereichs".
Google liefert mir keine Lösung.
Gibt es ne andere Möglichkeit, eine PNG-, Gif- oder BMP-Grafik auf den Bildschirm zu zeichnen? (Vorzugsweise immer im Vordergrund OHNE Auflösungsänderung. und dass man in den "transparenten bereichen" durchklicken kann. (Unter Win7 und Vista gibts da dicke Probleme))
Ich hoffe, da kann mir wer helfen ._. |