Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Image verschiedene Bitmaps aus Ressource zuweisen

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Windows-spezifische Fragen
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
BD



Anmeldungsdatum: 14.01.2014
Beiträge: 38

BeitragVerfasst am: 15.01.2014, 12:19    Titel: Image verschiedene Bitmaps aus Ressource zuweisen Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 15.01.2014, 14:54    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
BD



Anmeldungsdatum: 14.01.2014
Beiträge: 38

BeitragVerfasst am: 15.01.2014, 15:24    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
micha



Anmeldungsdatum: 09.12.2005
Beiträge: 72

BeitragVerfasst am: 15.01.2014, 18:40    Titel: Antworten mit Zitat

Code:
LoadImage(GetModuleHandle (0), MAKEINTRESOURCE(IDB_YOUR_BITMAP_ID), IMAGE_BITMAP, 0, 0, LR_COPYFROMRESOURCE )
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
BD



Anmeldungsdatum: 14.01.2014
Beiträge: 38

BeitragVerfasst am: 15.01.2014, 19:21    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
BD



Anmeldungsdatum: 14.01.2014
Beiträge: 38

BeitragVerfasst am: 15.01.2014, 22:15    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Windows-spezifische Fragen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
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.

 Impressum :: Datenschutz