HBITMAP in HBITMAP
-
Hallo,
ich habe mal wieder ein Problem für das es sicher 20 verschiedene Lösungen gibt aber ich will eine bestimmte .. also.Ich arbeite nach wie vor an meiner WebCam-Objekterkennungssoftware und dabei stellte sich folgendes Problem.
Bei meinem Layout gebe ich bislang das aktuelle Bild (Livebild) aus auf dem ich erkannte das erkannte Objekt makiere.
Nun folgendes ... ich will so zu sagen einen screenshot von dem bild machen das die Kamera in dem Moment zeigt in dem ich F2 drücke und damit die Software alle Referenzdaten sammeln lasse.
Dieser Screenshot hat keinen praktischen Nutzen(soll also nicht weiter bearbeitet werden), sondern ist nur für den User als Erinnerung was denn sein Referenzobjekt war.
Zur Umsetzung:
bool b_ref_image=true; bool ref_image_dc_empty=true; memorydc=CreateCompatibleDC(hdc); oldbitmap=(HBITMAP)SelectObject(memorydc,D_backbitmap); BitBlt(hDC2,tabelle_x+20,tabelle_y+21,D_width,D_height,memorydc,0,0,SRCCOPY); if(b_ref_image) { if(ref_image_dc_empty) { ref_image_dc=memorydc; ref_image_dc_empty=false; } BitBlt(hDC2,tabelle_x+20+160+9,tabelle_y+21,D_width,D_height,ref_image_dc,0,0,SRCCOPY); }Bei diesem kleinen Ausschnitt wird der Screenshot kurz angezeigt und dann verschwindet er gleich wieder.
Es scheint so als würde das HDC ref_image_dc wieder gelöscht .. was es aber nicht soll.Als lösung dachte ich mir, dass ich das HBITMAP, dass ins memorydc gespeichert wird einfach in ein anderes HBITMAP speichere und dieses dann einfach nicht merh aktualisieren lasse sobald F2 gedrückt wurde.
ABER irgendwie klappts nicht.
Wie kann ich ein HBITMAP in ein anderes speichern?
denn einfach
ref_image = old_bitmap;hat nicht funktioniert.
Bin für alle Tipps dankbar.
DankeMISCHU