Bilder in wxWidgets

Meister der Runen

Emergency Induction Port
Mitglied seit
14.03.2004
Beiträge
1.654
So, ich bin grade mal wieder an meine forscherischen Grenzen gestoßen und
muss mal wieder um Hilfe bitten.
Ich habe vor kurzem Angefangen mit wxWidgets rumzuspielen und das
meiste klappt auch wunderbar (obwohl wxDialog nicht klappt, was ich aber
Visual C++ in die Schuhe schiebe). Jetzt wollte ich ein kleines Fenster machen
mit 3 wxButtons und ein Hintergrundbild, welches unter den Buttons liegen
soll.
Nun hab ich rumgelesen und nachgelesen und nachgeforscht und habe dann
schließlich ein bisschen rumgebastelt mit wxDC, welches dann ein wxBitmap
auf mein Fenster malen soll (mit DrawBitmap). Hat nicht funktioniert. Dann
habe ich aus wxDC wxPaintDC gemacht. Hat immer noch nicht geklappt.
Danach hab ich gelesen, dass das Panel auf dem die Buttons liegen das Bild
verdeckt. Also hab ich die Knöpfe und das Panel auskommentiert. Hat immer
noch kein Bild angezeigt. Dann hab ich noch irgendwo ein wenig Quellcode
zusammengesucht mit diversen Buffern die ich nicht versteh. Hat immer noch
nicht gefunzt.

Jetzt muss ich fragen: Wie krieg ich da mein Bild rein, oder noch besser
wie krieg ich das Bild rein und Buttons drauf?

Code:
// base.cpp

#include <wx/wx.h>
#include "base.h"
#include <iostream>


IMPLEMENT_APP(MyApp)
bool MyApp::OnInit(){
	wxImage::AddHandler( new wxPNGHandler );
	BasicFrame *frame =
		new BasicFrame(wxT("Willkommen"),50,50,200,250);
	frame->Show(TRUE);
	SetTopWindow(frame);
	return TRUE;
}


BasicFrame::BasicFrame(
					   const wxChar *title,
					   int xpos, int ypos,
					   int width, int height)
					   : wxFrame ( (wxFrame *) NULL,
					   -1, title,
					   wxPoint(xpos,ypos),
					   wxSize(width,height),wxDEFAULT_FRAME_STYLE){
						   SetMinSize(wxSize(200,250));
						   SetMaxSize(wxSize(200,250));
						   Centre(wxBOTH);
						   
						   wxBitmap background(wxT("BackgroundMenu.png"),wxBITMAP_TYPE_PNG);
	                                         //panel = new wxPanel ( this, wxID_ANY, wxDefaultPosition,wxDefaultSize);
						   wxPaintDC dc(this);
						   dc.DrawBitmap(background, 100, 100 );
			                        /*button = new wxButton (panel, wxID_OK, wxT("Spiel Starten"),wxPoint(55,30), wxDefaultSize);
						   button2 = new wxButton (panel, wxID_ABOUT, wxT("Optionen"),wxPoint(55,70), wxDefaultSize);
						   button3 = new wxButton (panel, wxID_ADD, wxT("Beenden"),wxPoint(55,110), wxDefaultSize);*/
						   CreateStatusBar(1);
}
Ich unterschlage einfach mal den Event Handler und die Methoden, da die
ja nichts zur sache tun.

EDIT: Hat sich geklärt!
 
Zuletzt bearbeitet:
Oben