wxTextCtrl bereitet Probleme



  • Hallo,

    ich versuche gerade etwas mit wxWidgets zubauen. Dabei fiel mir auf das der folgende Code nicht korrekt funktioniert. er lässt sich zwar kompilieren aber die Farben werden bei mir unter Windows Xp nicht geändert.
    Bei nem Freund unter Bsd funktioniert es hingegen.

    #include <wx/app.h>
    #include <wx/frame.h>
    #include <wx/textctrl.h>
    
    class BasicFrame : public wxFrame {
    	public:
    		BasicFrame(const wxChar *title,	int xpos, int ypos, int width, int height);
    		~BasicFrame();
    
    	private:
    		wxTextCtrl *text_;
    };
    
    BasicFrame::BasicFrame(const wxChar *title, int xpos, int ypos, int width, int height) 
    		: wxFrame(NULL, -1, title, wxPoint(xpos, ypos), wxSize(width, height)) {
    	text_ = new wxTextCtrl(this, -1, "", wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE);
    	text_->SetDefaultStyle(wxTextAttr(*wxRED));
    	text_->AppendText("Red text\n");
    	text_->SetDefaultStyle(wxTextAttr(wxNullColour, *wxLIGHT_GREY));
    	text_->AppendText("Red on grey text\n");
    	text_->SetDefaultStyle(wxTextAttr(*wxBLUE));
    	text_->AppendText("Blue on grey text\n");
    }
    
    BasicFrame::~BasicFrame() {
    }
    
    class BasicApp : public wxApp {
    	public:
    		virtual bool OnInit();
    
    	private:
    		BasicFrame *frame_;
    };
    
    DECLARE_APP(BasicApp)
    
    bool BasicApp::OnInit() {
    	frame_ = new BasicFrame("Basic", 50, 50, 450, 300);
    	frame_->Show(true);
    
    	SetTopWindow(frame_);
    
    	return true;	
    }
    
    IMPLEMENT_APP(BasicApp)
    

    Kann das mal bitte jemand anders testen oder ggf. sagen wo der Fehler ist? 🙂



  • vielleicht ein text_->Refresh(); ?

    Hat mir zumindest mit Hintergrundfarben mal geholfen



  • Nee, hat nicht geholfen.

    Was mich wundert ist ja das es unter Bsd funktioniert.

    Bei mir ist beim starten des Programmes auch der gesamte Text markiert, ist doch auch nicht normal oder?



  • Hallo,

    hab gerade den "Fehler" gefunden. Gut inder Doku versteckt steht "note that under Windows wxTE_RICH style is required for style support". 🙄

    Nun kommen wir aber zum neuen Problem.. 😉
    Wenn ich wxTE_RICH(2) verwende funktionieren zwar die Farben, aber der gesamte Text steht in der obersten Zeile es lassen sich auch mit <enter> keine neuen Zeilen hinzufügen. Text innerhalb der obersten Zeile kann ich aber bearbeiten.



  • Falls es nicht schon überholt ist:

    Eventuell hilft ein wxTE_PROCESS_ENTER

    Gruß,
    Sebastian


Anmelden zum Antworten