S. Bauermann Geschrieben 14. Dezember 2001 Geschrieben 14. Dezember 2001 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
Klotzkopp Geschrieben 15. Dezember 2001 Geschrieben 15. Dezember 2001 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 );
S. Bauermann Geschrieben 15. Dezember 2001 Autor Geschrieben 15. Dezember 2001 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...
Klotzkopp Geschrieben 15. Dezember 2001 Geschrieben 15. Dezember 2001 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?
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden