Dialog - JPG,GIF in Dialog anzeigen (die lösung)
-
Hi,
Hab mal ne bisschen herrumexperimentiert und hier ist meine Lösung:Header:
#include "afxctl.h" . . . IPicture *m_bild; void DrawBild(IPicture *bild);
cpp:
void CMyClass::DrawBild(IPicture *bild) { CClientDC dc(this); CRect rc; GetClientRect(&rc); OLE_XSIZE_HIMETRIC width; OLE_YSIZE_HIMETRIC height; bild->get_Width(&width); bild->get_Height(&height); bild->Render(dc, x, y, size_x, size_y, 0, height, width, -height, &rc); }
So die funktion solltet Ihr etwas Zeitverzögert starten !
Damit das Bild in der Variable gespeichert wird einfach folgendes machen:OleLoadPicturePath(L"Pfad_zur_Datei", 0, 0, 0, IID_IPicture,(void **)&m_bild);
--------------
Übrigens das klappt auch mit gif/jpg Dateien die auf einem Server liegen !
Nicht vergessen das es nur klappt mit MFC !
Bye !
Razy[ Dieser Beitrag wurde am 20.07.2002 um 22:59 Uhr von dEUs editiert. ]
-
Ist noch nicht ganz FAQ-würdig
1.) Beim Posten bitte Code-Tags verwenden.
2.) was ist x, y, size_x, size_y ?
3.) In was für ner Einheit bigt get_Width bzw get_Height die Grössen zurück? In Pixel sicher nicht!
4.) Wie bekommt man die Grösse in Pixel ?
-
1.) Beim Posten bitte Code-Tags verwenden.
2.) was ist x, y, size_x, size_y ?
3.) In was für ner Einheit bigt get_Width bzw get_Height die Grössen zurück? In Pixel sicher nicht!
4.) Wie bekommt man die Grösse in Pixel ?OK, fang ich mal an:
1. Sorry,
2.
x,y= Startprosition von den Bildchen.
size_x,size_y = Größe und Weite von den Bildchen.
3.HIMETRIC (1xHIMETRIC = 0.01ml)
4.96punkte=1zoll=2540 HIMETRICint Pixel=(2540/96)*HIMETRIC
(wobei HIMETRIC die jeweilige HIMETRIC größe ist...)
-
De Formel stimmt nicht. Sie muss so heissen:
int nPixel = HIMETRIC*96/2540;
So, jetzt kann man ihn in die FAQ packen
-
So, hier noch eine Ergänzung: http://www.c-plusplus.net/forum/viewtopic-var-t-is-167656.html
Da findet man, wie man den Pfad auch auch einem CString rausholen kann und wie man den Speicher aufräumt.