Bild darstellen
-
CDC ist eine MFC-Klasse. Dazu müsstest du also ein MFC-Projekt erstellen, so dass die entsprechenden Header eingebunden sind. Wenn m_picture nicht deklariert wurde, hast du wohl die Deklaration vergessen!
-
danke, ich hab aber ein win32 projekt erstellt.
Kann ich die nachträglich irgendwie dazutun?
Oder muss ich ien neues MFC projekt starten?
Wie deklariere ich den picture?
Ich weiß ja nicht mal welche Variable das ist, weil sie im beispielcode nicht deklariert ist t.t
-
cximage schrieb:
danke, ich hab aber ein win32 projekt erstellt.
Kann ich die nachträglich irgendwie dazutun?
Oder muss ich ien neues MFC projekt starten?
Wie deklariere ich den picture?
Ich weiß ja nicht mal welche Variable das ist, weil sie im beispielcode nicht deklariert ist t.tJa, starte ein MFC-Projekt!
Woher sollen wir das wissen? Könnte eine PictureBox (also CStatic) sein, die hat ne Methode SetBitmap. Könnte auch was ganz anderes sein...
-
ich kann nicht ein neues Projekt starten dann muss ich mir ne lib suchen die kein MFC braucht. Kennt zufällig wer eine wo man jpgs darstellen kann?
(will ned direkt winapi)
-
Dem von dir geposteten Code zufolge brauchst du doch gar keine MFC. Sie werden lediglich in dem Beispiel verwendet...
Mit Nachdenken kommt man da auch ohne MFC-Kenntnisse drauf (da könnten jetzt einige Fehler bei der Anzahl der Funktionsargumente sein, bin nicht mehr so bewandert damit):
HDC hDC = GetDC(hWnd); // irgendein DC, entweder durch GetDC, CreateDC oder BeginPaint bekommen...bei letzterem EndPaint nicht vergessen! HBITMAP m_bitmap = NULL; CxImage image("myfile.png", CXIMAGE_FORMAT_PNG); ... // jetzt mach irgendwas mit der Bitmap... z.B. BitBlt // und freigeben ReleaseDC(hWnd, hDC); DeleteObject(m_bitmap);
-
habs mal versucht geht aber nicht

Hab erst das jpg in bmp umgewandelt(das geht) und dann versucht darzustellen:(aufm bildschirm)CxImage image; image.Load(Filename.c_str(), CXIMAGE_FORMAT_JPG); if (image.IsValid()){ image.Save("image.bmp",CXIMAGE_FORMAT_BMP); CxImage image1("image.bmp", CXIMAGE_FORMAT_BMP); HBITMAP m_bitmap = image1.MakeBitmap(0); HDC hdcMem = CreateCompatibleDC (hDC) ; SelectObject (hDC, m_bitmap) ; BitBlt(hDC, 0, 0, 1000, 1000, hdcMem, 0, 0, SRCCOPY);geht aber ned

-
omg schrieb:
geht aber ned

Sehr präzise Fehlerbeschreibung!

-
sry, es zeigt sich halt einfach kein Bild.
-
hier noch wie ich den handle hole:
HDC hDC = GetDC(0); // irgendein DC, entweder durch GetDC, CreateDC oder BeginPaint bekommen...bei letzterem EndPaint nicht vergessen! CxImage image; image.Load(Filename.c_str(), CXIMAGE_FORMAT_JPG); if (image.IsValid()){ image.Save("image.bmp",CXIMAGE_FORMAT_BMP); CxImage image1("image.bmp", CXIMAGE_FORMAT_BMP); HBITMAP m_bitmap = image1.MakeBitmap(0); HDC hdcMem = CreateCompatibleDC (hDC) ; SelectObject (hDC, m_bitmap) ; BitBlt(hDC, 0, 0, 1000, 1000, hdcMem, 0, 0, SRCCOPY); DeleteDC (hdcMem) ;
-
habs jetzt nochma mit der WINAPI probiert!
Der cximage teil funktioniert nur das darstellen nicht
irgendwo muss ein fehler drin sein. das program erstellt ein fenster namens Dialog in das es dargestellt werden soll!hDC = GetDC(FindWindow(0, "Dialog")); // irgendein DC, entweder durch GetDC, CreateDC oder BeginPaint bekommen...bei letzterem EndPaint nicht vergessen! image.Load(Filename.c_str(), CXIMAGE_FORMAT_JPG); image.Save("image.bmp",CXIMAGE_FORMAT_BMP); hBmp = (HBITMAP)LoadImage(NULL,"image.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE); SelectObject (hdcMem, hBmp) ; BitBlt(hDC, 0, 0, 200, 200, hDC, 0, 0, SRCCOPY); DeleteDC (hdcMem) ; ReleaseDC(0, hDC);
-
CreateCompatibleDC()