Anno1989
Bekanntes Mitglied
Hi, ich habe die Abmessungen, also Höhe und Breite einer Bitmap und habe das Array, indem die Bitmap gespeichert ist,(color array?).
Wie kann ich nun den Inhalt des Arrays auf mein Fenster in ein rect ausgeben?
Das hier befindet sich in einem Thread, die WM_PAINT Nachricht aber in WinMain:
Beim Thread aufruf übergebe ich hdcPaint an den Thread, bzw. hab es auch versuch hdcPaint global zu deklarieren. Aber es klappt irgendwie nicht.
Kann mir jemand sagen, wieso?
Ich habe den Code mal so kommentiert, wie ich die Abläufe verstehe, oder auch nicht...
Wie kann ich nun den Inhalt des Arrays auf mein Fenster in ein rect ausgeben?
Code:
HBITMAP hbmDesktop = CreateBitmap(iImageWidth, iImageHeight, 1,3, pdata2); //pdata2 ist das array mit den Daten
hdcDesktop = CreateCompatibleDC(NULL); //Da es ein Screenshot ist dachte ich, ich pass dann den Typ hiermit an
SelectObject(hdcDesktop, hbmDesktop); //In hdcDesktop kopieren
BitBlt(hdcPaint, rect.left, rect.bottom, (rect.right - rect.left), rect.bottom - rect.top, hdcDesktop, 0,0, SRCCOPY);
//hdcDesktop in hdcPaint mit den abmaßen des Rechtecks im Fenster schreiben.
Code:
case WM_PAINT:
{
PAINTSTRUCT ps;
hdcPaint = BeginPaint(hWnd, &ps);
{
//Hier weiß ich nicht, was da rein muss....
UpdateWindow(hWnd2;
}
EndPaint(hWnd, &ps);
return 0;
}
Kann mir jemand sagen, wieso?
Ich habe den Code mal so kommentiert, wie ich die Abläufe verstehe, oder auch nicht...