bitblt will nicht wie ich
-
hallo leute,
hab diesen code geschrieben um mir ein kleines logo links oben in ein größeres bild zu kopieren.//desktopauflösung ermitteln xres = GetSystemMetrics(SM_CXSCREEN); yres = GetSystemMetrics(SM_CYSCREEN); //memory bitmap erstellen memDC = CreateCompatibleDC ( NULL ); memBM = CreateCompatibleBitmap ( memDC, xres, yres ); SelectObject ( memDC, memBM ); //logo laden, 128 x 128 LogoBM = (HBITMAP)LoadImage(GetModuleHandle(NULL),"C:\\testlogo.bmp", IMAGE_BITMAP, 128, 128, LR_LOADFROMFILE); LogoDC = CreateCompatibleDC( NULL ); SelectObject(LogoDC, LogoBM); // test nr.1 -> wird ein schwarzes bitmap in desktopauflösung dc2bitmap(memDC, xres,yres,"C:\\test1.bmp"); // test nr.2 -> wird ein 128x128 bitmap mit dem logo dc2bitmap(LogoDC,128,128,"C:\\test2.bmp"); //Logo draufblitten geht anscheinend nicht ???? BitBlt(memDC,0,0,128,128,LogoDC,0,0,SRCCOPY); //test nr.3 -> wird nur ein schwarzes bitmpa in desktop auflösung //sollte aber links oben das logo drin sein, ist aber nicht :( dc2bitmap(memDC,xres,yres,"C:\\test3.bmp");die dc2bitmap-Funktion hab ich hier im Forums-FAQ gefunden.
hab grad keinen plan warum der test3.bmp kein logo links oben hat, sondern nur schwarz ist.
wer sieht einen fehler?
-
Das CreateCompatibleBitmap musst du mit einem "normalen" DC aufrufen - nicht mit deinem neu erstellten
