Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   
Forentreff 2012     
Bücher-Shop mit Amazon (Buchkategorien)C++ : Referenzen zu C++ : C++ Builder : Visual C++ : C# : Java : Spieleprogrammierung : Systemprogrammierung Linux : Software-Entwicklung : .NET : Compilertechnik : Algorithmen & Datenstrukturen : Objektorientierung : Entwurfsmuster : UML : eXtreme Programming : Scrum : Projektmanagement : Software-Testing : Datenbanken : Tom DeMarco : Dilbert : User Friendly
C/C++ Forum :: FAQ - MFC ::  CButton - Nochmals: Button mit Bitmap     Zeige alle Beiträge auf einer Seite Auf Beitrag antworten
Autor Nachricht
AnTri
Mitglied

Benutzerprofil
Anmeldungsdatum: 08.10.2001
Beiträge: 382
Beitrag AnTri Mitglied 12:11:00 29.01.2002   Titel:   CButton - Nochmals: Button mit Bitmap            Zitieren

Einfache Frage: Ich designe einen Dialog. Wie kann ich nun einem Button ein Symbol oder ein Bitmap zuweisen, z.B. ein Button mit dem "Rechnersymbol"?!

[ Dieser Beitrag wurde am 04.02.2002 um 09:57 Uhr von Unix-Tom editiert. ]


Zuletzt bearbeitet von estartu am 12:59:31 16.01.2006, insgesamt 1-mal bearbeitet
Werbeunterbrechung
Lightbringer
Mitglied

Benutzerprofil
Anmeldungsdatum: 13.12.2001
Beiträge: 85
Beitrag Lightbringer Mitglied 12:19:00 29.01.2002   Titel:              Zitieren

Hi,

hab ich noch nicht gemacht, aber müsste in etwa so gehn.
Im Ressourcen Editor beim Button->Eigenschaften->Formate->Bitmap ankreuzen. Ein Bitmap zu den Ressourcen hinzufügen.

Dann mit
m_Button->LoadBitmap(....) //m_Button is Membervariable vom Button


hoffe das hilft dir weiter
mfg

[ Dieser Beitrag wurde am 29.01.2002 um 11:20 Uhr von Lightbringer editiert. ]

_________________
light
uther-light@web.de
AnTri
Mitglied

Benutzerprofil
Anmeldungsdatum: 08.10.2001
Beiträge: 382
Beitrag AnTri Mitglied 12:38:00 29.01.2002   Titel:              Zitieren

Hallo, vielen Dank für den Tip..

...leider geht es so nicht. Loadbitmap ist keine Methode der CButton Klasse!!!
AnTri
Mitglied

Benutzerprofil
Anmeldungsdatum: 08.10.2001
Beiträge: 382
Beitrag AnTri Mitglied 14:14:00 29.01.2002   Titel:              Zitieren

Hat keiner 'ne IDEE??
Dommel
Mitglied

Benutzerprofil
Anmeldungsdatum: 22.09.2001
Beiträge: 522
Beitrag Dommel Mitglied 14:20:00 29.01.2002   Titel:              Zitieren

hi,

du brauchst ne variable vom Typ CBitmap. Da gibts dann die funktion LoadBitmap. damit kannste dann n bitmap, dass du als resource hast, in die variable laden. dann kannste mit SetBitmap das bild auf dein button packen
hier mal n beispiel:
C/C++ Code:
CBitmap bitmap;
bitmap.LoadBitmap(IDB_BITMAP); // IDB_BITMAP is die ID der resource
m_Button.SetBitmap(bitmap);
C/C++ Code:
CBitmap bitmap;
bitmap.LoadBitmap(IDB_BITMAP); // IDB_BITMAP is die ID der resource
m_Button.SetBitmap(bitmap);
C/C++ Code:
CBitmap bitmap;
bitmap.LoadBitmap(IDB_BITMAP); // IDB_BITMAP is die ID der resource
m_Button.SetBitmap(bitmap);


ich hoffe es funzt
m_Button->Set

[ Dieser Beitrag wurde am 29.01.2002 um 13:21 Uhr von Dommel editiert. ]

[ Dieser Beitrag wurde am 29.01.2002 um 13:23 Uhr von Dommel editiert. ]
AnTri
Mitglied

Benutzerprofil
Anmeldungsdatum: 08.10.2001
Beiträge: 382
Beitrag AnTri Mitglied 14:58:00 29.01.2002   Titel:              Zitieren

hmmmh, ich bekomme beim compilieren zwar keinen Fehler, aber der Button hat auch kein Bitmap!!!

HILFE !!!
Lightbringer
Mitglied

Benutzerprofil
Anmeldungsdatum: 13.12.2001
Beiträge: 85
Beitrag Lightbringer Mitglied 15:05:00 29.01.2002   Titel:              Zitieren

Hi,

du führst wahrscheinlich danach kein Update des Fensters durch. Du musst dem Fenster sagen, dass es sich nochmal neu zeichnen muss.
UpdateWindow(); müsste funzen
oder Invalidate()....ich glaub ReneG hat heute schon was dazu geschrieben.


mfg

_________________
light
uther-light@web.de
AnTri
Mitglied

Benutzerprofil
Anmeldungsdatum: 08.10.2001
Beiträge: 382
Beitrag AnTri Mitglied 15:09:00 29.01.2002   Titel:              Zitieren

Nein, ich habe schon ein UpdateWindow drin!!!

Übrigens, ich rufe den Code in der OnInitDialog Funktion auf. Ist er dort fehl am Platz?
AnTri
Mitglied

Benutzerprofil
Anmeldungsdatum: 08.10.2001
Beiträge: 382
Beitrag AnTri Mitglied 15:14:00 29.01.2002   Titel:              Zitieren

hmhhh, der Code scheint wohl an der Stelle falsch zu sein. Für ich den Code z.B. in einer Funktion aus klappt alles.

Das Problem ist nur, dass es halt beim Dialogstart sein sollte. Wie kann ich dass hinkriegen?????????

[ Dieser Beitrag wurde am 29.01.2002 um 14:14 Uhr von AnTri editiert. ]
Dommel
Mitglied

Benutzerprofil
Anmeldungsdatum: 22.09.2001
Beiträge: 522
Beitrag Dommel Mitglied 15:59:00 29.01.2002   Titel:              Zitieren

probier mal dass du für CBitmap ne membervariable nimmst und keine 'normale', in der funktion deklarierte variable.
also bei mir funzt es zumindest damit, auch in InitDialog
Phoenix
Mitglied

Benutzerprofil
Anmeldungsdatum: 31.05.2001
Beiträge: 296
Beitrag Phoenix Mitglied 16:28:00 29.01.2002   Titel:              Zitieren

Versuch es doch statt mit nem Bitmap mit einem Icon. Das kannst du so laden.

C/C++ Code:
HICON hIcon= AfxGetApp()->LoadIcon(IDI_Euro);
    m_CtrlEuro.SetIcon(hIcon);
C/C++ Code:
HICON hIcon= AfxGetApp()->LoadIcon(IDI_Euro);
m_CtrlEuro.SetIcon(hIcon);
C/C++ Code:
HICON hIcon= AfxGetApp()->LoadIcon(IDI_Euro);
    m_CtrlEuro.SetIcon(hIcon);


IDI_Euro ist der name des Icons und m_CtrlEuro ist die Control Variable des Buttons.

(Ich selbst hab das für einen Euro umrechner benutzt).

Falls es mit dem Bitmap nicht klappt versuch es halt so. So müsste es klappen.

Mfg, Heiko

_________________
[X] <-- Nail here for new Monitor
AnTri
Mitglied

Benutzerprofil
Anmeldungsdatum: 08.10.2001
Beiträge: 382
Beitrag AnTri Mitglied 17:29:00 29.01.2002   Titel:              Zitieren

Das mit der Member-Variable funktioniert auch im OnInit tadellos. Die Frage ist nur warum geht es nur mit einer Member...


Vielen Dank für die große Hilfe und die vielen Beiträge.
pho_no
Mitglied

Benutzerprofil
Anmeldungsdatum: 18.10.2001
Beiträge: 84
Beitrag pho_no Mitglied 14:52:00 31.01.2002   Titel:              Zitieren

Kleine frage...
wie bekomm ich den ein Bitmap als resource? bzw. wie weis ich dem Bitmap eine ID zu?
TimoL
Mitglied

Benutzerprofil
Anmeldungsdatum: 22.05.2001
Beiträge: 148
Beitrag TimoL Mitglied 15:22:00 31.01.2002   Titel:              Zitieren

Nur mit einer Member, weil sonst das Bitmap nach verlassen der Methode wieder futsch ist....
oder sehe ich das falsch?!?
Dommel
Mitglied

Benutzerprofil
Anmeldungsdatum: 22.09.2001
Beiträge: 522
Beitrag Dommel Mitglied 15:41:00 31.01.2002   Titel:              Zitieren

@timo:
denk ich auch, dass das dann futsch is

@pho_no:
bei den rsourcen ob mit rechts auf 'DeinProg Resourcen *' klicken. da dann 'einfügen', 'bitmap' und 'neu'. schon haste n neues bitmap in den resourcen. mit rechtsklick auf das bitmap und dann auf eigenschaften kannste die ID ändern
Unix-Tom
Moderator

Benutzerprofil
Anmeldungsdatum: 18.07.2000
Beiträge: 10398
Beitrag Unix-Tom Moderator 21:24:00 31.01.2002   Titel:              Zitieren

C/C++ Code:
HBITMAP eigenbitmap;
eigenbitmap = ::LoadBitmap(::AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_BITMAP1));

CButton* pbmp = (CButton*) GetDlgItem(IDC_BUTTON1);
pbmp->SendMessage(BM_SETIMAGE, IMAGE_BITMAP, (LONG) eigenbitmap);
C/C++ Code:
HBITMAP eigenbitmap;
eigenbitmap = ::LoadBitmap(::AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_BITMAP1));

CButton* pbmp = (CButton*) GetDlgItem(IDC_BUTTON1);
pbmp->SendMessage(BM_SETIMAGE, IMAGE_BITMAP, (LONG) eigenbitmap);
C/C++ Code:
HBITMAP eigenbitmap;
eigenbitmap = ::LoadBitmap(::AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_BITMAP1));

CButton* pbmp = (CButton*) GetDlgItem(IDC_BUTTON1);
pbmp->SendMessage(BM_SETIMAGE, IMAGE_BITMAP, (LONG) eigenbitmap);



Der Code ist selbsterklärend und einfach in die oninitdialog einbauen

_________________
Moderator für MFC, Linux, C# - NET und Datenbanken
C/C++ Forum :: FAQ - MFC ::  CButton - Nochmals: Button mit Bitmap   Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können keine Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum nicht antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info, www.c-sar.de, www.c-plusplus.net und www.baeckmann.de enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.