Bitmap wieser löschen
-
Hallo Leute,
der folgenden Quellcode dient zum Ausgeben einer Bitmap in einem Fenster:
#include "stdafx.h"
#include <stdio.h>
#include <afxwin.h>class CMeinHauptfenster : public CFrameWnd {
public:
CMeinHauptfenster();
protected:
afx_msg void OnPaint();
DECLARE_MESSAGE_MAP();};
CMeinHauptfenster::CMeinHauptfenster() {
Create(NULL, "",WS_SYSMENU, rectDefault);};
void CMeinHauptfenster::OnPaint() {CBitmap *pMeinBild = new CBitmap;
pMeinBild->LoadBitmap(IDI_ICON1);BITMAP bm;
CPaintDC dc(this);
CDC MeinDC;
MeinDC.CreateCompatibleDC(NULL);
MeinDC.SelectObject(pMeinBild);
pMeinBild->GetObject(sizeof(bm), &bm);dc.BitBlt(10,10, bm.bmWidth, bm.bmHeight, &MeinDC,15,15,SRCCOPY);
}
BEGIN_MESSAGE_MAP(CMeinHauptfenster,CFrameWnd)
ON_WM_PAINT()
END_MESSAGE_MAP()class CMeineAnwendung : public CWinApp {
public:
virtual BOOL InitInstance();
};BOOL CMeineAnwendung::InitInstance() {
m_pMainWnd = new CMeinHauptfenster();
m_pMainWnd -> ShowWindow(SW_SHOW);return TRUE;
}
CMeineAnwendung Programm;/////////////////////////////////////////////////////////////////////
Jetzt habe ich eine Frage:
Wie kann ich jetzt die Bitmap wieder löschen?(gibt es dafür vieleicht eine
Funktion?)
Und jetzt kommt mir bitte nicht mit "lade doch eine neue weiße Bitmap
und lass sie anzeigen"
Schon mal Danke im Vorraus!
Gruß Crabbe
-
-> Msdn: CDC::FillSolidRect, CDC::FillRect oder CDC::Rectangle.
-
Danke für die Antwort und könntest du ein Beispielquellcode einsenden für eine
der Funktionen, damit ich weiß, wie man sie benutzt.Gruß Crabbe
-
Crabbe schrieb:
Danke für die Antwort und könntest du ein Beispielquellcode einsenden für eine
der Funktionen, damit ich weiß, wie man sie benutzt.Gruß Crabbe
Du kannst mit BitBlt umgehen, aber nicht mit FillSolidRect? Nee...

Die ist selbsterklärend.void FillSolidRect( int x, int y, int cx, int cy, COLORREF clr );
-
Danke für die Antwort!
Ich habe gleich noch eine Frage dazu:
Wenn ich nun zwei Bitmaps habe die über einander liegen(die zweite ist
kleiner als die erste) und die zweite dann lösche, wie erhalte ich dann wieder den Hintergrund der ersten?Gruß Crabbe
-
zB.:InvalidateRect
aktualisiert den angegebenen Bereich
-
InvalidateRect klappt bei mir irgendwie nicht so richig. Beim Kompilieren
kommen dauernt Fehler.
Wie müsste in meinem Quellcode(siehe oben) diese Funktion konkret aussehen?Schon mal Danke!
Gruß Crabbe