Jonas Skrevet 14. desember 2004 Del Skrevet 14. desember 2004 (endret) Heisann Driver å tester ut PlgBlt-funksjonen her nå, men får det ikke helt til. Som jeg har skjønt skal jeg skrive fargen på "maske-fargen" i bildet, på hbmMask. Er det riktig? Kan det umulig være siden det ikke funker Noen som vet hvordan jeg gjør det? http://www.Planet-Source-Code.com/vb/scrip...=13868&lngWId=1 http://msdn.microsoft.com/library/default....itmaps_2dis.asp Jonas Edit: Ta vedlegget som eksempel. Den lilla fargen er 16744577, men denne koden virker ikke: PlgBlt picDST.hDC, Pts(0), picSRC.hDC, 0, 0, picSRC.ScaleWidth, picSRC.ScaleHeight, 16744577, 0, 0 Edit: Ser ut som man må trykke på bildet for å se det. Endret 14. desember 2004 av Jonas Lenke til kommentar
aadnk Skrevet 15. desember 2004 Del Skrevet 15. desember 2004 Jeg tror du har misforstått denne paramenteren. I følge MSDN skal den peke til et svart-hvit bilde, som vist her: hbmMask [in] Handle to an optional monochrome bitmap that is used to mask the colors of the source rectangle. [...] If the bitmask exists, a value of one in the mask indicates that the source pixel color should be copied to the destination. A value of zero in the mask indicates that the destination pixel color is not to be changed. If the mask rectangle is smaller than the source and destination rectangles, the function replicates the mask pattern. Et slikt bilde kan være omtrent som dette: Lenke til kommentar
Jonas Skrevet 15. desember 2004 Forfatter Del Skrevet 15. desember 2004 (endret) Peke med .Hdc da? Vedlegget er Picture1, og dette er koden: PlgBlt picDST.hDC, Pts(0), picSRC.hDC, 0, 0, picSRC.ScaleWidth, picSRC.ScaleHeight, Picture1.hDC, 0, 0 Men fortsatt vises ingen ting. Hva er galt nå? Edit: Vedlegg-funksjonen borte!?!? Edit: Lastet opp bildet: Endret 15. desember 2004 av Jonas Lenke til kommentar
aadnk Skrevet 15. desember 2004 Del Skrevet 15. desember 2004 Det later til at VB automatisk konverterer enfargete bilder om til flerfargete, slik at du dessverre må gjøre dette selv. Se bare på følgende eksempel: Option Explicit Private Declare Function PlgBlt Lib "gdi32" (ByVal hdcDest As Long, lpPoint As POINTAPI, ByVal hdcSrc As Long, ByVal nXSrc As Long, ByVal nYSrc As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hbmMask As Long, ByVal xMask As Long, ByVal yMask As Long) As Long Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long Private Declare Function CreateBitmap Lib "gdi32" (ByVal nWidth As Long, ByVal nHeight As Long, ByVal nPlanes As Long, ByVal nBitCount As Long, lpBits As Any) As Long Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long Private Type POINTAPI x As Long y As Long End Type Dim lBitmap As Long Private Sub Form_Load() Dim Bits() As Long, Tell As Long Randomize ReDim Bits(90000 / 32 + 1) For Tell = LBound(Bits) To UBound(Bits) Bits(Tell) = Rnd * vbWhite Next lBitmap = CreateBitmap(300, 300, 1, 1, Bits(0)) End Sub Private Sub Form_Paint() Dim Pt(0 To 2) As POINTAPI 'set the coördinates of the parallelogram Pt(0).x = 30 Pt(0).y = 10 Pt(1).x = 300 Pt(1).y = 0 Pt(2).x = 0 Pt(2).y = 300 PlgBlt Me.hdc, Pt(0), GetDC(0), 0, 0, 300, 300, lBitmap, 0, 0 End Sub Private Sub Form_Unload(Cancel As Integer) DeleteObject lBitmap End Sub Her skaper jeg bildet dynamisk, og ved hjelp av CreateBitmap og Rnd()-funskjonen; og da fungerer det hele ypperlig. Men jeg er ikke sikker på hva du kan gjøre videre. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå