Nii, että ongelma on yksinkertaisuudessaan tälläinen:
Pitäisi saada kopioitua yhdestä bitmapista toiseen bitmappiin tietty kohta.
Jos joku avulias voisi vaikka pastettaa koodiesimerkin tms.
BitBlt kopioi HDC:ltä toiselle. Jos tarkentaisit ongelmaasi hieman, auttaminen voisi olla helpompaa. Siis missä nämä bitmapit ovat? Oletko ladannut ne muistiin?
Mikäli olet saanut aikaan kaksi HBITMAPia, homma näyttää tältä:
// Omistat jo: // HBITMAP Kuva_Jolle_Piirretaan, Kuva_Josta_Piirretaan; int Leveys, Korkeus, X, Y, LahteenX, LahteenY; HDC hdc1, hdc2; HBITMAP Temp1, Temp2; Temp1 = (HBITMAP)SelectObject(hdc1, Kuva_Jolle_Piirretaan); Temp2 = (HBITMAP)SelectObject(hdc2, Kuva_Josta_Piirretaan); BitBlt(hdc1, X, Y, Leveys, Korkeus, hdc2, LahteenX, LahteenY, SRCCOPY); SelectObject(hdc1, Temp1); SelectObject(hdc2, Temp2); DeleteDC(hdc1); DeleteDC(hdc2);
Tällä siis piirretään kohtaan (X, Y) kuva, jonka mitat ovat (Leveys, Korkeus) ja joka otetaan alkaen toisen kuvan kohdasta (LahteenX, LahteenY).
Muistathan, että Y-koordinaatit kasvavat alaspäin.
Kiitti, toi autto. Lähinnä se ongelma oli tossa Hdc:n alustamisessa tai jotain sellast...
Hyvä jos auttoi. Tuosta näköjään unohtui nämä:
hdc1 = CreateCompatibleDC(GetDC(hWnd)); hdc2 = CreateCompatibleDC(GetDC(hWnd));
Aihe on jo aika vanha, joten et voi enää vastata siihen.