Hallo Reinhard,
mir ist noch eingefallen, daß ich Dich am Anfang mal gefragt habe, ob Du direkt in die Picturebox printest.
Ich habe jetzt drei exakt gleich große Pictureboxen auf der Form und habe das mit dem Printen in die Picturebox mal ausprobiert.
Ist das die Liste, die Du gesucht hast?
Gruß Rainer
Option Explicit
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Any, pSrc As Any, ByVal ByteLen As Long)
Private Type BITMAP
bmType As Long
bmWidth As Long
bmHeight As Long
bmWidthBytes As Long
bmPlanes As Integer
bmBitsPixel As Integer
bmBits As Long
End Type
Private Declare Function GetObject Lib "gdi32" Alias "GetObjectA" (ByVal hObject As Long, ByVal nCount As Long, lpObject As Any) As Long
Private Declare Function GetBitmapBits Lib "gdi32" (ByVal hBitmap As Long, ByVal dwCount As Long, lpBits As Any) As Long
Dim PicBits1() As Byte, PicInfo As BITMAP
Dim PicBits2() As Byte
Dim PicBits3() As Byte
Dim Txt1 As String, Txt2 As String, Txt3 As String, Pfd As String
Dim Cnt As Long, BytesPerLine As Long
Private Sub Command1\_Click()
Dim i As Long
Dim Na As String
Dim ff As Integer
GetObject Picture1.Image, Len(PicInfo), PicInfo
BytesPerLine = (PicInfo.bmWidth \* 3 + 3) And &HFFFFFFFC
ReDim PicBits1(1 To BytesPerLine \* PicInfo.bmHeight \* 3) As Byte
GetBitmapBits Picture1.Image, UBound(PicBits1), PicBits1(1)
Txt1 = Space((UBound(PicBits1) + 1) \ 2)
CopyMemory ByVal StrPtr(Txt1), PicBits1(1), UBound(PicBits1)
GetObject Picture3.Image, Len(PicInfo), PicInfo
BytesPerLine = (PicInfo.bmWidth \* 3 + 3) And &HFFFFFFFC
ReDim PicBits3(1 To BytesPerLine \* PicInfo.bmHeight \* 3) As Byte
GetBitmapBits Picture3.Image, UBound(PicBits3), PicBits3(1)
Txt3 = Space((UBound(PicBits3) + 1) \ 2)
CopyMemory ByVal StrPtr(Txt3), PicBits3(1), UBound(PicBits3)
For i = 0 To 65535
Picture2.Cls
Picture2.CurrentX = 30
Picture2.CurrentY = 30
Picture2.Print ChrW(i)
GetObject Picture2.Image, Len(PicInfo), PicInfo
BytesPerLine = (PicInfo.bmWidth \* 3 + 3) And &HFFFFFFFC
ReDim PicBits2(1 To BytesPerLine \* PicInfo.bmHeight \* 3) As Byte
GetBitmapBits Picture2.Image, UBound(PicBits2), PicBits2(1)
Txt2 = Space((UBound(PicBits2) + 1) \ 2)
CopyMemory ByVal StrPtr(Txt2), PicBits2(1), UBound(PicBits2)
If Txt1 = Txt2 Or Txt3 = Txt2 Then
Else
List1.AddItem CStr(i) & " " & ChrW(i)
End If
Next
End Sub
Private Sub Form\_Load()
Me.Show
Picture1.Cls
Picture1.CurrentX = 30
Picture1.CurrentY = 30
Picture1.Print ChrW(134)
Picture3.Cls
Picture3.CurrentX = 30
Picture3.CurrentY = 30
Picture3.Print ChrW(1)
End Sub