ressourcen(gif) zur laufzeit laden
-
Ich habe ein paar ressourcen mit bestimmten id's in meinen projekt und möchte zur laufzeit z.B. ein neues gif-Bild per Pfadangabe in die ressource ID_xyz laden und damit arbeiten usw. wie geht das?
thx im vorraus
-
Hi,
Hinweis:
weiß nicht, ob es dir was hilft, aber du kannst die Ressourcen einer .exe oder .dll Datei mit folgenden Funktionen manipulieren:BeginUpdateResource(); UpdateResource(); EndUpdateResource();Dann:
Wieso willst du das Gifbild als Ressource?
Es gibt doch genügend Klassen, die Bilder laden und anzeigen können
Grüße Rapha
-
...genau so etwas suche ich, Rapha!
Ich habe ca. 70 verschiedene Bitmaps - je nach Bedingung will ich die entsprechende Bitmap auf mein Button "erscheinen lassen".
Ich suche nach so etwas wie "Lade-Bitmap-Aus-bmp-File-Funktion".
-
Hi,
kein Problem, dafür gibts die WinApi Funktion LoadImageHANDLE LoadImage( HINSTANCE hinst, // handle of the instance containing the image LPCTSTR lpszName, // name or identifier of image UINT uType, // type of image int cxDesired, // desired width int cyDesired, // desired height UINT fuLoad // load flags );z.B. so:
HBITMAP hBitmap; hBitmap = (HBITMAP)LoadImage(NULL, szFilename, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE | LR_CREATEDIBSECTION | LR_DEFAULTSIZE); CBitmap MyBitmap; MyBitmap.Attach(hBitmap);Grüße Rapha
-
Danke!

-
Ich hätte nicht so voreilig sein sollen...

mit 'LoadImage' bekomme ich ein Handle zum Bitmap.
Rapha schrieb:
.
z.B. so:HBITMAP hBitmap; hBitmap = (HBITMAP)LoadImage(NULL, szFilename, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE | LR_CREATEDIBSECTION | LR_DEFAULTSIZE); CBitmap MyBitmap; MyBitmap.Attach(hBitmap);Grüße Rapha
Und mit 'Attach' kann ich mein Bitmap-File einer CBitmap-Variablen zuweisen, soweit so gut. Ich möchte das Bitmap-Bild allerdings auf einem Button "kleben"
(am liebsten wäre mir ein Button vom Typ CBitmapButton). Aber das habe ich bisher nicht geschafft. Kann mir jemand einen Hinweis geben?
-
Dazu musst du die Bitmapvariable als eine Membervariable erstellen (dass sie auch die ganze Zeit verfügbar bleibt und nicht gelöscht wird).
Dann machst du einfach soetwas (IDC_BUTTON = ID des Buttons; m_Bitmap = Bitmap)(vorher nicht vergessen den Style des Buttons auf Bitmap umzustellen):CButton* pButton = (CButton*) GetDlgItem(IDC_BUTTON); pButton->SetBitmap((HBITMAP)m_Bitmap);Grüße Rapha
ps. Irgendwann solltest du das Bitmap noch mit m_Bitmap->DeleteObject() löschen
-
Es geht darum ich hab eine Funktion gefunden, welche mir die gif-Bilder aus den Ressourcen so wie ich will anzeigt, aber diese Funktion benötigt eben diese Ressourcen; und genau die will ich zur Laufzeit ändern. Also brache ich sowas wie "Lada Pfad/Datei.gif in die Ressource IDC_XYZ".
Es wäre genial, wenn es sowas irgendwo gibt.bitte sagt nicht, das geht nicht

Oder kennt ihr was bessere was mehrer gif Bilder transparent über einander malen kann? Ich hab tagelang danach gesucht und bin froh endlich was gefunden zu haben, nur eben die ressourcen...