Bitmap MFC Startfenster

kerian

Erfahrenes Mitglied
Hi,
kann mir jemand erklären wie ich ein Hintergrund bild einbauen kann?
Mein Startfenster erzeuge ich :
CAnwendung theApp;

BOOL CAnwendung::InitInstance()
{
CWinApp::InitInstance();


CFenster* pFrame = new CFenster;
m_pMainWnd = pFrame;
pFrame->LoadFrame(IDR_MAINFRAME);
pFrame->m_Symbolleiste.Create(pFrame, WS_CHILD | WS_VISIBLE | CBRS_BOTTOM | CBRS_TOOLTIPS);
pFrame->m_Symbolleiste.LoadToolBar(IDR_TOOLBAR);

pFrame->ShowWindow(SW_SHOW);
pFrame->UpdateWindow();
return TRUE;
}


In der CFenster Klasse kann ich mit OnPaint Methone einige Rechtecke erzeugen
und in denen auch Text. Aber mit der CBitmap Klasse komm ich nicht klar :rolleyes:
 
Den Code (siehe unten) sollte in die OnDraw()-Methode Deiner Sicht eingefügt werden. Dort bekommst Du den pDC-Zeiger auch gleich als Parameter übergeben.

Code:
	CDC* pCompDC = new CDC();
		
		// save DC status
		int nSavedDC = pDC->SaveDC();

		// create compatible DC for bitmap
		pCompDC->CreateCompatibleDC(pDC);

		// load splash bitmap
		CBitmap * pCBitmap = new CBitmap();
		pCBitmap->LoadBitmap(IDB_SPLASH);
		
		// display bitmap (resizing it to size of client view)
		pCompDC->SelectObject(pCBitmap);
		CRect rect;
		GetParent()->GetClientRect(&rect);

		pDC->SetStretchBltMode(HALFTONE);
		pDC->StretchBlt(0, 0, rect.Width(), rect.Height(), pCompDC, 0, 0 , 800, 600, SRCCOPY);
  
		//cleanup
		delete pCompDC;
		delete pCBitmap;

		// restore old DC status
		pDC->RestoreDC(nSavedDC);
                ReleaseDC(pDC);

Tschuldige die englischen Kommentare, aber das is 'ne alte Angewohnheit von mir. :)

Das Bitmap ist als IDB_SPLASH-Ressource in das Projekt eingefügt (800x600). Die Größe spielt eigentlich keine große Rolle, da StretchBlt() das Bitmap selbst skaliert, falls es net in das Fenster paßt. Allerdings ist die Methode ziemlich lahm...

Wenn Du mit dem Code nichts anfangen kannst, dann frag nochmal nach. ;)
 
Zuletzt bearbeitet von einem Moderator:
Deine App hat vermutlich eine von CView abgeleitete Klasse, die für die Darstellung zuständig ist. Die ist wahrscheinlich gemeint. (Sicht=View)
Such mal nach CMeineAppView::OnDraw() oder so ähnlich.

@ Vaethischist :
Tschuldige die englischen Kommentare, aber das is 'ne alte Angewohnheit von mir.
Da solltest Du mal meine sehen ... lecker Deutsch/Englisch gemurxt.
 
Zurück