Das hab ich leider befürchtet, dass ich mein Problem nicht richtig beschreiben kann.
http://www.xtreme-simpsons.de/jack/beispiel2.jpg
Auf diesem Bild sieht man oben meine gesamte Region - soll eine Berglandschaft darstellen.
Der rotumrandete Teil, soll ausgeschnitten und in meiner Form dargestellt werden.
Das Ergebnis wäre richtig, wenn das dick rotumrandete Bild rauskäme (wie gesagt, der ausgeschnittene Teil der Region passt). Leider kommt als Ergebnis meines Codes aber das duck blauumrandete raus.
Die "Textur" stimmt nicht, die wird nicht mit ausgeschnitten.
Code habe ich folgenden Verwendet. Ich hoffe, es ist nachvollziehbar was ich hier mache. Übersicht ist nicht gerade meine Stärke. Ich hab die Declarationen der Funktionen weggelassen, da ich sonst hier die Obergrenze des Textes überschritten hätte.
Private screenshow_region As Long
Private screensize_region As Long
Private hintergrund_region As Long
Private hBrush As Long
Private camera_x As Single
Private camera_y As Single
Private Sub Form_Load()
Dim hBitmap As Long
Dim Retval As Long
Me.AutoRedraw = True
camera_x = 100
camera_y = 250
'Hintergrundmuster erstellen
hBitmap = LoadImage(App.hInstance, "C:\hintergrund.bmp", 0, 300, 300, &H10)
hBrush = CreatePatternBrush(hBitmap)
hintergrund_region = CreateRectRgn(0, 0, 0, 0)
screensize_region = CreateRectRgn(0, 0, 250, 250)
screenshow_region = CreateRectRgn(0, 0, 0, 0)
Dim figure(23) As POINTAPI
figure(0).x = 0
figure(0).y = 456
figure(1).x = 67
figure(1).y = 411
figure(2).x = 129
figure(2).y = 414
figure(3).x = 138
figure(3).y = 372
figure(4).x = 198
figure(4).y = 364
figure(5).x = 264
figure(5).y = 351
figure(6).x = 321
figure(6).y = 326
figure(7).x = 348
figure(7).y = 294
figure(8).x = 415
figure(8).y = 294
figure(9).x = 468
figure(9).y = 321
figure(10).x = 511
figure(10).y = 350
figure(11).x = 557
figure(11).y = 351
figure(12).x = 616
figure(12).y = 351
figure(13).x = 671
figure(13).y = 308
figure(14).x = 694
figure(14).y = 250
figure(15).x = 727
figure(15).y = 246
figure(16).x = 742
figure(16).y = 202
figure(17).x = 774
figure(17).y = 202
figure(18).x = 816
figure(18).y = 143
figure(19).x = 854
figure(19).y = 141
figure(20).x = 885
figure(20).y = 105
figure(21).x = 912
figure(21).y = 82
figure(22).x = 1511
figure(22).y = 520
figure(23).x = 3
figure(23).y = 519
hintergrund_region = CreatePolygonRgn(figure(0), 24, 1)
show_hintergrund
End Sub
Private Sub show_hintergrund()
Me.Cls
screensize_region = CreateRectRgn(0, 0, 250, 250)
screenshow_region = CreateRectRgn(0, 0, 0, 0)
hOldBrush = SelectObject(Me.hdc, hBrush)
Call OffsetRgn(screensize_region, camera_x, camera_y)
CombineRgn screenshow_region, hintergrund_region, screensize_region, 1
Call OffsetRgn(screenshow_region, -camera_x, -camera_y)
Call PaintRgn(Me.hdc, screenshow_region)
End Sub Unkraut vergeht nicht |