Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » CreateCompatibleBitmap immer Schwarz???

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
16.04.2020, 10:14 Uhr
Mike85Dev



Hallo,

ich zeichne in einen DC um den dann später als ganzes in einen anderen DC zu
übertragen, aber ich bekomm immer nur ein Schwarzes Bild?

HDC hdc = GetWindowDC(hwnd);
HDC hdcMem = CreateCompatibleDC(hdc);
HDC hdcTmp = CreateCompatibleDC(hdc);

RECT r; GetWindowRect(hwnd,&r);
BITMAP bitmap;
GetObject (bmpTitlebar, sizeof (BITMAP), &bitmap);

HBITMAP hbmMem = CreateCompatibleBitmap(hdc, r.right-r.left, bitmap.bmHeight);

HANDLE hOldTmp = SelectObject(hdcTmp,hbmMem);
HANDLE hOld = SelectObject(hdcMem,bmpTitlebar);

StretchBlt(hdcTmp, 70, 0, (r.right-r.left)-140, bitmap.bmHeight/2, hdcMem, (bitmap.bmWidth/2)-50, 0, 50, bitmap.bmHeight/2, SRCCOPY);
BitBlt(hdcTmp, 0, 0, 70, bitmap.bmHeight, hdcMem, 0, bitmap.bmHeight/2, SRCCOPY);
BitBlt(hdcTmp, (r.right-r.left)-140, 0, (r.right-r.left), bitmap.bmHeight, hdcMem, (bitmap.bmWidth/2)+13, bitmap.bmHeight/2, SRCCOPY);

BitBlt(hdc, 0, 0, r.right-r.left, bitmap.bmHeight, hdcTmp, 0, bitmap.bmHeight/2, SRCCOPY);


Weiß jemand Rat? Danke!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
17.04.2020, 13:14 Uhr
Tommix



Hallo

Zitat von MSDN:

When the memory DC is created, its display surface is exactly one monochrome pixel wide and one monochrome pixel high. Before an application can use a memory DC for drawing operations, it must select a bitmap of the correct width and height into the DC. To select a bitmap into a DC, use the CreateCompatibleBitmap function, specifying the height, width, and color organization required.

https://docs.microsoft.com/en-us/windows/win32/api/wingdi/nf-wingdi-createcompatibledc
Wobei es IMHO CreateBitmap statt CreateCompatibleBitmap heißen muß. Also irgenwas in der Richtung:

C++:
HBITMAP hbmMem = CreateBitmap(r.right-r.left, bitmap.bmHeight, 1, 32, NULL);


Gruß, Tommix

Dieser Post wurde am 17.04.2020 um 13:17 Uhr von Tommix editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: