|
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
BD
Anmeldungsdatum: 15.01.2014 Beiträge: 38
|
Verfasst am: 15.01.2014, 13:19 Titel: Image verschiedene Bitmaps aus Ressource zuweisen |
|
|
Irgendwie stehe ich hier noch einmal vor einem sicherlich lösbaren Problem. In einem Dialog habe ich ein Image-Objekt und weise diesem vorab ein Bitmap aus der Ressource zu. Während des Programmablaufs möchte ich nun diesem Image-Objekt ein anderes Bitmap ebenfalls aus der Ressource zuweisen. Im Moment habe ich mir so beholfen, dass ich zwei übereinander liegende Image-Objekte benutze und diesen jeweils ein Bitmap im FBEdit zuweise. Im Programm schalte ich dann die Eigenschaft des einen oder anderen Image-Objektes auf sichtbar oder unsichtbar. Doch das Vorgehen ist nur eine Behelfslösung, da eine Zuordnung während des Programmablaufs doch auch möglich sein muss. Ich habe bereits in der WinAPI gesucht, habe aber nichts gefunden. Eine Vielzahl von Funktionsaufruf-Kandidaten brachten keinen Erfolg oder brachten das Programm zum Absturz.
Über einen Tipp würde ich mich freuen. |
|
Nach oben |
|
|
Jojo alter Rang
Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 15.01.2014, 15:54 Titel: |
|
|
LoadImage
Wie man ein mit LoadImage erzeugtes Bitmap dann auf das Fenster blitten kann, wird z.B. hier demonstriert. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
|
|
Nach oben |
|
|
BD
Anmeldungsdatum: 15.01.2014 Beiträge: 38
|
Verfasst am: 15.01.2014, 16:24 Titel: |
|
|
Danke für den Tipp mit LoadImage, aber es funktioniert nicht.
Im Beispiel ist das Laden aus einer Datei beschrieben. Ich habe nun folgendes umgesetzt, aber es klappt nicht:
Code: | LoadImage(GetDlgItem(hWin , 1004), "L_100" ,IMAGE_BITMAP,0,0, LR_COPYFROMRESOURCE) |
1004 ist das Image-Objekt im Dialog
"L_100" ist der Name des Bitmap in der Ressource
Was mache ich falsch?
Nachtrag: Auch das hier funktioniert nicht:
Code: | SendMessage (GetDlgItem(hWin , 1004), BM_SETIMAGE, 0, Cast( Integer, LoadImage(GetModuleHandle (0), "L_100", IMAGE_BITMAP, 0, 0, LR_COPYFROMRESOURCE ) ) ) |
|
|
Nach oben |
|
|
micha
Anmeldungsdatum: 09.12.2005 Beiträge: 72
|
Verfasst am: 15.01.2014, 19:40 Titel: |
|
|
Code: | LoadImage(GetModuleHandle (0), MAKEINTRESOURCE(IDB_YOUR_BITMAP_ID), IMAGE_BITMAP, 0, 0, LR_COPYFROMRESOURCE ) |
|
|
Nach oben |
|
|
BD
Anmeldungsdatum: 15.01.2014 Beiträge: 38
|
Verfasst am: 15.01.2014, 20:21 Titel: |
|
|
Code: | SendMessage (GetDlgItem(hWin , 1004), BM_SETIMAGE, 0, Cast( Integer, LoadImage(GetModuleHandle (0), MAKEINTRESOURCE(IDB_100), IMAGE_BITMAP, 0, 0, LR_COPYFROMRESOURCE ) ) ) |
oder
Code: | SendMessage (GetDlgItem(hWin , 1004), BM_SETIMAGE, 0, Cast( Integer, LoadImage(GetModuleHandle (0), MAKEINTRESOURCE(L_100), IMAGE_BITMAP, 0, 0, LR_COPYFROMRESOURCE ) ) ) |
funktioniert auch nicht.
1004 ist das Image-Objekt
L_100 ist das Bitmap
100 die ID-Nummer des Bitmap
Noch eine Idee?
Um Z. B. ein Icon im Dialogtitel zu platzieren funktioniert ja:
SendMessage (hWin, WM_SETICON, ICON_BIG, LoadImage(GetModuleHandle (Null), "FB_PROGRAM_ICON", IMAGE_ICON, 0, 0, LR_COPYFROMRESOURCE ) )
nur auf den Imagecontainer angewandt kommt kein Ergebnis zustande:
SendMessage (GetDlgItem(hWin , 1004), BM_SETIMAGE, 0, Cast( Integer, LoadImage(GetModuleHandle (0), "L_100", IMAGE_BITMAP, 0, 0, LR_COPYFROMRESOURCE ) ) ) |
|
Nach oben |
|
|
BD
Anmeldungsdatum: 15.01.2014 Beiträge: 38
|
Verfasst am: 15.01.2014, 23:15 Titel: |
|
|
Inzwischen bin ich ein Stück weiter gekommen, doch es gibt folgendes Problem:
Will man einem Button-Objekt ein Icon oder Bitmap zuweisen, dann benutzt man: BM_SETIMAGE in der SendMessage-Funktion. Funktioniert wunderbar, doch wie heißt dieser Begriff bei einem Image-Objekt?
Nachtrag:
Nach intensivem Suchen in den .bi-Dateien von Freebasic fand ich endlich
STM_SETIMAGE
Damit funktioniert es jetzt.
Danke an alle für ihre Anregungen.
Nachtrag:
Falls jemand ein ähnliches Problem hat und durch die Forumsuche auf diesen Thread stößt - hier die Lösung:
Code: | SendDlgItemMessage(hWin,_
IDC_IMG1,_
STM_SETIMAGE,_
IMAGE_BITMAP,_
LoadImage(GetModuleHandle(0),_
IMG_1,_
IMAGE_BITMAP,_
0,_
0,_
LR_COPYFROMRESOURCE)) |
[hWin] ist das Dialogfensterhandle meist auch hWin genannt
[IDC_IMG1] ist das Dialogobjekt für ein Image meist IDC_IMGn
STM_SETIMAGE ist die Message-Konstante zum Ablegen und somit Anzeigen eines Bitmaps in den Objektkontainer.
IMAGE_BITMAP ist die Konstante, dass es sich um ein Bitmap handelt
LoadImage ist durch LR_COPYFROMRESOURCE der Verweis auf die Resource und lädt das Bitmap aus ihr
[IMG_1] ist Bitmap Name in der Ressource
(in [] stehende Namen können im Programm selbst vergeben werden)
Vielleicht hilft dies dem ein oder anderen Suchenden weiter. |
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|