Bild öffnen - Wo ist es?



  • Hallo C++ler,

    hoffentlch könnt ihr mir auch bei diesem Problem behilflich sein.

    Also ich möchte ein Bild öffnen, dazu habe ich diese Funktion:
    http://nibel.bplaced.net/codes/openbmp.txt

    Es wird keine Fehlermeldung angezigt, das MessageBeep() wird abgespielt, aber trotzdem sehe ich kein Bild. Wird es von einem InvalidateRect() überschrieben?
    Angezeigt wird nichts, aber diese Datei ist sicher vorhanden und nicht weiß.

    Könnt ihr mir helfen 😞

    mfG Nibel



  • und für was braucht man das wenn es die Klasse CImagegibt?

    des weiteren solltest du schaun ob deine übergebenen Handles auch die richtigen sind.

    HDC hWinDC wird übergeben um daraus nen compatiblen DC zu erstellen warum wird da kein DesktopDC (NULL) oder der DC des übergebenen Windows verwendet des weiteren ist der übergebene DC auch der DC deines Zielbereiches, also wo du reinzeichnen willst.

    Warum benutzt du in MFC WinAPI, das ist zwar möglich, aber du zeichnest schon mal nicht MFC-Klonform was zu lustigen sachen führen kann, das zum beispiel dein bild nicht zu sehehn ist oder nur kurz und wenn der bereich überdeckt wird is dein Bild wieder weg. Also zu viele Fragen als das man einfach sagen kann an der stelle im code ist der fehler



  • Also die Handles sind korrekt, ich hab szFileName auch mit MessageBoxes ausgegeben

    HDC hWinDC ist der DC des Fenster in dem das erstellt wird, damit man es dort direkt ausgeben kann.

    Im Internet findet man eher WinAPI ich finde das auch besser, falls man mit anderen Compilern arbeiten soll/will. Ich hab jetzt aber auch ein gutes Tut zu Bildern bei der MFC gefunden... Ich probiers mal aus



  • Schau doch einfach in die Hilfe.
    Da gibt es ein Beispielprojekt zur Klasse CImage.

    SimpleImage heist es und ist auch über MSDN verfügbar.
    http://msdn.microsoft.com/de-de/library/ms177536.aspx



  • weil ich aber keine <afx.h> oder <afxwin.h> und ähnliche afx includes habe und diese bisher auch nicht finden konnte, funktionieren die meisten C - Klassen nicht...

    Egal das Problem hat sich jetzt selbst gelöst, ich rufe es jetzt erst in der WM_PAINT auf, nicht mehr in der zugehörigen Dialogfunktion, das war der Fehler, es wird sofort überzeichnet. Das hatte ich aber auch gefragt^^



  • weil ich aber keine <afx.h> oder <afxwin.h> und ähnliche afx includes habe und diese bisher auch nicht finden konnte, funktionieren die meisten C - Klassen nicht...

    Bist du dir sicher dass du Visual Studio mit MFC verwendest?
    Denn da sind diese Includes dabei.
    CImage ist seit Visual Studio 2003 (VS 7.1) dabei und es muß soviel ich mich erinnere nur atlstring.h und atlimage.h eingebunden werden.

    Was du machst hört sich danach an, als ob es eigentlich in WinAPI hin gehört hätte.



  • Ich benutze Microsoft Visual C++ 2008 Express Edition... Müsste doch dabei sein.
    Ja ich weiß das ist mir hinterher auch aufgefallen


  • Mod

    Nein! In der Express Edition ist keine MFC mit dabei!



  • oh Vielen dank, das wusst ich nicht. Die anderen sind doch kostenpflichtig oder?



  • Ja.
    Die ist ist kostenpflichtig.

    Mit der Express-Version bist du im WinAPI-Bereich aufgehoben.


Log in to reply