Ich hab etwas gesucht aber nicht so richtig was gefunden. Also ich will ein Bild im Hintergrund des Fensters erstellen. Hab StretchBlt und BitBlt ausprobiert, doch hat nicht so richtig geklappt. Kann mir jemand helfen?
Hi, in Zeiten von GDI+ und IPicture solltest du dich nicht mehr mit so nem LowLevel Kram rumärgern. Such mal nach IPicture(LPPICTURE) oder GDI+(Image und Graphics). Damit bist du wesentlich flexibler weil IPicture jedes Format anzeigen kann und du dich nicht mehr mit den verschiedenen Versionen der Bitmap-Header abgeben musst.
MfG Spacelord -- .....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.
Ich hab eine Klasse (nicht IPicture, dafür aber 6Kb groß ) gefunden die bmp, gif, jpg und wmf darstellen kann. In dem Beispiel wird nur in eine Image-Steuerelement dargestellt. Ich will es aber frei auf dem Fester darstellen können. Jetzt aber zurück zu meiner Frage: wie geht das?
Deine gefundene Klasse kapselt sogar mit Sicherheit IPicture! Such mal weiter,da gibt es etliche von und mit der original IPicture Anzeigemethode Render lässt sich das Bild an jede Stelle des Bildschirms zeichnen also wirst du auch ganz ganz bestimmt ne fertige Klasse finden die das kann. Zum Beispiel die beiden GDI+ Klassen Image und Graphics erledigen das. Bei Code Guru gibt es auch Klassen die IPicture kapseln. www.codeguru.com/Cpp/G-M/bitmap/article.php/c4903/
Ich bin mir sehr sicher dass es weder IPicture ist noch dass es kapselt. Hier der Link für Ungläubige: http://radasm.visualassembler.com/projects/Image.zip (Da sind auch noch andere Sachen dabei. Muss man unter LoadPic gucken) Die Klasse ist in Assembler geschrieben (und schon compiliert ). Das ist aber unwichtig, denn eine lib Datei kann man für fast alle Programmiersprachen nutzen, oder? Das einzige was man machen muss, ist eine Header-Datei zu schreiben, die drei Funktionen definiert.
Danke für die Links, ich werde die mal prüfen.
mfg A-l-e-xDieser Post wurde am 30.04.2005 um 20:59 Uhr von A-l-e-x editiert.
Wie meinst du das? Vom Prinzip her kannst du dir die Links anschauen die ich weiter oben gepostet hab. Das Prinzip ist immer das Gleiche. Du besorgst dir mit GlobalAlloc Speicherplatz für dein Bild und lädst dein Bild da rein. Wenn es ne Resource ist erledigt das FindResource,LoadBitmap etc. Wenn du dann nen HGLOBAL hast(egal wie du dran gekommen bist) musst du dir mit mit CreateStreamOnHGlobal nen Zeiger auf nen IStream besorgen. Dann hast du eigentlich schon alles zusammen um mit OleLoadPicture für einen IPicture Pointer eine Instanz zu erzeugen.
MfG Spacelord -- .....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.Dieser Post wurde am 05.05.2005 um 16:36 Uhr von Spacelord editiert.