Guybrush Threepwood Geschrieben 10. Dezember 2002 Geschrieben 10. Dezember 2002 Hi, wenn ich mit MSVC++ 6 im Resourceneditor einen Dialog erstelle, kann ich ja einen Bilderrahmen dareinziehen und diesem dann ein Bitmap aus den Projektresourcen zuweisen welches dann darin dargestellt wird. Kann ich dieses Bild während das Programm läuft durch ein anderes auf der Festplatte erstzen, also das ich ihm nur sage welches und er es dann anzeigt? Oder muß ich das Bild selber laden und per GDI darstellen? Gruß Guybrush
Klotzkopp Geschrieben 11. Dezember 2002 Geschrieben 11. Dezember 2002 Selbst laden musst Du sie, und zwar mit LoadBitmap. Anzeigen kannst Du sie mit CStatic::SetBitmap (oder STM_SETIMAGE, falls Du die MFC nicht verwendest).
Guybrush Threepwood Geschrieben 13. Dezember 2002 Autor Geschrieben 13. Dezember 2002 Ah, danke. Aber ich hab im Moment ein Problem mit LoadBitmap, irgendwie meint GetLastError() immer das diese Funktion nur im Win32 Modus verfügbar ist, da ich mein Programm aber mit WinMain gestartet habe ist es doch ein Win32 Programm oder nicht? Hier mal die Funktion: HDC hDest,hSrc; HBITMAP hBitmap; hBitmap = LoadBitmap(0,"c:\\test.bmp"); Fehler("LoadBitmap",GetLastError()); if (hBitmap == NULL) hBitmap = LoadBitmap(hInst,MAKEINTRESOURCE(IDB_BITMAP1)); hDest = GetDC(hMainWindow); hSrc = CreateCompatibleDC(hDest); SelectObject(hSrc,hBitmap); BitBlt(hDest,10,105,200,80,hSrc,0,0,SRCCOPY); ReleaseDC(hMainWindow,hDest); DeleteDC(hSrc); DeleteObject(hBitmap); } [/PHP] Gruß Guybrush
Klotzkopp Geschrieben 13. Dezember 2002 Geschrieben 13. Dezember 2002 Mit LoadBitmap habe ich es irgendwie auch nicht hinbekommen. Aber mit LoadImage geht es: hBitmap = (HBITMAP) ::LoadImage( 0, "c:\\test.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE );
Guybrush Threepwood Geschrieben 13. Dezember 2002 Autor Geschrieben 13. Dezember 2002 Wenn ich LoadBitmap durch LoadImage ersetze tritt der selbe Fehler auf, aber das Bild wird trotzdem geladen. Es klappt also... irgendwie.
Guybrush Threepwood Geschrieben 13. Dezember 2002 Autor Geschrieben 13. Dezember 2002 Wie kann ich denn die Größe des Images feststellen? Ich hatte mir überlegt mit CreateCompatibleBitmap() ein HBITMAP von dem Image zu erstellen und dann die Funktion GetBitmapDimensionEx() zu benutzen, allerdings brauche ich bei CreateCompatibleBitmap() auch schon die Größe des Images.
Guybrush Threepwood Geschrieben 13. Dezember 2002 Autor Geschrieben 13. Dezember 2002 Wenn ich das HANDLE zu einem HBITMAP caste und dann versuche mit GetBitmapDimensionEx() die Größe festzustellen kommt wieder die Fehlermeldung das diese Funktion nur im Win32 Modus verfügbar ist.:confused:
Guybrush Threepwood Geschrieben 13. Dezember 2002 Autor Geschrieben 13. Dezember 2002 120 Ich habe gerade rausgefunden das wenn ich die Funktionen erst später aufrufe der Fehler nicht mehr auftritt, aber die SIZE Struktur bleibt trozdem leer. Bisher habe ich die GDI Funktionen immer direkt nach ShowWindow() (also nachdem das Hauptfenster erstellt und angezeigt wurde) aufgerufen.
Guybrush Threepwood Geschrieben 13. Dezember 2002 Autor Geschrieben 13. Dezember 2002 Ok, Problem gelöst:D GetBitmapDimensionEX() war die falsche Funktion, anscheinend gibt sie nur die Werte zurück die vorher mit SetBitmapDimensionEx() gesetzt wurden.? Um die Höhe und Breite eines Bitmaps zu ermitteln braucht man GetObject(). Gruß Guybrsuh
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden