Zum Inhalt springen

LoadBitmap wer kann mir da kurz helfen ?


S. Bauermann

Empfohlene Beiträge

Hallöchen,

also ich möchte in ein PictureControl zur Laufzeit die Bitmaps ändern/laden.

Ich habe ein PictureControl angelegt (IDC_BILD) dieser habe ich dann via Wizzard eine Membervariable (vom Typ CStatic/Control) zugewiesen -> m_picCtl.

Ich habe dann im Konstruktor meines Dialogs ein Objekt vom Typ CBitmap erzeugt (bitmap) und mit bitmap.LoadBitmap(IDB_BITMAP1); das Bitmap geladen. Beim ButtonClick sollte nun mein Bitmap in das PictureControl geladen werden. Da geanu klemmts. Ich wollte nun in der OnClick() Methode mein setBitmap realisieren. Das ganze müsste dann etwa so aussehen: m_picCtl.SetBitmap(????); Ich dachte hier kann ich das Objekt von CBitmap (bitmap) setzten, nur das ist in dieser Funktion leider gar nicht mehr bekannt.

Wer kann mir hier erklärenden Rat geben ?

Vielen Dank und Gruß Sven

Link zu diesem Kommentar
Auf anderen Seiten teilen

Du könntest die CBitmap-Instanz (oder einen Zeiger darauf) als Member deiner Fenster- oder Dialogklasse hinzufügen. Einfacher ist aber, die Bitmap erst in der OnClick-Methode laden:

Ohne CBitmap:

m_picCtl.SetBitmap( ::LoadBitmap(NULL, MAKEINTRESOURCE(IDB_BITMAP1)) );

Oder mit CBitmap:

CBitmap bitmap;

bitmap.LoadBitmap( IDB_BITMAP1 );

m_picCtl.SetBitmap( bitmap );

Link zu diesem Kommentar
Auf anderen Seiten teilen

Vielen Dank aber es klemmt noch einwenig.

Im Prinzip habe ich das jetzt kappiert. Ich habe die Variante mit CBitmap gecheckt. In der OnInitDialog(); von meinem Dialog CBitmap bitmap; bitmap.LoadBitmap(IDB_BITMAP1); und dann m_picCtl.SetBitmap(bitmap); geschrieben. Das funktioniert auch.

Nun wollte ich ja das das Bitmap mit einer Button CLick Methode gesetzt wird. Also habe ich die Zeile:

m_picCtl.SetBitmap(bitmap); in die

void CHhhDlg::OnButton1() Methode geschrieben.

Die Zeilen:

CBitmap bitmap;

bitmap.LoadBitmap(IDB_BITMAP1);

BOOL CHhhDlg::OnInitDialog()

{

CDialog::OnInitDialog(); Methode verblieben.

Nun entsteht leider das mir unerklärliche Problem das das Objekt bitmap in der OnButton1() Methode nicht mehr bekannt ist ??? Obwohl in OnInitDialog der gleichen Klasse deklariert ? --> Im Konstruktor war's das gleiche.

Beim Versuch nicht nur SetBitmap sondern auch LoadBitmap komplett in der OnButton1() Methode abzuwickeln erscheint dann leider das Bitmap nicht mehr !

Wieso ?

Gruß von Sven...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn Du Dein CBitmap-Objekt in der OnInitDialog deklarierst, dann beschränkt sich der Scope (Gültigkeitsraum) des Objekts auf diese Methode. Das Objekt wird zerstört, sobald OnInitDialog beendet wird. Gleiches gilt für den Konstruktor.

Wenn Dein CBitmap-Objekt solange existieren soll wie Deine Dialogklasse selbst, dann musst Du es als Member Deiner Klasse deklarieren:

In HhhDlg.h:

class CHhhDlg : public CDialog

{

...

protected:

CBitmap m_bitmap;

...

};

In HhhDlg.cpp:

BOOL CHhhDlg::OnInitDialog()

{

...

m_bitmap.LoadBitmap( IDB_BITMAP1 );

...

}

void CHhhDlg::OnButton1()

{

...

m_picCtl.SetBitmap( m_bitmap );

...

}

<BLOCKQUOTE><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Zitat:</font><HR> Beim Versuch nicht nur SetBitmap sondern auch LoadBitmap komplett in der OnButton1() Methode abzuwickeln erscheint dann leider das Bitmap nicht mehr !

Kannst Du den betreffenden Code mal hier posten?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...